diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2001-07-28 20:33:41 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2001-07-28 20:33:41 (GMT) |
commit | 70195da3ff1cae7f4c6e76b0f2a19c3fe04bc1e4 (patch) | |
tree | 370a7a1b3b670059e407d34b2786d10468c09325 /Lib | |
parent | d3011cd1d32699c3307f612af5990204e4027f12 (diff) | |
download | cpython-70195da3ff1cae7f4c6e76b0f2a19c3fe04bc1e4.zip cpython-70195da3ff1cae7f4c6e76b0f2a19c3fe04bc1e4.tar.gz cpython-70195da3ff1cae7f4c6e76b0f2a19c3fe04bc1e4.tar.bz2 |
Patch #443337: Fix incompatibilities in imputil's behavior.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/imputil.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Lib/imputil.py b/Lib/imputil.py index 6017f6c..eb53e07 100644 --- a/Lib/imputil.py +++ b/Lib/imputil.py @@ -125,6 +125,10 @@ class ImportManager: if importer: return importer._finish_import(top_module, parts[1:], fromlist) + # Grrr, some people "import os.path" + if len(parts) == 2 and hasattr(top_module, parts[1]): + return top_module + # If the importer does not exist, then we have to bail. A missing # importer means that something else imported the module, and we have # no knowledge of how to get sub-modules out of the thing. @@ -290,7 +294,11 @@ class Importer: exec code in module.__dict__ # fetch from sys.modules instead of returning module directly. - return sys.modules[fqname] + # also make module's __name__ agree with fqname, in case + # the "exec code in module.__dict__" played games on us. + module = sys.modules[fqname] + module.__name__ = fqname + return module def _load_tail(self, m, parts): """Import the rest of the modules, down from the top-level module. |