Update safe_value_fallback to allow empty 2nd keys

This commit is contained in:
Matthias
2023-09-11 20:03:08 +02:00
parent 4798dea6e1
commit 96e5615d1b
2 changed files with 4 additions and 2 deletions

View File

@@ -156,7 +156,7 @@ def round_dict(d, n):
return {k: (round(v, n) if isinstance(v, float) else v) for k, v in d.items()}
def safe_value_fallback(obj: dict, key1: str, key2: str, default_value=None):
def safe_value_fallback(obj: dict, key1: str, key2: Optional[str] = None, default_value=None):
"""
Search a value in obj, return this if it's not None.
Then search key2 in obj - return that if it's not none - then use default_value.
@@ -165,7 +165,7 @@ def safe_value_fallback(obj: dict, key1: str, key2: str, default_value=None):
if key1 in obj and obj[key1] is not None:
return obj[key1]
else:
if key2 in obj and obj[key2] is not None:
if key2 and key2 in obj and obj[key2] is not None:
return obj[key2]
return default_value

View File

@@ -121,6 +121,8 @@ def test_safe_value_fallback():
assert safe_value_fallback(dict1, 'keyNo', 'keyNo') is None
assert safe_value_fallback(dict1, 'keyNo', 'keyNo', 55) == 55
assert safe_value_fallback(dict1, 'keyNo', default_value=55) == 55
assert safe_value_fallback(dict1, 'keyNo', None, default_value=55) == 55
def test_safe_value_fallback2():