[utils] Introduce merge_dicts
This commit is contained in:
parent
0fe7783ece
commit
6cc622327f
3 changed files with 27 additions and 15 deletions
|
@ -2225,6 +2225,20 @@ def try_get(src, getter, expected_type=None):
|
|||
return v
|
||||
|
||||
|
||||
def merge_dicts(*dicts):
|
||||
merged = {}
|
||||
for a_dict in dicts:
|
||||
for k, v in a_dict.items():
|
||||
if v is None:
|
||||
continue
|
||||
if (k not in merged or
|
||||
(isinstance(v, compat_str) and v and
|
||||
isinstance(merged[k], compat_str) and
|
||||
not merged[k])):
|
||||
merged[k] = v
|
||||
return merged
|
||||
|
||||
|
||||
def encode_compat_str(string, encoding=preferredencoding(), errors='strict'):
|
||||
return string if isinstance(string, compat_str) else compat_str(string, encoding, errors)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue