Source code for simba.Modules.merge_two_dicts

from typing import Dict

[docs] def merge_two_dicts(y: Dict, x: Dict) -> Dict: """ Combine two dictionaries: first dictionary overwrites keys in the second dictionary Parameters ---------- y: Dict First dictionary (overwrites second dictionary if keys match) x: Dict Second dictionary Returns ------- Dict Merged single dictionary """ if not isinstance(x, (dict, dict)) and not isinstance(y, (dict, dict)): return dict() elif not isinstance(x, (dict, dict)): return y elif not isinstance(y, (dict, dict)): return x else: z = x.copy() # start with x's keys and values z.update(y) # modifies z with y's keys and values & returns None return z
[docs] def merge_dicts(*dicts: Dict) -> Dict: """ Combine multiple dictionaries: first dictionary overwrites keys in the second dictionary and so on Parameters ---------- dicts: Dict of dicts Dictionary, ordered by priority Returns ------- Dict Merged single dictionary """ final_dict = dicts[-1] for dic in list(reversed(dicts))[1:]: final_dict = merge_two_dicts(dic, final_dict) return final_dict