[Python-checkins] r69176 - in python/branches/py3k/Lib/importlib: NOTES _bootstrap.py

brett.cannon python-checkins at python.org
Sun Feb 1 06:33:17 CET 2009


Author: brett.cannon
Date: Sun Feb  1 06:33:17 2009
New Revision: 69176

Log:
Expose source_path and bytecode_path on _PyFileLoader.


Modified:
   python/branches/py3k/Lib/importlib/NOTES
   python/branches/py3k/Lib/importlib/_bootstrap.py

Modified: python/branches/py3k/Lib/importlib/NOTES
==============================================================================
--- python/branches/py3k/Lib/importlib/NOTES	(original)
+++ python/branches/py3k/Lib/importlib/NOTES	Sun Feb  1 06:33:17 2009
@@ -3,8 +3,7 @@
 
 * API simplification?
 
-    + read_source -> get_data/source_path
-    + read_bytecode -> get_data/bytecode_path
+    + Use *_path() along with get_data
     + write_bytecode -> complete set of bytes for bytecode instead of
       individual arguments.
 

Modified: python/branches/py3k/Lib/importlib/_bootstrap.py
==============================================================================
--- python/branches/py3k/Lib/importlib/_bootstrap.py	(original)
+++ python/branches/py3k/Lib/importlib/_bootstrap.py	Sun Feb  1 06:33:17 2009
@@ -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')


More information about the Python-checkins mailing list