Correctly import submodules

This commit is contained in:
Phil Schaf 2024-04-11 17:13:18 +02:00 committed by Bruno Oliveira
parent 63d985c6d3
commit 752c51cb51
1 changed files with 4 additions and 8 deletions

View File

@ -550,9 +550,7 @@ def import_path(
with contextlib.suppress(KeyError):
return sys.modules[module_name]
mod = _import_module_using_spec(
module_name, path, pkg_root, insert_modules=False
)
mod = _import_module_using_spec(module_name, path, insert_modules=False)
if mod is not None:
return mod
@ -562,9 +560,7 @@ def import_path(
with contextlib.suppress(KeyError):
return sys.modules[module_name]
mod = _import_module_using_spec(
module_name, path, path.parent, insert_modules=True
)
mod = _import_module_using_spec(module_name, path, insert_modules=True)
if mod is None:
raise ImportError(f"Can't find module {module_name} at location {path}")
return mod
@ -617,7 +613,7 @@ def import_path(
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]:
"""
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,
# such as our own assertion-rewrite hook.
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):
break
else: