MMFS / configs /__init__.py
limoran
add basic files
7e2a2a5
import importlib
from configs.base_config import BaseConfig
def find_config_by_name(config_name):
# load config lib by config name
config_file = "configs." + config_name + '_config'
config_lib = importlib.import_module(config_file)
print(config_lib)
# find the subclass of BaseConfig
config = None
target_config_name = config_name.replace('_', '') + 'config'
target_config_name = target_config_name.lower()
for name, cls in config_lib.__dict__.items():
if name.lower() == target_config_name and issubclass(cls, BaseConfig):
config = cls
if config is None:
raise Exception('No valid config found.')
return config
def parse_config(cfg_file):
# parse config using BaseConfig
cfg = BaseConfig().parse_config(cfg_file)
model_name = cfg['common']['model']
# re-parse using specified Config class
config = find_config_by_name(model_name)
return config().parse_config(cfg_file)