deep_clone and deep_merge for nested dicts
Python
"""Deep-clone nested containers and merge mappings without aliasing."""
import copy
from collections.abc import Mapping
from typing import Any
def deep_clone(value: Any) -> Any:
"""Return a fully independent copy, including nested mutable items."""
return copy.deepcopy(value)
def deep_merge(base: Any, override: Any) -> Any:
"""Merge override into a fresh copy of base; mappings recurse by key."""
if isinstance(base, Mapping) and isinstance(override, Mapping):
merged = {key: deep_clone(value) for key, value in base.items()}
for key, value in override.items():
if key in base:
merged[key] = deep_merge(base[key], value)
else:
merged[key] = deep_clone(value)
return merged
# Lists, scalars and mismatched types: the override wins outright.
return deep_clone(override)
if __name__ == "__main__":
left = {"a": {"x": 1}, "tags": ["one"]}
right = {"a": {"y": 2}, "tags": ["two"]}
combined = deep_merge(left, right)
print(combined) # {'a': {'x': 1, 'y': 2}, 'tags': ['two']}
print(combined["tags"] is not right["tags"]) # True