From: Brett Cannon Date: Sat, 21 Feb 2009 03:53:06 +0000 (+0000) Subject: Tweak the source/bytecode loader from importlib to use more of the PEP 302 X-Git-Tag: v3.1a1~123 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0515619dbc0c11818fa15785e40491cf8d01042f;p=python Tweak the source/bytecode loader from importlib to use more of the PEP 302 protocol API. --- diff --git a/Lib/importlib/NOTES b/Lib/importlib/NOTES index 1bbcb968e8..35c8fd35c6 100644 --- a/Lib/importlib/NOTES +++ b/Lib/importlib/NOTES @@ -7,6 +7,7 @@ to do + PyLoader (for ABC) + - load_module for source only - get_code for source only + PyFileLoader(PyLoader) @@ -17,6 +18,7 @@ to do +PyPycLoader (PyLoader, for ABC) + - load_module for source and bytecode - get_code for source and bytecode + PyPycFileLoader(PyPycLoader, PyFileLoader) diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 068ee1021c..97e3f54825 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -361,7 +361,6 @@ class _PyFileLoader: # Not a property for easy overriding. return self._find_path(imp.PY_COMPILED) - @check_name @module_for_loader def load_module(self, module): """Load a Python source or bytecode module.""" @@ -371,7 +370,7 @@ class _PyFileLoader: code_object = self.get_code(module.__name__) module.__file__ = source_path if source_path else bytecode_path module.__loader__ = self - if self._is_pkg: + if self.is_package(name): module.__path__ = [module.__file__.rsplit(path_sep, 1)[0]] module.__package__ = module.__name__ if not hasattr(module, '__path__'): @@ -429,7 +428,6 @@ class _PyFileLoader: else: raise - @check_name def get_code(self, name): """Return the code object for the module.""" # XXX Care enough to make sure this call does not happen if the magic