diff Lib/importlib/_bootstrap.py @ 51239:386eb4b5cbb3

Expose source_path and bytecode_path on _PyFileLoader.
author Brett Cannon <bcannon@gmail.com>
date Sun, 01 Feb 2009 05:33:17 +0000
parents 50bd2c18eff0
children fbb17cab5716
line wrap: on
line diff
--- a/Lib/importlib/_bootstrap.py	Sun Feb 01 05:04:06 2009 +0000
+++ b/Lib/importlib/_bootstrap.py	Sun Feb 01 05:33:17 2009 +0000
@@ -341,13 +341,15 @@
         else:
             return None
 
-    def _source_path(self):
+    @check_name
+    def source_path(self, fullname):
         """Return the path to an existing source file for the module, or None
         if one cannot be found."""
         # Not a property so that it is easy to override.
         return self._find_path(imp.PY_SOURCE)
 
-    def _bytecode_path(self):
+    @check_name
+    def bytecode_path(self, fullname):
         """Return the path to a bytecode file, or None if one does not
         exist."""
         # Not a property for easy overriding.
@@ -357,8 +359,9 @@
     @get_module
     def load_module(self, module):
         """Load a Python source or bytecode module."""
-        source_path = self._source_path()
-        bytecode_path = self._bytecode_path()
+        name = module.__name__
+        source_path = self.source_path(name)
+        bytecode_path = self.bytecode_path(name)
         code_object = self.get_code(module.__name__)
         module.__file__ = source_path if source_path else bytecode_path
         module.__loader__ = self
@@ -376,7 +379,7 @@
     def source_mtime(self, name):
         """Return the modification time of the source for the specified
         module."""
-        source_path = self._source_path()
+        source_path = self.source_path(name)
         if not source_path:
             return None
         return int(_os.stat(source_path).st_mtime)
@@ -389,7 +392,7 @@
         laoder cannot handle the specified module.
 
         """
-        source_path = self._source_path()
+        source_path = self._source_path(name)
         if source_path is None:
             return None
         import tokenize
@@ -407,7 +410,7 @@
         The returned path is used by 'compile' for error messages.
 
         """
-        source_path = self._source_path()
+        source_path = self.source_path(fullname)
         if source_path is None:
             return None
         with closing(_fileio._FileIO(source_path, 'r')) as bytes_file:
@@ -422,7 +425,7 @@
         the module. Returns None if there is no bytecode.
 
         """
-        path = self._bytecode_path()
+        path = self.bytecode_path(name)
         if path is None:
             return None
         file = _fileio._FileIO(path, 'r')
@@ -443,7 +446,7 @@
         cannot be handled by the loader.
 
         """
-        bytecode_path = self._bytecode_path()
+        bytecode_path = self.bytecode_path(name)
         if not bytecode_path:
             bytecode_path = self._base_path + suffix_list(imp.PY_COMPILED)[0]
         file = _fileio._FileIO(bytecode_path, 'w')