def load_class(class_name: str, module_name: str): if class_name is None: raise TypeError("class_name must not be None") if not isinstance(class_name, str): raise TypeError("class_name must be a string") if module_name is None: raise TypeError("module_name must not be None") if not isinstance(module_name, str): raise TypeError("module_name must be a string") try: verify_dynamic_loading_support(module_name=module_name) except FileNotFoundError: raise PluginModuleNotFoundError(module_name) module_obj: Optional[ModuleType] = import_library_module( module_name=module_name) if module_obj is None: raise PluginModuleNotFoundError(module_name) try: klass_ = getattr(module_obj, class_name) except AttributeError: raise PluginClassNotFoundError(module_name=module_name, class_name=class_name) return klass_
def load_class(class_name, module_name): """Dynamically load a class from strings or raise a helpful error.""" try: loaded_module = importlib.import_module(module_name) class_ = getattr(loaded_module, class_name) except ModuleNotFoundError: raise PluginModuleNotFoundError(module_name) except AttributeError: raise PluginClassNotFoundError(module_name=module_name, class_name=class_name) return class_
def load_class(class_name, module_name): try: verify_dynamic_loading_support(module_name=module_name) except FileNotFoundError: raise PluginModuleNotFoundError(module_name) module_obj: Union[ModuleType, None] = import_library_module(module_name=module_name) if module_obj is None: raise PluginModuleNotFoundError(module_name) try: klass_ = getattr(module_obj, class_name) except AttributeError: raise PluginClassNotFoundError(module_name=module_name, class_name=class_name) return klass_
def load_class(class_name, module_name): """Dynamically load a class from strings or raise a helpful error.""" # TODO remove this nasty python 2 hack try: ModuleNotFoundError except NameError: ModuleNotFoundError = ImportError try: loaded_module = importlib.import_module(module_name) class_ = getattr(loaded_module, class_name) except ModuleNotFoundError as e: raise PluginModuleNotFoundError(module_name=module_name) except AttributeError as e: raise PluginClassNotFoundError(module_name=module_name, class_name=class_name) return class_