def load_config(path):
# TODO: support old-style setting names? i.e. pass them through ARGS_TO_SETTINGS ?
data = {}
yaml_err = ""
if useYAML:
try:
# this assumes only one document
with open(path, encoding='utf8') as infp:
data = yaml_load(infp, Loader=YAMLLoader)
except FileNotFoundError:
return {}
except YAMLError as e:
yaml_err = 'YAML parsing error in file {}'.format(path)
if hasattr(e, 'problem_mark'):
mark = e.problem_mark
yaml_err + '\nError on Line:{} Column:{}'.format(mark.line + 1, mark.column + 1)
else:
return _convert_old_config(data)
try:
with open(path, encoding='utf8') as infp:
data = json.load(infp)
except FileNotFoundError:
return {}
except json.JSONDecodeError as e:
if useYAML and yaml_err:
print(yaml_err)
else:
print('JSON parsing error in file {}'.format(path),
'Error on Line: {} Column: {}'.format(e.lineno, e.colno), sep='\n')
data = _convert_old_config(data)
# if 'directory' in data:
# for k, v in data['directory'].items():
# data['directory'][k] = os.path.expanduser(v)
return data
评论列表
文章目录