Skip to content

Commit 4eea0cc

Browse files
authored
Merge pull request freqtrade#12546 from freqtrade/dependabot/pip/develop/time-machine-3.0.0
chore(deps-dev): bump time-machine from 2.19.0 to 3.0.0
2 parents e4dd3b2 + 8274a6c commit 4eea0cc

16 files changed

+49
-38
lines changed

freqtrade/exchange/binance.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from pathlib import Path
66

77
import ccxt
8-
from cachetools import TTLCache
98
from pandas import DataFrame
109

1110
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS
@@ -21,6 +20,7 @@
2120
from freqtrade.exchange.exchange_types import FtHas, Tickers
2221
from freqtrade.exchange.exchange_utils_timeframe import timeframe_to_msecs
2322
from freqtrade.misc import deep_merge_dicts, json_load
23+
from freqtrade.util import FtTTLCache
2424
from freqtrade.util.datetime_helpers import dt_from_ts, dt_ts
2525

2626

@@ -76,7 +76,7 @@ class Binance(Exchange):
7676

7777
def __init__(self, *args, **kwargs) -> None:
7878
super().__init__(*args, **kwargs)
79-
self._spot_delist_schedule_cache: TTLCache = TTLCache(maxsize=100, ttl=300)
79+
self._spot_delist_schedule_cache: FtTTLCache = FtTTLCache(maxsize=100, ttl=300)
8080

8181
def get_proxy_coin(self) -> str:
8282
"""

freqtrade/exchange/exchange.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
import ccxt
1818
import ccxt.pro as ccxt_pro
19-
from cachetools import TTLCache
2019
from ccxt import TICK_SIZE
2120
from dateutil import parser
2221
from pandas import DataFrame, concat
@@ -107,9 +106,8 @@
107106
file_load_json,
108107
safe_value_fallback2,
109108
)
110-
from freqtrade.util import dt_from_ts, dt_now
109+
from freqtrade.util import FtTTLCache, PeriodicCache, dt_from_ts, dt_now
111110
from freqtrade.util.datetime_helpers import dt_humanize_delta, dt_ts, format_ms_time
112-
from freqtrade.util.periodic_cache import PeriodicCache
113111

114112

115113
logger = logging.getLogger(__name__)
@@ -230,13 +228,13 @@ def __init__(
230228

231229
self._cache_lock = Lock()
232230
# Cache for 10 minutes ...
233-
self._fetch_tickers_cache: TTLCache = TTLCache(maxsize=4, ttl=60 * 10)
231+
self._fetch_tickers_cache: FtTTLCache = FtTTLCache(maxsize=4, ttl=60 * 10)
234232
# Cache values for 300 to avoid frequent polling of the exchange for prices
235233
# Caching only applies to RPC methods, so prices for open trades are still
236234
# refreshed once every iteration.
237235
# Shouldn't be too high either, as it'll freeze UI updates in case of open orders.
238-
self._exit_rate_cache: TTLCache = TTLCache(maxsize=100, ttl=300)
239-
self._entry_rate_cache: TTLCache = TTLCache(maxsize=100, ttl=300)
236+
self._exit_rate_cache: FtTTLCache = FtTTLCache(maxsize=100, ttl=300)
237+
self._entry_rate_cache: FtTTLCache = FtTTLCache(maxsize=100, ttl=300)
240238

241239
# Holds candles
242240
self._klines: dict[PairWithTimeframe, DataFrame] = {}
@@ -2164,7 +2162,9 @@ def get_rate(
21642162
name = side.capitalize()
21652163
strat_name = "entry_pricing" if side == "entry" else "exit_pricing"
21662164

2167-
cache_rate: TTLCache = self._entry_rate_cache if side == "entry" else self._exit_rate_cache
2165+
cache_rate: FtTTLCache = (
2166+
self._entry_rate_cache if side == "entry" else self._exit_rate_cache
2167+
)
21682168
if not refresh:
21692169
with self._cache_lock:
21702170
rate = cache_rate.get(pair)

freqtrade/mixins/logging_mixin.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from collections.abc import Callable
22

3-
from cachetools import TTLCache, cached
3+
from cachetools import cached
4+
5+
from freqtrade.util import FtTTLCache
46

57

68
class LoggingMixin:
@@ -18,7 +20,7 @@ def __init__(self, logger, refresh_period: int = 3600):
1820
"""
1921
self.logger = logger
2022
self.refresh_period = refresh_period
21-
self._log_cache: TTLCache = TTLCache(maxsize=1024, ttl=self.refresh_period)
23+
self._log_cache: FtTTLCache = FtTTLCache(maxsize=1024, ttl=self.refresh_period)
2224

2325
def log_once(self, message: str, logmethod: Callable, force_show: bool = False) -> None:
2426
"""

freqtrade/plugins/pairlist/MarketCapPairList.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
import logging
88
import math
99

10-
from cachetools import TTLCache
11-
1210
from freqtrade.exceptions import OperationalException
1311
from freqtrade.exchange.exchange_types import Tickers
1412
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
13+
from freqtrade.util import FtTTLCache
1514
from freqtrade.util.coin_gecko import FtCoinGeckoApi
1615

1716

@@ -38,7 +37,7 @@ def __init__(self, *args, **kwargs) -> None:
3837
self._max_rank = self._pairlistconfig.get("max_rank", 30)
3938
self._refresh_period = self._pairlistconfig.get("refresh_period", 86400)
4039
self._categories = self._pairlistconfig.get("categories", [])
41-
self._marketcap_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period)
40+
self._marketcap_cache: FtTTLCache = FtTTLCache(maxsize=1, ttl=self._refresh_period)
4241

4342
_coingecko_config = self._config.get("coingecko", {})
4443

freqtrade/plugins/pairlist/PercentChangePairList.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@
1010
from datetime import timedelta
1111
from typing import TypedDict
1212

13-
from cachetools import TTLCache
1413
from pandas import DataFrame
1514

1615
from freqtrade.constants import ListPairsWithTimeframes, PairWithTimeframe
1716
from freqtrade.exceptions import OperationalException
1817
from freqtrade.exchange import timeframe_to_minutes, timeframe_to_prev_date
1918
from freqtrade.exchange.exchange_types import Ticker, Tickers
2019
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
21-
from freqtrade.util import dt_now, format_ms_time
20+
from freqtrade.util import FtTTLCache, dt_now, format_ms_time
2221

2322

2423
logger = logging.getLogger(__name__)
@@ -47,7 +46,7 @@ def __init__(self, *args, **kwargs) -> None:
4746
self._min_value = self._pairlistconfig.get("min_value", None)
4847
self._max_value = self._pairlistconfig.get("max_value", None)
4948
self._refresh_period = self._pairlistconfig.get("refresh_period", 1800)
50-
self._pair_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period)
49+
self._pair_cache: FtTTLCache = FtTTLCache(maxsize=1, ttl=self._refresh_period)
5150
self._lookback_days = self._pairlistconfig.get("lookback_days", 0)
5251
self._lookback_timeframe = self._pairlistconfig.get("lookback_timeframe", "1d")
5352
self._lookback_period = self._pairlistconfig.get("lookback_period", 0)

freqtrade/plugins/pairlist/RemotePairList.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010

1111
import rapidjson
1212
import requests
13-
from cachetools import TTLCache
1413

1514
from freqtrade import __version__
1615
from freqtrade.configuration.load_config import CONFIG_PARSE_MODE
1716
from freqtrade.exceptions import OperationalException
1817
from freqtrade.exchange.exchange_types import Tickers
1918
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
2019
from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist
20+
from freqtrade.util import FtTTLCache
2121

2222

2323
logger = logging.getLogger(__name__)
@@ -48,7 +48,7 @@ def __init__(self, *args, **kwargs) -> None:
4848
self._number_pairs = self._pairlistconfig["number_assets"]
4949
self._refresh_period: int = self._pairlistconfig.get("refresh_period", 1800)
5050
self._keep_pairlist_on_failure = self._pairlistconfig.get("keep_pairlist_on_failure", True)
51-
self._pair_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period)
51+
self._pair_cache: FtTTLCache = FtTTLCache(maxsize=1, ttl=self._refresh_period)
5252
self._pairlist_url = self._pairlistconfig.get("pairlist_url", "")
5353
self._read_timeout = self._pairlistconfig.get("read_timeout", 60)
5454
self._bearer_token = self._pairlistconfig.get("bearer_token", "")
@@ -159,7 +159,7 @@ def process_json(self, jsonparse) -> list[str]:
159159
)
160160

161161
self._refresh_period = remote_refresh_period
162-
self._pair_cache = TTLCache(maxsize=1, ttl=remote_refresh_period)
162+
self._pair_cache = FtTTLCache(maxsize=1, ttl=remote_refresh_period)
163163

164164
self._init_done = True
165165

freqtrade/plugins/pairlist/VolatilityFilter.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@
77
from datetime import timedelta
88

99
import numpy as np
10-
from cachetools import TTLCache
1110
from pandas import DataFrame
1211

1312
from freqtrade.constants import ListPairsWithTimeframes
1413
from freqtrade.exceptions import OperationalException
1514
from freqtrade.exchange.exchange_types import Tickers
1615
from freqtrade.misc import plural
1716
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
18-
from freqtrade.util import dt_floor_day, dt_now, dt_ts
17+
from freqtrade.util import FtTTLCache, dt_floor_day, dt_now, dt_ts
1918

2019

2120
logger = logging.getLogger(__name__)
@@ -38,7 +37,7 @@ def __init__(self, *args, **kwargs) -> None:
3837
self._def_candletype = self._config["candle_type_def"]
3938
self._sort_direction: str | None = self._pairlistconfig.get("sort_direction", None)
4039

41-
self._pair_cache: TTLCache = TTLCache(maxsize=1000, ttl=self._refresh_period)
40+
self._pair_cache: FtTTLCache = FtTTLCache(maxsize=1000, ttl=self._refresh_period)
4241

4342
candle_limit = self._exchange.ohlcv_candle_limit("1d", self._def_candletype)
4443
if self._days < 1:

freqtrade/plugins/pairlist/VolumePairList.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@
88
from datetime import timedelta
99
from typing import Any, Literal
1010

11-
from cachetools import TTLCache
12-
1311
from freqtrade.constants import ListPairsWithTimeframes
1412
from freqtrade.exceptions import OperationalException
1513
from freqtrade.exchange import timeframe_to_minutes, timeframe_to_prev_date
1614
from freqtrade.exchange.exchange_types import Tickers
1715
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
18-
from freqtrade.util import dt_now, format_ms_time
16+
from freqtrade.util import FtTTLCache, dt_now, format_ms_time
1917

2018

2119
logger = logging.getLogger(__name__)
@@ -43,7 +41,7 @@ def __init__(self, *args, **kwargs) -> None:
4341
self._min_value = self._pairlistconfig.get("min_value", 0)
4442
self._max_value = self._pairlistconfig.get("max_value", None)
4543
self._refresh_period = self._pairlistconfig.get("refresh_period", 1800)
46-
self._pair_cache: TTLCache = TTLCache(maxsize=1, ttl=self._refresh_period)
44+
self._pair_cache: FtTTLCache = FtTTLCache(maxsize=1, ttl=self._refresh_period)
4745
self._lookback_days = self._pairlistconfig.get("lookback_days", 0)
4846
self._lookback_timeframe = self._pairlistconfig.get("lookback_timeframe", "1d")
4947
self._lookback_period = self._pairlistconfig.get("lookback_period", 0)

freqtrade/plugins/pairlist/rangestabilityfilter.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
import logging
66
from datetime import timedelta
77

8-
from cachetools import TTLCache
98
from pandas import DataFrame
109

1110
from freqtrade.constants import ListPairsWithTimeframes
1211
from freqtrade.exceptions import OperationalException
1312
from freqtrade.exchange.exchange_types import Tickers
1413
from freqtrade.misc import plural
1514
from freqtrade.plugins.pairlist.IPairList import IPairList, PairlistParameter, SupportsBacktesting
16-
from freqtrade.util import dt_floor_day, dt_now, dt_ts
15+
from freqtrade.util import FtTTLCache, dt_floor_day, dt_now, dt_ts
1716

1817

1918
logger = logging.getLogger(__name__)
@@ -32,7 +31,7 @@ def __init__(self, *args, **kwargs) -> None:
3231
self._def_candletype = self._config["candle_type_def"]
3332
self._sort_direction: str | None = self._pairlistconfig.get("sort_direction", None)
3433

35-
self._pair_cache: TTLCache = TTLCache(maxsize=1000, ttl=self._refresh_period)
34+
self._pair_cache: FtTTLCache = FtTTLCache(maxsize=1000, ttl=self._refresh_period)
3635

3736
candle_limit = self._exchange.ohlcv_candle_limit("1d", self._def_candletype)
3837
if self._days < 1:

freqtrade/plugins/pairlistmanager.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import logging
66
from functools import partial
77

8-
from cachetools import LRUCache, TTLCache, cached
8+
from cachetools import LRUCache, cached
99

1010
from freqtrade.constants import Config, ListPairsWithTimeframes
1111
from freqtrade.data.dataprovider import DataProvider
@@ -17,6 +17,7 @@
1717
from freqtrade.plugins.pairlist.IPairList import IPairList, SupportsBacktesting
1818
from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist
1919
from freqtrade.resolvers import PairListResolver
20+
from freqtrade.util import FtTTLCache
2021

2122

2223
logger = logging.getLogger(__name__)
@@ -129,7 +130,7 @@ def short_desc(self) -> list[dict]:
129130
"""List of short_desc for each Pairlist Handler"""
130131
return [{p.name: p.short_desc()} for p in self._pairlist_handlers]
131132

132-
@cached(TTLCache(maxsize=1, ttl=1800))
133+
@cached(FtTTLCache(maxsize=1, ttl=1800))
133134
def _get_cached_tickers(self) -> Tickers:
134135
return self._exchange.get_tickers()
135136

0 commit comments

Comments
 (0)