Skip to content

Commit b9e9f6f

Browse files
committed
refactor: indicate private methods by convention
1 parent f92caf0 commit b9e9f6f

File tree

2 files changed

+27
-19
lines changed

2 files changed

+27
-19
lines changed

freqtrade/exchange/binance.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ async def _async_get_trade_history_id(
439439
pair, until=until, since=since, from_id=from_id
440440
)
441441

442-
def check_delisting_futures(self, pair: str) -> datetime | None:
442+
def _check_delisting_futures(self, pair: str) -> datetime | None:
443443
delivery_time = self.markets.get(pair, {}).get("info", {}).get("deliveryDate", None)
444444
if delivery_time:
445445
if isinstance(delivery_time, str) and (delivery_time != ""):
@@ -459,14 +459,20 @@ def check_delisting_futures(self, pair: str) -> datetime | None:
459459
return delivery_time
460460

461461
def check_delisting_time(self, pair: str) -> datetime | None:
462+
"""
463+
Check if the pair gonna be delisted.
464+
By default, it returns None.
465+
:param pair: Market symbol
466+
:return: Datetime if the pair gonna be delisted, None otherwise
467+
"""
462468
if self._config["runmode"] not in TRADE_MODES:
463469
return None
464470

465471
if self.trading_mode == TradingMode.FUTURES:
466-
return self.check_delisting_futures(pair)
467-
return self.get_spot_pair_delist_time(pair, refresh=False)
472+
return self._check_delisting_futures(pair)
473+
return self._get_spot_pair_delist_time(pair, refresh=False)
468474

469-
def get_spot_delist_schedule(self):
475+
def _get_spot_delist_schedule(self):
470476
"""
471477
Get the delisting schedule for spot pairs
472478
Only works in live mode as it requires API keys,
@@ -494,7 +500,7 @@ def get_spot_delist_schedule(self):
494500
except ccxt.BaseError as e:
495501
raise OperationalException(e) from e
496502

497-
def get_spot_pair_delist_time(self, pair: str, refresh: bool = False) -> datetime | None:
503+
def _get_spot_pair_delist_time(self, pair: str, refresh: bool = False) -> datetime | None:
498504
"""
499505
Get the delisting time for a pair if it will be delisted
500506
:param pair: Pair to get the delisting time for
@@ -512,7 +518,7 @@ def get_spot_pair_delist_time(self, pair: str, refresh: bool = False) -> datetim
512518
if delist_time := cache.get(pair, None):
513519
return delist_time
514520

515-
delist_schedule = self.get_spot_delist_schedule()
521+
delist_schedule = self._get_spot_delist_schedule()
516522

517523
if delist_schedule is None:
518524
return None

tests/exchange/test_binance.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,8 +1116,8 @@ def test_check_delisting_time_binance(default_conf_usdt, mocker):
11161116
exchange._config["runmode"] = RunMode.BACKTEST
11171117
delist_mock = MagicMock(return_value=None)
11181118
delist_fut_mock = MagicMock(return_value=None)
1119-
mocker.patch.object(exchange, "get_spot_pair_delist_time", delist_mock)
1120-
mocker.patch.object(exchange, "check_delisting_futures", delist_fut_mock)
1119+
mocker.patch.object(exchange, "_get_spot_pair_delist_time", delist_mock)
1120+
mocker.patch.object(exchange, "_check_delisting_futures", delist_fut_mock)
11211121

11221122
# Invalid run mode
11231123
resp = exchange.check_delisting_time("BTC/USDT")
@@ -1141,41 +1141,43 @@ def test_check_delisting_time_binance(default_conf_usdt, mocker):
11411141
assert delist_fut_mock.call_count == 1
11421142

11431143

1144-
def test_check_delisting_futures_binance(default_conf_usdt, mocker, markets):
1144+
def test__check_delisting_futures_binance(default_conf_usdt, mocker, markets):
11451145
markets["BTC/USDT:USDT"] = deepcopy(markets["SOL/BUSD:BUSD"])
11461146
markets["BTC/USDT:USDT"]["info"]["deliveryDate"] = 4133404800000
11471147
markets["SOL/BUSD:BUSD"]["info"]["deliveryDate"] = 4133404800000
11481148
markets["ADA/USDT:USDT"]["info"]["deliveryDate"] = 1760745600000 # 2025-10-18
11491149
exchange = get_patched_exchange(mocker, default_conf_usdt, exchange="binance")
11501150
mocker.patch(f"{EXMS}.markets", PropertyMock(return_value=markets))
11511151

1152-
resp_sol = exchange.check_delisting_futures("SOL/BUSD:BUSD")
1152+
resp_sol = exchange._check_delisting_futures("SOL/BUSD:BUSD")
11531153
# Delisting is equal to BTC
11541154
assert resp_sol is None
11551155
# Actually has a delisting date
1156-
resp_ada = exchange.check_delisting_futures("ADA/USDT:USDT")
1156+
resp_ada = exchange._check_delisting_futures("ADA/USDT:USDT")
11571157
assert resp_ada == dt_utc(2025, 10, 18)
11581158

11591159

1160-
def test_get_spot_delist_schedule_binance(default_conf_usdt, mocker):
1160+
def test__get_spot_delist_schedule_binance(default_conf_usdt, mocker):
11611161
exchange = get_patched_exchange(mocker, default_conf_usdt, exchange="binance")
11621162
ret_value = [{"delistTime": 1759114800000, "symbols": ["ETCBTC"]}]
1163-
schedule_mock = mocker.patch.object(exchange, "get_spot_delist_schedule", return_value=None)
1163+
schedule_mock = mocker.patch.object(exchange, "_get_spot_delist_schedule", return_value=None)
11641164

11651165
# None - mode is DRY
1166-
assert exchange.get_spot_pair_delist_time("ETC/BTC") is None
1166+
assert exchange._get_spot_pair_delist_time("ETC/BTC") is None
11671167
# Switch to live
11681168
exchange._config["runmode"] = RunMode.LIVE
1169-
assert exchange.get_spot_pair_delist_time("ETC/BTC") is None
1169+
assert exchange._get_spot_pair_delist_time("ETC/BTC") is None
11701170

1171-
mocker.patch.object(exchange, "get_spot_delist_schedule", return_value=ret_value)
1172-
resp = exchange.get_spot_pair_delist_time("ETC/BTC")
1171+
mocker.patch.object(exchange, "_get_spot_delist_schedule", return_value=ret_value)
1172+
resp = exchange._get_spot_pair_delist_time("ETC/BTC")
11731173
assert resp == dt_utc(2025, 9, 29, 3, 0)
11741174
assert schedule_mock.call_count == 1
11751175
schedule_mock.reset_mock()
11761176

11771177
# Caching - don't refresh.
1178-
assert exchange.get_spot_pair_delist_time("ETC/BTC", refresh=False) == dt_utc(2025, 9, 29, 3, 0)
1178+
assert exchange._get_spot_pair_delist_time("ETC/BTC", refresh=False) == dt_utc(
1179+
2025, 9, 29, 3, 0
1180+
)
11791181
assert schedule_mock.call_count == 0
11801182

11811183
api_mock = MagicMock()
@@ -1184,7 +1186,7 @@ def test_get_spot_delist_schedule_binance(default_conf_usdt, mocker):
11841186
default_conf_usdt,
11851187
api_mock,
11861188
"binance",
1187-
"get_spot_delist_schedule",
1189+
"_get_spot_delist_schedule",
11881190
"sapi_get_spot_delist_schedule",
11891191
retries=1,
11901192
)

0 commit comments

Comments
 (0)