From 74b8dca63e4bce94cf466c0579c58291964c2857 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 4 Oct 2024 06:36:00 +0200 Subject: [PATCH] chore: update to modern typing syntax --- freqtrade/constants.py | 16 ++++++++-------- freqtrade/main.py | 4 ++-- freqtrade/misc.py | 7 ++++--- freqtrade/wallets.py | 10 +++++----- freqtrade/worker.py | 4 ++-- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/freqtrade/constants.py b/freqtrade/constants.py index f1c44d204..9acb3bdc0 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -4,7 +4,7 @@ bot constants """ -from typing import Any, Dict, List, Literal, Optional, Tuple +from typing import Any, Literal, Optional from freqtrade.enums import CandleType, PriceType @@ -187,14 +187,14 @@ CANCEL_REASON = { } # List of pairs with their timeframes -PairWithTimeframe = Tuple[str, str, CandleType] -ListPairsWithTimeframes = List[PairWithTimeframe] +PairWithTimeframe = tuple[str, str, CandleType] +ListPairsWithTimeframes = list[PairWithTimeframe] # Type for trades list -TradeList = List[List] +TradeList = list[list] # ticks, pair, timeframe, CandleType -TickWithTimeframe = Tuple[str, str, CandleType, Optional[int], Optional[int]] -ListTicksWithTimeframes = List[TickWithTimeframe] +TickWithTimeframe = tuple[str, str, CandleType, Optional[int], Optional[int]] +ListTicksWithTimeframes = list[TickWithTimeframe] LongShort = Literal["long", "short"] EntryExit = Literal["entry", "exit"] @@ -203,9 +203,9 @@ MakerTaker = Literal["maker", "taker"] BidAsk = Literal["bid", "ask"] OBLiteral = Literal["asks", "bids"] -Config = Dict[str, Any] +Config = dict[str, Any] # Exchange part of the configuration. -ExchangeConfig = Dict[str, Any] +ExchangeConfig = dict[str, Any] IntOrInf = float diff --git a/freqtrade/main.py b/freqtrade/main.py index 4e40c36ad..e2791c7ac 100755 --- a/freqtrade/main.py +++ b/freqtrade/main.py @@ -6,7 +6,7 @@ Read the documentation to know what cli arguments you need. import logging import sys -from typing import Any, List, Optional +from typing import Any, Optional # check min. python version @@ -25,7 +25,7 @@ from freqtrade.util.gc_setup import gc_set_threshold logger = logging.getLogger("freqtrade") -def main(sysargv: Optional[List[str]] = None) -> None: +def main(sysargv: Optional[list[str]] = None) -> None: """ This function will initiate the bot and start the trading loop. :return: None diff --git a/freqtrade/misc.py b/freqtrade/misc.py index 7c56231c3..629bd10dd 100644 --- a/freqtrade/misc.py +++ b/freqtrade/misc.py @@ -4,9 +4,10 @@ Various tool function for Freqtrade and scripts import gzip import logging +from collections.abc import Iterator, Mapping from io import StringIO from pathlib import Path -from typing import Any, Dict, Iterator, List, Mapping, Optional, TextIO, Union +from typing import Any, Optional, TextIO, Union from urllib.parse import urlparse import pandas as pd @@ -128,7 +129,7 @@ def round_dict(d, n): return {k: (round(v, n) if isinstance(v, float) else v) for k, v in d.items()} -DictMap = Union[Dict[str, Any], Mapping[str, Any]] +DictMap = Union[dict[str, Any], Mapping[str, Any]] def safe_value_fallback(obj: DictMap, key1: str, key2: Optional[str] = None, default_value=None): @@ -164,7 +165,7 @@ def plural(num: float, singular: str, plural: Optional[str] = None) -> str: return singular if (num == 1 or num == -1) else plural or singular + "s" -def chunks(lst: List[Any], n: int) -> Iterator[List[Any]]: +def chunks(lst: list[Any], n: int) -> Iterator[list[Any]]: """ Split lst into chunks of the size n. :param lst: list to split into chunks diff --git a/freqtrade/wallets.py b/freqtrade/wallets.py index e67bdd79e..e688b307a 100644 --- a/freqtrade/wallets.py +++ b/freqtrade/wallets.py @@ -4,7 +4,7 @@ import logging from copy import deepcopy from datetime import datetime, timedelta -from typing import Dict, NamedTuple, Optional +from typing import NamedTuple, Optional from freqtrade.constants import UNLIMITED_STAKE_AMOUNT, Config, IntOrInf from freqtrade.enums import RunMode, TradingMode @@ -39,8 +39,8 @@ class Wallets: self._config = config self._is_backtest = is_backtest self._exchange = exchange - self._wallets: Dict[str, Wallet] = {} - self._positions: Dict[str, PositionWallet] = {} + self._wallets: dict[str, Wallet] = {} + self._positions: dict[str, PositionWallet] = {} self.start_cap = config["dry_run_wallet"] self._last_wallet_refresh: Optional[datetime] = None self.update() @@ -199,10 +199,10 @@ class Wallets: logger.info("Wallets synced.") self._last_wallet_refresh = dt_now() - def get_all_balances(self) -> Dict[str, Wallet]: + def get_all_balances(self) -> dict[str, Wallet]: return self._wallets - def get_all_positions(self) -> Dict[str, PositionWallet]: + def get_all_positions(self) -> dict[str, PositionWallet]: return self._positions def _check_exit_amount(self, trade: Trade) -> bool: diff --git a/freqtrade/worker.py b/freqtrade/worker.py index 4c8fee356..d618b3dec 100644 --- a/freqtrade/worker.py +++ b/freqtrade/worker.py @@ -6,7 +6,7 @@ import logging import time import traceback from os import getpid -from typing import Any, Callable, Dict, Optional +from typing import Any, Callable, Optional import sdnotify @@ -27,7 +27,7 @@ class Worker: Freqtradebot worker class """ - def __init__(self, args: Dict[str, Any], config: Optional[Config] = None) -> None: + def __init__(self, args: dict[str, Any], config: Optional[Config] = None) -> None: """ Init all variables and objects the bot needs to work """