classAdapterFactory:def__init__(self)->None:self.adapters:Dict[str,AdapterBase]={}defadapter(self,name:str)->AdapterBase:returnself.adapters.setdefault(name,self.load_adapter(name))@staticmethoddefload_adapter(name:str)->AdapterBase:mod=AdapterFactory._import_module(submodule=ADAPTER_SUBMODULE,name=name)returnAdapterFactory._filter_class_from_module(mod)@staticmethoddef_import_module(submodule:str,name:str,suffix:Optional[str]=None)->ModuleType:_name=f"blackline.{submodule}.{name}.{name}"ifsuffixisnotNone:_name+=f"_{suffix}"try:returnimport_module(_name)exceptModuleNotFoundErrorase:ife.nameand"blackline"ine.name:raiseModuleNotFoundError(f"Could not import plugin: {_name}. Have you install the blackline-{name} package?"# noqa: E501)raisee@staticmethoddef_filter_class_from_module(mod):returninspect.getmembers(mod,lambdamember:inspect.isclass(member)andmember.__module__==mod.__name__,)[0][1]