Coverage for portality / lib / dicts.py: 69%

13 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-05-05 00:09 +0100

1def deep_merge(a, b, overlay=False): 

2 if isinstance(a, list) and isinstance(b, list): 

3 for item in b: 

4 if item not in a: 

5 a.append(item) 

6 elif isinstance(a, dict) and isinstance(b, dict): 

7 for key in b: 

8 if key in a: 

9 a[key] = deep_merge(a[key], b[key], overlay=overlay) 

10 else: 

11 a[key] = b[key] 

12 else: 

13 if overlay: 

14 return b 

15 return a