Source code for hexrd.nf_config.utils

import copy


[docs]def merge_dicts(a, b): """Return a merged dict, updating values from `a` with values from `b`.""" # need to pass a deep copy of a at the top level only: return _merge_dicts(copy.deepcopy(a), b)
def _merge_dicts(a, b): for k, v in b.items(): if isinstance(v, dict): if a.get(k) is None: # happens in cases where all but section head is commented a[k] = {} _merge_dicts(a[k], v) else: if v is None and a.get(k) is not None: # entire section commented out. Inherit, don't overwrite pass else: a[k] = v return a
[docs]class Null(): pass
null = Null()