import yaml | |
from easydict import EasyDict | |
def merge_new_config(config, new_config): | |
if '_BASE_CONFIG_' in new_config: | |
with open(new_config['_BASE_CONFIG_'], 'r') as f: | |
try: | |
yaml_config = yaml.safe_load(f, Loader=yaml.FullLoader) | |
except: | |
yaml_config = yaml.safe_load(f) | |
config.update(EasyDict(yaml_config)) | |
for key, val in new_config.items(): | |
if not isinstance(val, dict): | |
config[key] = val | |
continue | |
if key not in config: | |
config[key] = EasyDict() | |
merge_new_config(config[key], val) | |
return config | |
def cfg_from_yaml_file(cfg_file, config): | |
with open(cfg_file, 'r') as f: | |
try: | |
new_config = yaml.safe_load(f, Loader=yaml.FullLoader) | |
except: | |
new_config = yaml.safe_load(f) | |
merge_new_config(config=config, new_config=new_config) | |
return config | |
cfg = EasyDict() | |