Commit bbf825ee authored by Ondřej Súkup's avatar Ondřej Súkup Committed by GitHub

Fix _imp module behaviour if is defined paths in find_spec call

fixes #1896
parent 55994609
...@@ -19,7 +19,10 @@ PY_FROZEN = 7 ...@@ -19,7 +19,10 @@ PY_FROZEN = 7
def find_module(module, paths=None): def find_module(module, paths=None):
"""Just like 'imp.find_module()', but with package support""" """Just like 'imp.find_module()', but with package support"""
spec = importlib.util.find_spec(module, paths) if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
if spec is None: if spec is None:
raise ImportError("Can't find %s" % module) raise ImportError("Can't find %s" % module)
if not spec.has_location and hasattr(spec, 'submodule_search_locations'): if not spec.has_location and hasattr(spec, 'submodule_search_locations'):
...@@ -60,14 +63,20 @@ def find_module(module, paths=None): ...@@ -60,14 +63,20 @@ def find_module(module, paths=None):
def get_frozen_object(module, paths=None): def get_frozen_object(module, paths=None):
spec = importlib.util.find_spec(module, paths) if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
if not spec: if not spec:
raise ImportError("Can't find %s" % module) raise ImportError("Can't find %s" % module)
return spec.loader.get_code(module) return spec.loader.get_code(module)
def get_module(module, paths, info): def get_module(module, paths, info):
spec = importlib.util.find_spec(module, paths) if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
if not spec: if not spec:
raise ImportError("Can't find %s" % module) raise ImportError("Can't find %s" % module)
return module_from_spec(spec) return module_from_spec(spec)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment