]> granicus.if.org Git - python/commitdiff
Separate out finder for source and source/bytecode.
authorBrett Cannon <bcannon@gmail.com>
Sat, 21 Feb 2009 03:31:35 +0000 (03:31 +0000)
committerBrett Cannon <bcannon@gmail.com>
Sat, 21 Feb 2009 03:31:35 +0000 (03:31 +0000)
Lib/importlib/NOTES
Lib/importlib/_bootstrap.py
Lib/importlib/test/source/test_case_sensitivity.py
Lib/importlib/test/source/test_finder.py

index 92e2841d9ce2d15eae41004eb6fb28646a580128..1bbcb968e8628606905b0413363251a58dc61b00 100644 (file)
@@ -5,19 +5,22 @@ to do
   subclass of source support (makes it nicer for VMs that don't use CPython
   bytecode).
 
-    + ExtensionFileFinder
-    + PyFileFinder
-    + PyPycFileFinder
-    + PyFileLoader
+    + PyLoader (for ABC)
 
         - get_code for source only
+
+    + PyFileLoader(PyLoader)
+
         - get_data
         - source_mtime
         - source_path
 
-    + PyPycFileLoader(PyFileLoader)
+    +PyPycLoader (PyLoader, for ABC)
+
+        - get_code for source and bytecode
+        
+    + PyPycFileLoader(PyPycLoader, PyFileLoader)
 
-        - get_code
         - bytecode_path
         - write_bytecode
 
index 4db61da079b5a3914f9cfff737e550a4840c9fda..068ee1021cc63e4df9c20bd053130614608ead1b 100644 (file)
@@ -592,10 +592,18 @@ class PyFileFinder(FileFinder):
         # Make sure that Python source files are listed first!  Needed for an
         # optimization by the loader.
         self._suffixes = suffix_list(imp.PY_SOURCE)
-        self._suffixes += suffix_list(imp.PY_COMPILED)
         super().__init__(path_entry)
 
 
+class PyPycFileFinder(PyFileFinder):
+
+    """Finder for source and bytecode files."""
+
+    def __init__(self, path_entry):
+        super().__init__(path_entry)
+        self._suffixes += suffix_list(imp.PY_COMPILED)
+
+
 class PathFinder:
 
     """Meta path finder for sys.(path|path_hooks|path_importer_cache)."""
@@ -659,7 +667,7 @@ class PathFinder:
             return None
 
 
-_DEFAULT_PATH_HOOK = chained_path_hook(ExtensionFileFinder, PyFileFinder)
+_DEFAULT_PATH_HOOK = chained_path_hook(ExtensionFileFinder, PyPycFileFinder)
 
 class _DefaultPathFinder(PathFinder):
 
index df6d3bcff6e6c56fd9ef604e77cbc987e9e8653e..210e6208fbc36d5c3b172c08d6e85a659e65e605 100644 (file)
@@ -19,7 +19,7 @@ class CaseSensitivityTest(unittest.TestCase):
     assert name != name.lower()
 
     def find(self, path):
-        finder = importlib.PyFileFinder(path)
+        finder = importlib.PyPycFileFinder(path)
         return finder.find_module(self.name)
 
     def sensitivity_test(self):
index 0cfb14f3e194375137e682687029b547fad02624..1e4333cc488565d24acb04967fe11f65e40b55ed 100644 (file)
@@ -32,7 +32,7 @@ class FinderTests(abc.FinderTests):
     """
 
     def import_(self, root, module):
-        finder = importlib.PyFileFinder(root)
+        finder = importlib.PyPycFileFinder(root)
         return finder.find_module(module)
 
     def run_test(self, test, create=None, *, compile_=None, unlink=None):