|
24 | 24 | from numpy.typing import NDArray |
25 | 25 | from typing_extensions import Unpack, assert_never |
26 | 26 |
|
27 | | -from bioimageio.spec._internal.io import HashKwargs, resolve_and_extract |
| 27 | +from bioimageio.spec._internal.io import HashKwargs, resolve |
28 | 28 | from bioimageio.spec.common import FileDescr, FileSource, ZipPath |
29 | 29 | from bioimageio.spec.model import AnyModelDescr, v0_4, v0_5 |
30 | 30 | from bioimageio.spec.model.v0_4 import CallableFromDepencency, CallableFromFile |
@@ -84,17 +84,10 @@ def import_callable( |
84 | 84 | def _import_from_file_impl( |
85 | 85 | source: FileSource, callable_name: str, **kwargs: Unpack[HashKwargs] |
86 | 86 | ): |
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] |
98 | 91 |
|
99 | 92 |
|
100 | 93 | def get_axes_infos( |
|
0 commit comments