[utils] Introduce merge_dicts

This commit is contained in:
Sergey M․ 2018-04-28 02:47:17 +07:00
parent 0fe7783ece
commit 6cc622327f
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
3 changed files with 27 additions and 15 deletions

View file

@ -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)