Commit 7cfeee80 authored by Jason R. Coombs's avatar Jason R. Coombs

Extract 'find_spec' function to consolidate behavior. Ref #1905.

parent 3463820b
......@@ -17,12 +17,18 @@ C_BUILTIN = 6
PY_FROZEN = 7
def find_spec(module, paths):
finder = (
importlib.machinery.PathFinder().find_spec
if isinstance(paths, list) else
importlib.util.find_spec
)
return finder(module, paths)
def find_module(module, paths=None):
"""Just like 'imp.find_module()', but with package support"""
if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
spec = find_spec(module, paths)
if spec is None:
raise ImportError("Can't find %s" % module)
if not spec.has_location and hasattr(spec, 'submodule_search_locations'):
......@@ -63,20 +69,14 @@ def find_module(module, paths=None):
def get_frozen_object(module, paths=None):
if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
spec = find_spec(module, paths)
if not spec:
raise ImportError("Can't find %s" % module)
return spec.loader.get_code(module)
def get_module(module, paths, info):
if isinstance(paths, list):
spec = importlib.machinery.PathFinder().find_spec(module, paths)
else:
spec = importlib.util.find_spec(module, paths)
spec = find_spec(module, paths)
if not spec:
raise ImportError("Can't find %s" % module)
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