1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-05 12:38:50 +00:00

do not fail on sub config

This commit is contained in:
deadc0de6
2024-10-24 23:24:39 +02:00
committed by deadc0de
parent 501d3276a4
commit b53f9396ec

View File

@@ -116,7 +116,7 @@ class CfgYaml:
def __init__(self, path, profile=None, addprofiles=None,
reloading=False, debug=False, imported_configs=None,
fail_on_missing_keys=True):
fail_on_error=True):
"""
config parser
@path: config file path
@@ -169,7 +169,7 @@ class CfgYaml:
# live patch deprecated entries
self._fix_deprecated(self._yaml_dict)
# validate content
self._validate(self._yaml_dict, fail_on_missing_keys)
self._validate(self._yaml_dict, fail_on_error)
##################################################
# parse the config and variables
@@ -1082,7 +1082,7 @@ class CfgYaml:
addprofiles=self._inc_profiles,
debug=self._debug,
imported_configs=self.imported_configs,
fail_on_missing_keys=False)
fail_on_error=False)
# settings are ignored from external file
# except for filter_file and func_file
@@ -1339,10 +1339,12 @@ class CfgYaml:
self._dbg(f'format: {self._config_format}')
return content
def _validate(self, yamldict, fail_on_missing_key):
def _validate(self, yamldict, fail_on_error):
"""validate entries"""
if not yamldict:
raise YamlException('empty config file')
if fail_on_error:
raise YamlException('empty config file')
return
# check top entries
for entry in self.top_entries:
@@ -1354,10 +1356,14 @@ class CfgYaml:
# check link_dotfile_default
if self.key_settings not in yamldict:
# no configs top entry
raise YamlException(f'no \"{self.key_settings}\" key found')
if fail_on_missing_key and not yamldict[self.key_settings]:
if fail_on_error:
raise YamlException(f'no \"{self.key_settings}\" key found')
return
if not yamldict[self.key_settings]:
# configs empty
raise YamlException(f'empty \"{self.key_settings}\" key')
if fail_on_error:
raise YamlException(f'empty \"{self.key_settings}\" key')
return
# check settings values
settings = yamldict[self.key_settings]