From 96e5615d1b9f9d67f3cbe088210b06a086858c1c Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 11 Sep 2023 20:03:08 +0200 Subject: [PATCH] Update safe_value_fallback to allow empty 2nd keys --- freqtrade/misc.py | 4 ++-- tests/test_misc.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/freqtrade/misc.py b/freqtrade/misc.py index f8d730fae..cbebf99eb 100644 --- a/freqtrade/misc.py +++ b/freqtrade/misc.py @@ -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 diff --git a/tests/test_misc.py b/tests/test_misc.py index e94e299fd..7de1adbbc 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -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():