Spaces:
Running
Running
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)}]') | |