from .base import * from .dirs import * from .configs import * from .options import * from .common import * from .customer import * from .black import * def load_from_file(config_path:str=None): """从文件加载customer配置 """ if not os.path.exists(config_path): log.warning(f"{config_path} doesn't exists") return with open(config_path, 'r') as f: sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from thirdparty import yaml obj = yaml.safe_load(f.read()) # 遍历该package下的所有数据,如果是 BaseConfig 类型的实例则进行更新操作 for class_name in globals(): instance = globals()[class_name] if isinstance(instance, BaseConfig): class_name = instance.__class__.__name__ if class_name not in obj: log.debug(f"No Customer Config update ==> {class_name}") continue log.info(f"Update Customer Config Cnt: {len(obj[class_name]):3d} ==> {class_name}") instance = instance.update_from_extra(obj[class_name]) globals()[class_name] = instance