@@ -246,8 +246,12 @@ def synopsis(filename, cache={}):
246246 else :
247247 # Must be a binary module, which has to be imported.
248248 loader = loader_cls ('__temp__' , filename )
249+ # XXX We probably don't need to pass in the loader here.
250+ spec = importlib .util .spec_from_file_location ('__temp__' , filename ,
251+ loader = loader )
252+ _spec = importlib ._bootstrap ._SpecMethods (spec )
249253 try :
250- module = loader . load_module ( '__temp__' )
254+ module = _spec . load ( )
251255 except :
252256 return None
253257 del sys .modules ['__temp__' ]
@@ -277,8 +281,11 @@ def importfile(path):
277281 loader = importlib ._bootstrap .SourcelessFileLoader (name , path )
278282 else :
279283 loader = importlib ._bootstrap .SourceFileLoader (name , path )
284+ # XXX We probably don't need to pass in the loader here.
285+ spec = importlib .util .spec_from_file_location (name , path , loader = loader )
286+ _spec = importlib ._bootstrap ._SpecMethods (spec )
280287 try :
281- return loader . load_module ( name )
288+ return _spec . load ( )
282289 except :
283290 raise ErrorDuringImport (path , sys .exc_info ())
284291
@@ -2008,10 +2015,11 @@ def run(self, callback, key=None, completer=None, onerror=None):
20082015 callback (None , modname , '' )
20092016 else :
20102017 try :
2011- loader = importer . find_module ( modname )
2018+ spec = pkgutil . _get_spec ( importer , modname )
20122019 except SyntaxError :
20132020 # raised by tests for bad coding cookies or BOM
20142021 continue
2022+ loader = spec .loader
20152023 if hasattr (loader , 'get_source' ):
20162024 try :
20172025 source = loader .get_source (modname )
@@ -2025,8 +2033,9 @@ def run(self, callback, key=None, completer=None, onerror=None):
20252033 else :
20262034 path = None
20272035 else :
2036+ _spec = importlib ._bootstrap ._SpecMethods (spec )
20282037 try :
2029- module = loader . load_module ( modname )
2038+ module = _spec . load ( )
20302039 except ImportError :
20312040 if onerror :
20322041 onerror (modname )
0 commit comments