1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-16 02:36:11 +00:00

fix sub config import error

This commit is contained in:
deadc0de6
2024-10-24 22:37:53 +02:00
committed by deadc0de
parent c1d24d55e1
commit 501d3276a4

View File

@@ -115,7 +115,8 @@ class CfgYaml:
top_entries = [key_dotfiles, key_settings, key_profiles] top_entries = [key_dotfiles, key_settings, key_profiles]
def __init__(self, path, profile=None, addprofiles=None, def __init__(self, path, profile=None, addprofiles=None,
reloading=False, debug=False, imported_configs=None): reloading=False, debug=False, imported_configs=None,
fail_on_missing_keys=True):
""" """
config parser config parser
@path: config file path @path: config file path
@@ -168,7 +169,7 @@ class CfgYaml:
# live patch deprecated entries # live patch deprecated entries
self._fix_deprecated(self._yaml_dict) self._fix_deprecated(self._yaml_dict)
# validate content # validate content
self._validate(self._yaml_dict) self._validate(self._yaml_dict, fail_on_missing_keys)
################################################## ##################################################
# parse the config and variables # parse the config and variables
@@ -1080,7 +1081,8 @@ class CfgYaml:
sub = CfgYaml(path, profile=self._profile, sub = CfgYaml(path, profile=self._profile,
addprofiles=self._inc_profiles, addprofiles=self._inc_profiles,
debug=self._debug, debug=self._debug,
imported_configs=self.imported_configs) imported_configs=self.imported_configs,
fail_on_missing_keys=False)
# settings are ignored from external file # settings are ignored from external file
# except for filter_file and func_file # except for filter_file and func_file
@@ -1337,7 +1339,7 @@ class CfgYaml:
self._dbg(f'format: {self._config_format}') self._dbg(f'format: {self._config_format}')
return content return content
def _validate(self, yamldict): def _validate(self, yamldict, fail_on_missing_key):
"""validate entries""" """validate entries"""
if not yamldict: if not yamldict:
raise YamlException('empty config file') raise YamlException('empty config file')
@@ -1353,7 +1355,7 @@ class CfgYaml:
if self.key_settings not in yamldict: if self.key_settings not in yamldict:
# no configs top entry # no configs top entry
raise YamlException(f'no \"{self.key_settings}\" key found') raise YamlException(f'no \"{self.key_settings}\" key found')
if not yamldict[self.key_settings]: if fail_on_missing_key and not yamldict[self.key_settings]:
# configs empty # configs empty
raise YamlException(f'empty \"{self.key_settings}\" key') raise YamlException(f'empty \"{self.key_settings}\" key')