Deep Merge Nested Dictionaries

Recursively merge configuration dictionaries so nested sections are combined rather than replaced wholesale by a later override.

PythonConfig Management

Code

snippet
from copy import deepcopy
from typing import Any, Dict


def deep_merge(base: Dict[str, Any], override: Dict[str, Any]) -> Dict[str, Any]:
    result = deepcopy(base)
    for key, value in override.items():
        current = result.get(key)
        if isinstance(current, dict) and isinstance(value, dict):
            result[key] = deep_merge(current, value)
        else:
            result[key] = deepcopy(value)
    return result


merged = deep_merge(
    {"db": {"host": "localhost", "pool": {"min": 1}}},
    {"db": {"pool": {"max": 10}}},
)
print(merged)