From 5eb446f1ce1d6b17565d6dfc2c3110d8950d90ff Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 29 Aug 2023 17:44:39 +0200 Subject: [PATCH] Don't remove elements from list we're iterating over closes #9127 --- freqtrade/plugins/pairlist/pairlist_helpers.py | 5 ++--- tests/plugins/test_pairlist.py | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/freqtrade/plugins/pairlist/pairlist_helpers.py b/freqtrade/plugins/pairlist/pairlist_helpers.py index 5967b1dfa..ca8fdc200 100644 --- a/freqtrade/plugins/pairlist/pairlist_helpers.py +++ b/freqtrade/plugins/pairlist/pairlist_helpers.py @@ -29,9 +29,8 @@ def expand_pairlist(wildcardpl: List[str], available_pairs: List[str], except re.error as err: raise ValueError(f"Wildcard error in {pair_wc}, {err}") - for element in result: - if not re.fullmatch(r'^[A-Za-z0-9:/-]+$', element): - result.remove(element) + result = [element for element in result if re.fullmatch(r'^[A-Za-z0-9:/-]+$', element)] + else: for pair_wc in wildcardpl: try: diff --git a/tests/plugins/test_pairlist.py b/tests/plugins/test_pairlist.py index a718a0e8d..f930bc066 100644 --- a/tests/plugins/test_pairlist.py +++ b/tests/plugins/test_pairlist.py @@ -1373,6 +1373,9 @@ def test_expand_pairlist(wildcardlist, pairs, expected): (['BTC/USDT:USDT'], ['BTC/USDT:USDT', 'BTC/USDT'], ['BTC/USDT:USDT']), + (['BB_BTC/USDT', 'CC_BTC/USDT', 'AA_ETH/USDT', 'XRP/USDT', 'ETH/USDT', 'XX_BTC/USDT'], + ['BTC/USDT', 'ETH/USDT'], + ['XRP/USDT', 'ETH/USDT']), ]) def test_expand_pairlist_keep_invalid(wildcardlist, pairs, expected): if expected is None: