Helper to run code in nominated namespace
(code, run_globals, init_globals=None, mod_name=None, mod_spec=None, pkg_name=None, script_name=None)
| 99 | |
| 100 | # TODO: Replace these helpers with importlib._bootstrap_external functions. |
| 101 | def _run_code(code, run_globals, init_globals=None, mod_name=None, mod_spec=None, pkg_name=None, script_name=None): |
| 102 | """Helper to run code in nominated namespace""" |
| 103 | if init_globals is not None: |
| 104 | run_globals.update(init_globals) |
| 105 | if mod_spec is None: |
| 106 | loader = None |
| 107 | fname = script_name |
| 108 | cached = None |
| 109 | else: |
| 110 | loader = mod_spec.loader |
| 111 | fname = mod_spec.origin |
| 112 | cached = mod_spec.cached |
| 113 | if pkg_name is None: |
| 114 | pkg_name = mod_spec.parent |
| 115 | run_globals.update( |
| 116 | __name__=mod_name, __file__=fname, __cached__=cached, __doc__=None, __loader__=loader, __package__=pkg_name, __spec__=mod_spec |
| 117 | ) |
| 118 | exec(code, run_globals) |
| 119 | return run_globals |
| 120 | |
| 121 | |
| 122 | def _run_module_code(code, init_globals=None, mod_name=None, mod_spec=None, pkg_name=None, script_name=None): |
no test coverage detected