diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2006-07-06 12:53:04 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2006-07-06 12:53:04 (GMT) |
commit | 56829d5b4a339ee8ca70078a958ce67fa799677d (patch) | |
tree | 1770d0521c11803dab9b0107fcf65244db42a014 /Lib/runpy.py | |
parent | bf84e54078bc443ae7eb14054f83bf686582dda5 (diff) | |
download | cpython-56829d5b4a339ee8ca70078a958ce67fa799677d.zip cpython-56829d5b4a339ee8ca70078a958ce67fa799677d.tar.gz cpython-56829d5b4a339ee8ca70078a958ce67fa799677d.tar.bz2 |
Revert the __module_name__ changes made in rev 47142. We'll revisit this in Python 2.6
Diffstat (limited to 'Lib/runpy.py')
-rwxr-xr-x | Lib/runpy.py | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/Lib/runpy.py b/Lib/runpy.py index 6c44850..8290dfe 100755 --- a/Lib/runpy.py +++ b/Lib/runpy.py @@ -21,19 +21,18 @@ __all__ = [ ] -def _run_code(code, run_globals, init_globals, run_name, +def _run_code(code, run_globals, init_globals, mod_name, mod_fname, mod_loader): """Helper for _run_module_code""" if init_globals is not None: run_globals.update(init_globals) - run_globals.update(__name__ = run_name, - __module_name__ = mod_name, + run_globals.update(__name__ = mod_name, __file__ = mod_fname, __loader__ = mod_loader) exec code in run_globals return run_globals -def _run_module_code(code, init_globals=None, run_name=None, +def _run_module_code(code, init_globals=None, mod_name=None, mod_fname=None, mod_loader=None, alter_sys=False): """Helper for run_module""" @@ -43,33 +42,26 @@ def _run_module_code(code, init_globals=None, run_name=None, temp_module = imp.new_module(mod_name) mod_globals = temp_module.__dict__ saved_argv0 = sys.argv[0] - sentinel = object() - module_mod_name = sys.modules.get(mod_name, sentinel) - module_run_name = sys.modules.get(run_name, sentinel) + restore_module = mod_name in sys.modules + if restore_module: + saved_module = sys.modules[mod_name] sys.argv[0] = mod_fname sys.modules[mod_name] = temp_module - if run_name != mod_name: - sys.modules[run_name] = temp_module try: - _run_code(code, mod_globals, init_globals, run_name, + _run_code(code, mod_globals, init_globals, mod_name, mod_fname, mod_loader) finally: sys.argv[0] = saved_argv0 - if module_mod_name is not sentinel: - sys.modules[mod_name] = module_mod_name - else: - del sys.modules[mod_name] - if run_name != mod_name: - if module_run_name is not sentinel: - sys.modules[run_name] = module_run_name - else: - del sys.modules[run_name] + if restore_module: + sys.modules[mod_name] = saved_module + else: + del sys.modules[mod_name] # Copy the globals of the temporary module, as they # may be cleared when the temporary module goes away return mod_globals.copy() else: # Leave the sys module alone - return _run_code(code, {}, init_globals, run_name, + return _run_code(code, {}, init_globals, mod_name, mod_fname, mod_loader) @@ -100,7 +92,7 @@ def run_module(mod_name, init_globals=None, if run_name is None: run_name = mod_name return _run_module_code(code, init_globals, run_name, - mod_name, filename, loader, alter_sys) + filename, loader, alter_sys) if __name__ == "__main__": |