pyagc.utils.deep_update_dict

deep_update_dict(base: dict, overrides: dict) dict[source]

Recursively update a nested dictionary.

Performs a deep merge of two dictionaries, where values from overrides are recursively merged into base. For nested dictionaries, this function recursively updates the nested structure. For non-dict values, the override value replaces the base value.

Parameters:
  • base (dict) – The base dictionary to be updated. This dictionary is modified in-place.

  • overrides (dict) – Dictionary containing values to merge into base. Nested dictionaries are recursively merged.

Returns:

The updated base dictionary (same object as input, modified in-place).

Return type:

dict

Example

>>> base = {'a': 1, 'b': {'c': 2, 'd': 3}}
>>> overrides = {'b': {'c': 20, 'e': 4}, 'f': 5}
>>> result = deep_update_dict(base, overrides)
>>> print(result)
{'a': 1, 'b': {'c': 20, 'd': 3, 'e': 4}, 'f': 5}

Note

  • This function modifies base in-place

  • For nested dictionaries, only dict values are recursively merged

  • Non-dict values in overrides always replace values in base

  • To preserve the original base, pass base.copy()