MCPcopy Index your code
hub / github.com/python/cpython / import_script

Method import_script

Lib/test/test_import/__init__.py:2182–2224  ·  view source on GitHub ↗
(self, name, fd, filename=None, check_override=None)

Source from the content-addressed store, hash-verified

2180 return (r, w)
2181
2182 def import_script(self, name, fd, filename=None, check_override=None):
2183 override_text = ''
2184 if check_override is not None:
2185 override_text = f'''
2186 import _imp
2187 _imp._override_multi_interp_extensions_check({check_override})
2188 '''
2189 if filename:
2190 # Apple extensions must be distributed as frameworks. This requires
2191 # a specialist loader.
2192 if is_apple_mobile:
2193 loader = "AppleFrameworkLoader"
2194 else:
2195 loader = "ExtensionFileLoader"
2196
2197 return textwrap.dedent(f'''
2198 from importlib.util import spec_from_loader, module_from_spec
2199 from importlib.machinery import {loader}
2200 import os, sys
2201 {override_text}
2202 loader = {loader}({name!r}, {filename!r})
2203 spec = spec_from_loader({name!r}, loader)
2204 try:
2205 module = module_from_spec(spec)
2206 loader.exec_module(module)
2207 except ImportError as exc:
2208 text = 'ImportError: ' + str(exc)
2209 else:
2210 text = 'okay'
2211 os.write({fd}, text.encode('utf-8'))
2212 ''')
2213 else:
2214 return textwrap.dedent(f'''
2215 import os, sys
2216 {override_text}
2217 try:
2218 import {name}
2219 except ImportError as exc:
2220 text = 'ImportError: ' + str(exc)
2221 else:
2222 text = 'okay'
2223 os.write({fd}, text.encode('utf-8'))
2224 ''')
2225
2226 def run_here(self, name, filename=None, *,
2227 check_singlephase_setting=False,

Callers 3

run_hereMethod · 0.95

Calls 1

dedentMethod · 0.45

Tested by

no test coverage detected