diff --git a/freqtrade/commands/analyze_commands.py b/freqtrade/commands/analyze_commands.py index 7d605a228..0d0e3b233 100644 --- a/freqtrade/commands/analyze_commands.py +++ b/freqtrade/commands/analyze_commands.py @@ -1,6 +1,6 @@ import logging from pathlib import Path -from typing import Any, Dict +from typing import Any from freqtrade.configuration import setup_utils_configuration from freqtrade.enums import RunMode @@ -10,7 +10,7 @@ from freqtrade.exceptions import ConfigurationError, OperationalException logger = logging.getLogger(__name__) -def setup_analyze_configuration(args: Dict[str, Any], method: RunMode) -> Dict[str, Any]: +def setup_analyze_configuration(args: dict[str, Any], method: RunMode) -> dict[str, Any]: """ Prepare the configuration for the entry/exit reason analysis module :param args: Cli args from Arguments() @@ -47,7 +47,7 @@ def setup_analyze_configuration(args: Dict[str, Any], method: RunMode) -> Dict[s return config -def start_analysis_entries_exits(args: Dict[str, Any]) -> None: +def start_analysis_entries_exits(args: dict[str, Any]) -> None: """ Start analysis script :param args: Cli args from Arguments() diff --git a/freqtrade/commands/arguments.py b/freqtrade/commands/arguments.py index 0bc3bc7f7..a7b65f079 100755 --- a/freqtrade/commands/arguments.py +++ b/freqtrade/commands/arguments.py @@ -5,7 +5,7 @@ This module contains the argument manager class from argparse import ArgumentParser, Namespace, _ArgumentGroup from functools import partial from pathlib import Path -from typing import Any, Dict, List, Optional, Union +from typing import Any, Optional, Union from freqtrade.commands.cli_options import AVAILABLE_CLI_OPTIONS from freqtrade.constants import DEFAULT_CONFIG @@ -23,7 +23,7 @@ ARGS_STRATEGY = [ ARGS_TRADE = ["db_url", "sd_notify", "dry_run", "dry_run_wallet", "fee"] -ARGS_WEBSERVER: List[str] = [] +ARGS_WEBSERVER: list[str] = [] ARGS_COMMON_OPTIMIZE = [ "timeframe", @@ -277,11 +277,11 @@ class Arguments: Arguments Class. Manage the arguments received by the cli """ - def __init__(self, args: Optional[List[str]]) -> None: + def __init__(self, args: Optional[list[str]]) -> None: self.args = args self._parsed_arg: Optional[Namespace] = None - def get_parsed_arg(self) -> Dict[str, Any]: + def get_parsed_arg(self) -> dict[str, Any]: """ Return the list of arguments :return: List[str] List of arguments @@ -322,7 +322,7 @@ class Arguments: return parsed_arg def _build_args( - self, optionlist: List[str], parser: Union[ArgumentParser, _ArgumentGroup] + self, optionlist: list[str], parser: Union[ArgumentParser, _ArgumentGroup] ) -> None: for val in optionlist: opt = AVAILABLE_CLI_OPTIONS[val] diff --git a/freqtrade/commands/build_config_commands.py b/freqtrade/commands/build_config_commands.py index cb64e4da9..6d0ab1722 100644 --- a/freqtrade/commands/build_config_commands.py +++ b/freqtrade/commands/build_config_commands.py @@ -1,7 +1,7 @@ import logging import secrets from pathlib import Path -from typing import Any, Dict, List +from typing import Any from questionary import Separator, prompt @@ -48,13 +48,13 @@ def ask_user_overwrite(config_path: Path) -> bool: return answers["overwrite"] -def ask_user_config() -> Dict[str, Any]: +def ask_user_config() -> dict[str, Any]: """ Ask user a few questions to build the configuration. Interactive questions built using https://github.com/tmbo/questionary :returns: Dict with keys to put into template """ - questions: List[Dict[str, Any]] = [ + questions: list[dict[str, Any]] = [ { "type": "confirm", "name": "dry_run", @@ -219,7 +219,7 @@ def ask_user_config() -> Dict[str, Any]: return answers -def deploy_new_config(config_path: Path, selections: Dict[str, Any]) -> None: +def deploy_new_config(config_path: Path, selections: dict[str, Any]) -> None: """ Applies selections to the template and writes the result to config_path :param config_path: Path object for new config file. Should not exist yet @@ -250,7 +250,7 @@ def deploy_new_config(config_path: Path, selections: Dict[str, Any]) -> None: config_path.write_text(config_text) -def start_new_config(args: Dict[str, Any]) -> None: +def start_new_config(args: dict[str, Any]) -> None: """ Create a new strategy from a template Asking the user questions to fill out the template accordingly. @@ -271,7 +271,7 @@ def start_new_config(args: Dict[str, Any]) -> None: deploy_new_config(config_path, selections) -def start_show_config(args: Dict[str, Any]) -> None: +def start_show_config(args: dict[str, Any]) -> None: config = setup_utils_configuration(args, RunMode.UTIL_EXCHANGE, set_dry=False) print("Your combined configuration is:") diff --git a/freqtrade/commands/data_commands.py b/freqtrade/commands/data_commands.py index a114444b3..02f01b952 100644 --- a/freqtrade/commands/data_commands.py +++ b/freqtrade/commands/data_commands.py @@ -1,7 +1,7 @@ import logging import sys from collections import defaultdict -from typing import Any, Dict +from typing import Any from freqtrade.configuration import TimeRange, setup_utils_configuration from freqtrade.constants import DATETIME_PRINT_FORMAT, DL_DATA_TIMEFRAMES, Config @@ -38,7 +38,7 @@ def _check_data_config_download_sanity(config: Config) -> None: ) -def start_download_data(args: Dict[str, Any]) -> None: +def start_download_data(args: dict[str, Any]) -> None: """ Download data (former download_backtest_data.py script) """ @@ -53,7 +53,7 @@ def start_download_data(args: Dict[str, Any]) -> None: sys.exit("SIGINT received, aborting ...") -def start_convert_trades(args: Dict[str, Any]) -> None: +def start_convert_trades(args: dict[str, Any]) -> None: config = setup_utils_configuration(args, RunMode.UTIL_EXCHANGE) timerange = TimeRange() @@ -92,7 +92,7 @@ def start_convert_trades(args: Dict[str, Any]) -> None: ) -def start_convert_data(args: Dict[str, Any], ohlcv: bool = True) -> None: +def start_convert_data(args: dict[str, Any], ohlcv: bool = True) -> None: """ Convert data from one format to another """ @@ -114,7 +114,7 @@ def start_convert_data(args: Dict[str, Any], ohlcv: bool = True) -> None: ) -def start_list_data(args: Dict[str, Any]) -> None: +def start_list_data(args: dict[str, Any]) -> None: """ List available OHLCV data """ @@ -177,7 +177,7 @@ def start_list_data(args: Dict[str, Any]) -> None: ) -def start_list_trades_data(args: Dict[str, Any]) -> None: +def start_list_trades_data(args: dict[str, Any]) -> None: """ List available Trades data """ diff --git a/freqtrade/commands/db_commands.py b/freqtrade/commands/db_commands.py index 98af38ca4..23d8c7860 100644 --- a/freqtrade/commands/db_commands.py +++ b/freqtrade/commands/db_commands.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Dict +from typing import Any from sqlalchemy import func, select @@ -10,7 +10,7 @@ from freqtrade.enums import RunMode logger = logging.getLogger(__name__) -def start_convert_db(args: Dict[str, Any]) -> None: +def start_convert_db(args: dict[str, Any]) -> None: from sqlalchemy.orm import make_transient from freqtrade.persistence import Order, Trade, init_db diff --git a/freqtrade/commands/deploy_commands.py b/freqtrade/commands/deploy_commands.py index 3a784bda9..dbf7f67bd 100644 --- a/freqtrade/commands/deploy_commands.py +++ b/freqtrade/commands/deploy_commands.py @@ -1,7 +1,7 @@ import logging import sys from pathlib import Path -from typing import Any, Dict, Optional, Tuple +from typing import Any, Optional import requests @@ -20,7 +20,7 @@ logger = logging.getLogger(__name__) req_timeout = 30 -def start_create_userdir(args: Dict[str, Any]) -> None: +def start_create_userdir(args: dict[str, Any]) -> None: """ Create "user_data" directory to contain user data strategies, hyperopt, ...) :param args: Cli args from Arguments() @@ -81,7 +81,7 @@ def deploy_new_strategy(strategy_name: str, strategy_path: Path, subtemplate: st strategy_path.write_text(strategy_text) -def start_new_strategy(args: Dict[str, Any]) -> None: +def start_new_strategy(args: dict[str, Any]) -> None: config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE) if "strategy" in args and args["strategy"]: @@ -139,7 +139,7 @@ def download_and_install_ui(dest_folder: Path, dl_url: str, version: str): f.write(version) -def get_ui_download_url(version: Optional[str] = None) -> Tuple[str, str]: +def get_ui_download_url(version: Optional[str] = None) -> tuple[str, str]: base_url = "https://api.github.com/repos/freqtrade/frequi/" # Get base UI Repo path @@ -171,7 +171,7 @@ def get_ui_download_url(version: Optional[str] = None) -> Tuple[str, str]: return dl_url, latest_version -def start_install_ui(args: Dict[str, Any]) -> None: +def start_install_ui(args: dict[str, Any]) -> None: dest_folder = Path(__file__).parents[1] / "rpc/api_server/ui/installed/" # First make sure the assets are removed. dl_url, latest_version = get_ui_download_url(args.get("ui_version")) diff --git a/freqtrade/commands/hyperopt_commands.py b/freqtrade/commands/hyperopt_commands.py index d89d25796..178e20dc6 100644 --- a/freqtrade/commands/hyperopt_commands.py +++ b/freqtrade/commands/hyperopt_commands.py @@ -1,6 +1,6 @@ import logging from operator import itemgetter -from typing import Any, Dict +from typing import Any from freqtrade.configuration import setup_utils_configuration from freqtrade.data.btanalysis import get_latest_hyperopt_file @@ -12,7 +12,7 @@ from freqtrade.optimize.optimize_reports import show_backtest_result logger = logging.getLogger(__name__) -def start_hyperopt_list(args: Dict[str, Any]) -> None: +def start_hyperopt_list(args: dict[str, Any]) -> None: """ List hyperopt epochs previously evaluated """ @@ -57,7 +57,7 @@ def start_hyperopt_list(args: Dict[str, Any]) -> None: HyperoptTools.export_csv_file(config, epochs, export_csv) -def start_hyperopt_show(args: Dict[str, Any]) -> None: +def start_hyperopt_show(args: dict[str, Any]) -> None: """ Show details of a hyperopt epoch previously evaluated """ diff --git a/freqtrade/commands/list_commands.py b/freqtrade/commands/list_commands.py index af6e4571f..3b326b409 100644 --- a/freqtrade/commands/list_commands.py +++ b/freqtrade/commands/list_commands.py @@ -1,7 +1,7 @@ import csv import logging import sys -from typing import Any, Dict, List, Union +from typing import Any, Union import rapidjson from rich.console import Console @@ -21,13 +21,13 @@ from freqtrade.util import print_rich_table logger = logging.getLogger(__name__) -def start_list_exchanges(args: Dict[str, Any]) -> None: +def start_list_exchanges(args: dict[str, Any]) -> None: """ Print available exchanges :param args: Cli args from Arguments() :return: None """ - available_exchanges: List[ValidExchangesType] = list_available_exchanges( + available_exchanges: list[ValidExchangesType] = list_available_exchanges( args["list_exchanges_all"] ) @@ -85,9 +85,9 @@ def start_list_exchanges(args: Dict[str, Any]) -> None: console.print(table) -def _print_objs_tabular(objs: List, print_colorized: bool) -> None: +def _print_objs_tabular(objs: list, print_colorized: bool) -> None: names = [s["name"] for s in objs] - objs_to_print: List[Dict[str, Union[Text, str]]] = [ + objs_to_print: list[dict[str, Union[Text, str]]] = [ { "name": Text(s["name"] if s["name"] else "--"), "location": s["location_rel"], @@ -125,7 +125,7 @@ def _print_objs_tabular(objs: List, print_colorized: bool) -> None: console.print(table) -def start_list_strategies(args: Dict[str, Any]) -> None: +def start_list_strategies(args: dict[str, Any]) -> None: """ Print files with Strategy custom classes available in the directory """ @@ -148,7 +148,7 @@ def start_list_strategies(args: Dict[str, Any]) -> None: _print_objs_tabular(strategy_objs, config.get("print_colorized", False)) -def start_list_freqAI_models(args: Dict[str, Any]) -> None: +def start_list_freqAI_models(args: dict[str, Any]) -> None: """ Print files with FreqAI models custom classes available in the directory """ @@ -164,7 +164,7 @@ def start_list_freqAI_models(args: Dict[str, Any]) -> None: _print_objs_tabular(model_objs, config.get("print_colorized", False)) -def start_list_timeframes(args: Dict[str, Any]) -> None: +def start_list_timeframes(args: dict[str, Any]) -> None: """ Print timeframes available on Exchange """ @@ -184,7 +184,7 @@ def start_list_timeframes(args: Dict[str, Any]) -> None: ) -def start_list_markets(args: Dict[str, Any], pairs_only: bool = False) -> None: +def start_list_markets(args: dict[str, Any], pairs_only: bool = False) -> None: """ Print pairs/markets on the exchange :param args: Cli args from Arguments() @@ -296,7 +296,7 @@ def start_list_markets(args: Dict[str, Any], pairs_only: bool = False) -> None: print(f"{summary_str}.") -def start_show_trades(args: Dict[str, Any]) -> None: +def start_show_trades(args: dict[str, Any]) -> None: """ Show trades """ diff --git a/freqtrade/commands/optimize_commands.py b/freqtrade/commands/optimize_commands.py index aa055469a..753629a65 100644 --- a/freqtrade/commands/optimize_commands.py +++ b/freqtrade/commands/optimize_commands.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Dict +from typing import Any from freqtrade import constants from freqtrade.configuration import setup_utils_configuration @@ -11,7 +11,7 @@ from freqtrade.util import fmt_coin logger = logging.getLogger(__name__) -def setup_optimize_configuration(args: Dict[str, Any], method: RunMode) -> Dict[str, Any]: +def setup_optimize_configuration(args: dict[str, Any], method: RunMode) -> dict[str, Any]: """ Prepare the configuration for the Hyperopt module :param args: Cli args from Arguments() @@ -41,7 +41,7 @@ def setup_optimize_configuration(args: Dict[str, Any], method: RunMode) -> Dict[ return config -def start_backtesting(args: Dict[str, Any]) -> None: +def start_backtesting(args: dict[str, Any]) -> None: """ Start Backtesting script :param args: Cli args from Arguments() @@ -60,7 +60,7 @@ def start_backtesting(args: Dict[str, Any]) -> None: backtesting.start() -def start_backtesting_show(args: Dict[str, Any]) -> None: +def start_backtesting_show(args: dict[str, Any]) -> None: """ Show previous backtest result """ @@ -76,7 +76,7 @@ def start_backtesting_show(args: Dict[str, Any]) -> None: show_sorted_pairlist(config, results) -def start_hyperopt(args: Dict[str, Any]) -> None: +def start_hyperopt(args: dict[str, Any]) -> None: """ Start hyperopt script :param args: Cli args from Arguments() @@ -121,7 +121,7 @@ def start_hyperopt(args: Dict[str, Any]) -> None: # Same in Edge and Backtesting start() functions. -def start_edge(args: Dict[str, Any]) -> None: +def start_edge(args: dict[str, Any]) -> None: """ Start Edge script :param args: Cli args from Arguments() @@ -138,7 +138,7 @@ def start_edge(args: Dict[str, Any]) -> None: edge_cli.start() -def start_lookahead_analysis(args: Dict[str, Any]) -> None: +def start_lookahead_analysis(args: dict[str, Any]) -> None: """ Start the backtest bias tester script :param args: Cli args from Arguments() @@ -150,7 +150,7 @@ def start_lookahead_analysis(args: Dict[str, Any]) -> None: LookaheadAnalysisSubFunctions.start(config) -def start_recursive_analysis(args: Dict[str, Any]) -> None: +def start_recursive_analysis(args: dict[str, Any]) -> None: """ Start the backtest recursive tester script :param args: Cli args from Arguments() diff --git a/freqtrade/commands/pairlist_commands.py b/freqtrade/commands/pairlist_commands.py index 8b2963563..3c2fe8d12 100644 --- a/freqtrade/commands/pairlist_commands.py +++ b/freqtrade/commands/pairlist_commands.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Dict +from typing import Any import rapidjson @@ -11,7 +11,7 @@ from freqtrade.resolvers import ExchangeResolver logger = logging.getLogger(__name__) -def start_test_pairlist(args: Dict[str, Any]) -> None: +def start_test_pairlist(args: dict[str, Any]) -> None: """ Test Pairlist configuration """ diff --git a/freqtrade/commands/plot_commands.py b/freqtrade/commands/plot_commands.py index 4b939cc80..eabfc2cc1 100644 --- a/freqtrade/commands/plot_commands.py +++ b/freqtrade/commands/plot_commands.py @@ -1,11 +1,11 @@ -from typing import Any, Dict +from typing import Any from freqtrade.configuration import setup_utils_configuration from freqtrade.enums import RunMode from freqtrade.exceptions import ConfigurationError -def validate_plot_args(args: Dict[str, Any]) -> None: +def validate_plot_args(args: dict[str, Any]) -> None: if not args.get("datadir") and not args.get("config"): raise ConfigurationError( "You need to specify either `--datadir` or `--config` " @@ -13,7 +13,7 @@ def validate_plot_args(args: Dict[str, Any]) -> None: ) -def start_plot_dataframe(args: Dict[str, Any]) -> None: +def start_plot_dataframe(args: dict[str, Any]) -> None: """ Entrypoint for dataframe plotting """ @@ -26,7 +26,7 @@ def start_plot_dataframe(args: Dict[str, Any]) -> None: load_and_plot_trades(config) -def start_plot_profit(args: Dict[str, Any]) -> None: +def start_plot_profit(args: dict[str, Any]) -> None: """ Entrypoint for plot_profit """ diff --git a/freqtrade/commands/strategy_utils_commands.py b/freqtrade/commands/strategy_utils_commands.py index 7ac0e77e8..49f7ffbf1 100644 --- a/freqtrade/commands/strategy_utils_commands.py +++ b/freqtrade/commands/strategy_utils_commands.py @@ -1,7 +1,7 @@ import logging import time from pathlib import Path -from typing import Any, Dict +from typing import Any from freqtrade.configuration import setup_utils_configuration from freqtrade.enums import RunMode @@ -12,7 +12,7 @@ from freqtrade.strategy.strategyupdater import StrategyUpdater logger = logging.getLogger(__name__) -def start_strategy_update(args: Dict[str, Any]) -> None: +def start_strategy_update(args: dict[str, Any]) -> None: """ Start the strategy updating script :param args: Cli args from Arguments() diff --git a/freqtrade/commands/trade_commands.py b/freqtrade/commands/trade_commands.py index c7f7e524b..59e38c98b 100644 --- a/freqtrade/commands/trade_commands.py +++ b/freqtrade/commands/trade_commands.py @@ -1,12 +1,12 @@ import logging import signal -from typing import Any, Dict +from typing import Any logger = logging.getLogger(__name__) -def start_trading(args: Dict[str, Any]) -> int: +def start_trading(args: dict[str, Any]) -> int: """ Main entry point for trading mode """