Correctly import submodules
This commit is contained in:
parent
63d985c6d3
commit
752c51cb51
|
@ -550,9 +550,7 @@ def import_path(
|
||||||
with contextlib.suppress(KeyError):
|
with contextlib.suppress(KeyError):
|
||||||
return sys.modules[module_name]
|
return sys.modules[module_name]
|
||||||
|
|
||||||
mod = _import_module_using_spec(
|
mod = _import_module_using_spec(module_name, path, insert_modules=False)
|
||||||
module_name, path, pkg_root, insert_modules=False
|
|
||||||
)
|
|
||||||
if mod is not None:
|
if mod is not None:
|
||||||
return mod
|
return mod
|
||||||
|
|
||||||
|
@ -562,9 +560,7 @@ def import_path(
|
||||||
with contextlib.suppress(KeyError):
|
with contextlib.suppress(KeyError):
|
||||||
return sys.modules[module_name]
|
return sys.modules[module_name]
|
||||||
|
|
||||||
mod = _import_module_using_spec(
|
mod = _import_module_using_spec(module_name, path, insert_modules=True)
|
||||||
module_name, path, path.parent, insert_modules=True
|
|
||||||
)
|
|
||||||
if mod is None:
|
if mod is None:
|
||||||
raise ImportError(f"Can't find module {module_name} at location {path}")
|
raise ImportError(f"Can't find module {module_name} at location {path}")
|
||||||
return mod
|
return mod
|
||||||
|
@ -617,7 +613,7 @@ def import_path(
|
||||||
|
|
||||||
|
|
||||||
def _import_module_using_spec(
|
def _import_module_using_spec(
|
||||||
module_name: str, module_path: Path, module_location: Path, *, insert_modules: bool
|
module_name: str, module_path: Path, *, insert_modules: bool
|
||||||
) -> Optional[ModuleType]:
|
) -> Optional[ModuleType]:
|
||||||
"""
|
"""
|
||||||
Tries to import a module by its canonical name, path to the .py file, and its
|
Tries to import a module by its canonical name, path to the .py file, and its
|
||||||
|
@ -630,7 +626,7 @@ def _import_module_using_spec(
|
||||||
# Checking with sys.meta_path first in case one of its hooks can import this module,
|
# Checking with sys.meta_path first in case one of its hooks can import this module,
|
||||||
# such as our own assertion-rewrite hook.
|
# such as our own assertion-rewrite hook.
|
||||||
for meta_importer in sys.meta_path:
|
for meta_importer in sys.meta_path:
|
||||||
spec = meta_importer.find_spec(module_name, [str(module_location)])
|
spec = meta_importer.find_spec(module_name, [str(module_path.parent)])
|
||||||
if spec_matches_module_path(spec, module_path):
|
if spec_matches_module_path(spec, module_path):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue