recursive_merge_dicts

gammapy.utils.scripts.recursive_merge_dicts(a, b)[source]

Recursively merge two dictionaries.

Entries in b override entries in a. The built-in update function cannot be used for hierarchical dicts, see: http://stackoverflow.com/questions/3232943/update-value-of-a-nested-dictionary-of-varying-depth/3233356#3233356

Parameters
adict

dictionary to be merged

bdict

dictionary to be merged

Returns
cdict

merged dict

Examples

>>> from gammapy.utils.scripts import recursive_merge_dicts
>>> a = dict(a=42, b=dict(c=43, e=44))
>>> b = dict(d=99, b=dict(c=50, g=98))
>>> c = recursive_merge_dicts(a, b)
>>> print(c)
{'a': 42, 'b': {'c': 50, 'e': 44, 'g': 98}, 'd': 99}