Spaces:
Runtime error
Runtime error
import yaml | |
from typing import Dict | |
import re | |
loader = yaml.SafeLoader | |
loader.add_implicit_resolver( | |
u'tag:yaml.org,2002:float', | |
re.compile(u'''^(?: | |
[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+]?[0-9]+)? | |
|[-+]?(?:[0-9][0-9_]*)(?:[eE][-+]?[0-9]+) | |
|\\.[0-9_]+(?:[eE][-+][0-9]+)? | |
|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]* | |
|[-+]?\\.(?:inf|Inf|INF) | |
|\\.(?:nan|NaN|NAN))$''', re.X), | |
list(u'-+0123456789.')) | |
def read_yaml_config(file : str, output_dir : str = "", extra_args = {}) -> Dict: | |
data = yaml.load(open(file), Loader=loader) | |
data = {**{k: v for d in data if isinstance(data[d], dict) for k, v in data[d].items()}, **{k:v for k,v in data.items() if not isinstance(v, dict)}} | |
data['output_dir'] = output_dir if output_dir else data['EXP_NAME'] | |
for e,v in extra_args.items(): | |
data[e] = v | |
print(f'Yaml Config is:\n{"-" * 80}\n{data}\n{"-" * 80}') | |
return data | |