Skip to content

Commit 8a06149

Browse files
committed
import architecture without explicitly extracting the package
1 parent af396aa commit 8a06149

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

bioimageio/core/digest_spec.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from numpy.typing import NDArray
2525
from typing_extensions import Unpack, assert_never
2626

27-
from bioimageio.spec._internal.io import HashKwargs, resolve_and_extract
27+
from bioimageio.spec._internal.io import HashKwargs, resolve
2828
from bioimageio.spec.common import FileDescr, FileSource, ZipPath
2929
from bioimageio.spec.model import AnyModelDescr, v0_4, v0_5
3030
from bioimageio.spec.model.v0_4 import CallableFromDepencency, CallableFromFile
@@ -84,17 +84,10 @@ def import_callable(
8484
def _import_from_file_impl(
8585
source: FileSource, callable_name: str, **kwargs: Unpack[HashKwargs]
8686
):
87-
local_file = resolve_and_extract(source, **kwargs)
88-
module_name = local_file.path.stem
89-
importlib_spec = importlib.util.spec_from_file_location(
90-
module_name, local_file.path
91-
)
92-
if importlib_spec is None:
93-
raise ImportError(f"Failed to import {module_name} from {source}.")
94-
95-
dep = importlib.util.module_from_spec(importlib_spec)
96-
importlib_spec.loader.exec_module(dep) # type: ignore # todo: possible to use "loader.load_module"?
97-
return getattr(dep, callable_name)
87+
code = resolve(source, **kwargs).path.read_text(encoding="utf-8")
88+
module_globals: Dict[str, Any] = {}
89+
exec(code, module_globals)
90+
return module_globals[callable_name]
9891

9992

10093
def get_axes_infos(

0 commit comments

Comments
 (0)