mate_common.datastructures.dict_utils module

This module provides dict manipulation functions.

mate_common.datastructures.dict_utils.recursive_merge(d1: Dict[mate_common.datastructures.dict_utils.T, Any], d2: Dict[mate_common.datastructures.dict_utils.T, Any]) Dict[mate_common.datastructures.dict_utils.T, Any]

Merge two dictionaries, merging any sub-dictionaries at the same key.

If the two dictionaries have the same key (path) but different values, the values in the second dictionary will be used.

Returns a freshly-allocated dict.

>>> recursive_merge({'foo': {'bar': 'baz'}}, {})
{'foo': {'bar': 'baz'}}
>>> recursive_merge({}, {'foo': {'bar': 'baz'}})
{'foo': {'bar': 'baz'}}
>>> recursive_merge({'foo': {'bar': 'baz'}}, {'foo': {'quux': 'asdf'}})
{'foo': {'bar': 'baz', 'quux': 'asdf'}}
>>> recursive_merge({'foo': {'bar': 'baz'}}, {'foo': {'bar': 'asdf'}})
{'foo': {'bar': 'asdf'}}
Parameters
  • d1 (Dict[mate_common.datastructures.dict_utils.T, Any]) –

  • d2 (Dict[mate_common.datastructures.dict_utils.T, Any]) –

Return type

Dict[mate_common.datastructures.dict_utils.T, Any]