importimportlibfrom.base_modelimportBaseModeldeffind_model_using_name(model_name):model_filename="models."+model_name+"_model"modellib=importlib.import_module(model_filename)target_model_name=model_name.replace('_','')model=Noneforname,clsinmodellib.__dict__.items():ifname.lower()==target_model_name.lower()andissubclass(cls,BaseModel):model=clsassertmodelisnotNone,"model {} is not right, please check it!".format(model_name)returnmodeldefget_special_cfg(model):model_cls=find_model_using_name(model)returnmodel_cls.add_special_cfgsdefcreate_model(cfg):model_cls=find_model_using_name(cfg.model)returnmodel_cls(cfg)