zzz / openhands /utils /import_utils.py
ar08's picture
Upload 1040 files
246d201 verified
raw
history blame contribute delete
656 Bytes
import importlib
from typing import Type, TypeVar
T = TypeVar('T')
def import_from(qual_name: str):
"""Import the value from the qualified name given"""
parts = qual_name.split('.')
module_name = '.'.join(parts[:-1])
module = importlib.import_module(module_name)
result = getattr(module, parts[-1])
return result
def get_impl(cls: Type[T], impl_name: str | None) -> Type[T]:
"""Import a named implementation of the specified class"""
if impl_name is None:
return cls
impl_class = import_from(impl_name)
assert cls == impl_class or issubclass(impl_class, cls)
return impl_class