Spaces:
Running
Running
File size: 918 Bytes
4d4dd90 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import importlib.util
from ..utils.tools import get_class
from .base_model import BaseModel
def get_model(name):
import_paths = [
name,
f"{__name__}.{name}",
f"{__name__}.extractors.{name}", # backward compatibility
f"{__name__}.matchers.{name}", # backward compatibility
]
for path in import_paths:
try:
spec = importlib.util.find_spec(path)
except ModuleNotFoundError:
spec = None
if spec is not None:
try:
return get_class(path, BaseModel)
except AssertionError:
mod = __import__(path, fromlist=[""])
try:
return mod.__main_model__
except AttributeError as exc:
print(exc)
continue
raise RuntimeError(f'Model {name} not found in any of [{" ".join(import_paths)}]')
|