diff options
author | Maxim Devaev <[email protected]> | 2023-06-20 05:45:25 +0300 |
---|---|---|
committer | Maxim Devaev <[email protected]> | 2023-06-20 05:45:25 +0300 |
commit | a74044b086498cae1d6aed7cbf624e0b95e4f247 (patch) | |
tree | 376c184e24b0a01e23cd633874ea1039df87a6c0 /kvmd/yamlconf | |
parent | db3f6220238da8138c670924a074477987790fbe (diff) |
refactoring
Diffstat (limited to 'kvmd/yamlconf')
-rw-r--r-- | kvmd/yamlconf/merger.py | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/kvmd/yamlconf/merger.py b/kvmd/yamlconf/merger.py index 51a168c8..a11ff3aa 100644 --- a/kvmd/yamlconf/merger.py +++ b/kvmd/yamlconf/merger.py @@ -19,30 +19,29 @@ # # # ========================================================================== # -from typing import Optional - # ===== -def _merge(dest: dict, src: dict) -> None: - for key in src: - if key in dest: - if isinstance(dest[key], dict) and isinstance(src[key], dict): - _merge(dest[key], src[key]) - continue - dest[key] = src[key] - - -def yaml_merge(dest: dict, src: dict, source_name: Optional[str]=None) -> None: +def yaml_merge(dest: dict, src: dict, src_name: str="") -> None: """ Merges the source dictionary into the destination dictionary. """ # Checking if destination is None if dest is None: # We can't merge into a None - raise ValueError(f"Could not merge {source_name} into None. The destination cannot be None") + raise ValueError(f"Could not merge {src_name or 'config'} into None. The destination cannot be None") # Checking if source is None or empty - if src is None: + if not src: # If src is None or empty, there's nothing to merge return _merge(dest, src) + + +# ====== +def _merge(dest: dict, src: dict) -> None: + for key in src: + if key in dest: + if isinstance(dest[key], dict) and isinstance(src[key], dict): + _merge(dest[key], src[key]) + continue + dest[key] = src[key] |