27 lines
829 B
Python
27 lines
829 B
Python
import argparse
|
|
import yaml
|
|
import sys
|
|
|
|
def read_config_as_args(config_path,args=None,is_config_str=False):
|
|
return_dict = {}
|
|
|
|
if config_path is not None:
|
|
if is_config_str:
|
|
yml_config = yaml.load(config_path, Loader=yaml.FullLoader)
|
|
else:
|
|
with open(config_path, "r") as f:
|
|
yml_config = yaml.load(f, Loader=yaml.FullLoader)
|
|
|
|
if args != None:
|
|
for k, v in yml_config.items():
|
|
if k in args.__dict__:
|
|
args.__dict__[k] = v
|
|
else:
|
|
sys.stderr.write("Ignored unknown parameter {} in yaml.\n".format(k))
|
|
else:
|
|
for k, v in yml_config.items():
|
|
return_dict[k] = v
|
|
|
|
args = args if args != None else return_dict
|
|
return argparse.Namespace(**args)
|