mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Set the __file__ attribute of the imported module in both versions of
load_module(), to mimick the behavior of imp more closely.
This commit is contained in:
parent
ccd8b19c99
commit
a97b8eef70
1 changed files with 11 additions and 7 deletions
|
@ -257,13 +257,16 @@ class ModuleLoader(BasicModuleLoader):
|
|||
if type == FROZEN_MODULE:
|
||||
return self.hooks.init_frozen(name)
|
||||
if type == C_EXTENSION:
|
||||
return self.hooks.load_dynamic(name, filename, file)
|
||||
if type == PY_SOURCE:
|
||||
return self.hooks.load_source(name, filename, file)
|
||||
if type == PY_COMPILED:
|
||||
return self.hooks.load_compiled(name, filename, file)
|
||||
raise ImportError, "Unrecognized module type (%s) for %s" % \
|
||||
(`type`, name)
|
||||
m = self.hooks.load_dynamic(name, filename, file)
|
||||
elif type == PY_SOURCE:
|
||||
m = self.hooks.load_source(name, filename, file)
|
||||
elif type == PY_COMPILED:
|
||||
m = self.hooks.load_compiled(name, filename, file)
|
||||
else:
|
||||
raise ImportError, "Unrecognized module type (%s) for %s" % \
|
||||
(`type`, name)
|
||||
m.__file__ = filename
|
||||
return m
|
||||
|
||||
|
||||
class FancyModuleLoader(ModuleLoader):
|
||||
|
@ -284,6 +287,7 @@ class FancyModuleLoader(ModuleLoader):
|
|||
else:
|
||||
return ModuleLoader.load_module(self, name, stuff)
|
||||
m = self.hooks.add_module(name)
|
||||
m.__file__ = filename
|
||||
exec code in m.__dict__
|
||||
return m
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue