ihooks FancyModuleLoader.load_module()
imputils Importer._process_result(): remove name from modules dict if exec fails. This is what all the builtin importers do now, new in 2.4.
This commit is contained in:
parent
51fa3b740f
commit
3d3cfdb499
|
@ -322,7 +322,13 @@ class FancyModuleLoader(ModuleLoader):
|
|||
if path:
|
||||
m.__path__ = path
|
||||
m.__file__ = filename
|
||||
exec code in m.__dict__
|
||||
try:
|
||||
exec code in m.__dict__
|
||||
except:
|
||||
d = self.hooks.modules_dict()
|
||||
if name in d:
|
||||
del d[name]
|
||||
raise
|
||||
return m
|
||||
|
||||
|
||||
|
|
|
@ -297,7 +297,12 @@ class Importer:
|
|||
|
||||
# execute the code within the module's namespace
|
||||
if not is_module:
|
||||
exec code in module.__dict__
|
||||
try:
|
||||
exec code in module.__dict__
|
||||
except:
|
||||
if fqname in sys.modules:
|
||||
del sys.modules[fqname]
|
||||
raise
|
||||
|
||||
# fetch from sys.modules instead of returning module directly.
|
||||
# also make module's __name__ agree with fqname, in case
|
||||
|
|
Loading…
Reference in New Issue