[Python-checkins] r56247 - sandbox/trunk/import_in_py/_importlib.py sandbox/trunk/import_in_py/importlib.py
brett.cannon
python-checkins at python.org
Wed Jul 11 01:59:30 CEST 2007
Author: brett.cannon
Date: Wed Jul 11 01:59:30 2007
New Revision: 56247
Modified:
sandbox/trunk/import_in_py/_importlib.py
sandbox/trunk/import_in_py/importlib.py
Log:
Remove os.path.(isfile | isdir) dependency.
Modified: sandbox/trunk/import_in_py/_importlib.py
==============================================================================
--- sandbox/trunk/import_in_py/_importlib.py (original)
+++ sandbox/trunk/import_in_py/_importlib.py Wed Jul 11 01:59:30 2007
@@ -74,6 +74,23 @@
return True
+def _path_is_mode_type(path, mode):
+ """Test whether the path is the specified mode type."""
+ try:
+ stat_info = posix.stat(path)
+ except OSError:
+ return False
+ return (stat_info.st_mode & 0170000) == mode
+
+def _path_isfile(path):
+ """Replacement for os.path.isfile."""
+ return _path_is_mode_type(path, 0100000)
+
+def _path_isdir(path):
+ """Replacement for os.path.isdir."""
+ return _path_is_mode_type(path, 0040000)
+
+
class _BuiltinFrozenBaseImporter(object):
"""Base class for meta_path importers for built-in and frozen modules.
@@ -164,7 +181,7 @@
"""
absolute_path = os.path.abspath(path_entry)
- if os.path.isdir(absolute_path):
+ if _path_isdir(absolute_path):
return FileSystemImporter(absolute_path, *self.handlers)
else:
raise ImportError("can only handle directories")
@@ -207,19 +224,19 @@
init_filename = '__init__' + file_ext
package_init = _path_join(package_directory, init_filename)
# Check if it is a package with an __init__ file.
- if (os.path.isfile(package_init) and
+ if (_path_isfile(package_init) and
_case_ok(self.path_entry, tail_module) and
_case_ok(package_directory, init_filename)):
return self.loader(package_init, handler, package_directory)
# See if it is a module.
file_name = tail_module + file_ext
file_path = _path_join(self.path_entry, file_name)
- if (os.path.isfile(file_path) and
+ if (_path_isfile(file_path) and
_case_ok(self.path_entry, file_name)):
return self.loader(file_path, handler)
else:
# Raise a warning if it matches a directory w/o an __init__ file.
- if (os.path.isdir(package_directory) and
+ if (_path_isdir(package_directory) and
_case_ok(self.path_entry, tail_module)):
warnings.warn("Not importing directory %s: missing __init__.py"
% package_directory,
Modified: sandbox/trunk/import_in_py/importlib.py
==============================================================================
--- sandbox/trunk/import_in_py/importlib.py (original)
+++ sandbox/trunk/import_in_py/importlib.py Wed Jul 11 01:59:30 2007
@@ -96,6 +96,7 @@
return False
+
# Required built-in modules.
import imp, sys, marshal
_importlib.imp = imp
More information about the Python-checkins
mailing list