Update safe_value_fallback to allow empty 2nd keys
This commit is contained in:
+2
-2
@@ -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()}
|
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.
|
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.
|
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:
|
if key1 in obj and obj[key1] is not None:
|
||||||
return obj[key1]
|
return obj[key1]
|
||||||
else:
|
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 obj[key2]
|
||||||
return default_value
|
return default_value
|
||||||
|
|
||||||
|
|||||||
@@ -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') is None
|
||||||
assert safe_value_fallback(dict1, 'keyNo', 'keyNo', 55) == 55
|
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():
|
def test_safe_value_fallback2():
|
||||||
|
|||||||
Reference in New Issue
Block a user