diff --git a/freqtrade/commands/__init__.py b/freqtrade/commands/__init__.py index 98e7cb084..e0fa0fd51 100644 --- a/freqtrade/commands/__init__.py +++ b/freqtrade/commands/__init__.py @@ -8,7 +8,7 @@ Note: Be careful with file-scoped imports in these subfiles. """ from freqtrade.commands.analyze_commands import start_analysis_entries_exits from freqtrade.commands.arguments import Arguments -from freqtrade.commands.build_config_commands import start_new_config +from freqtrade.commands.build_config_commands import start_new_config, start_show_config from freqtrade.commands.data_commands import (start_convert_data, start_convert_trades, start_download_data, start_list_data) from freqtrade.commands.db_commands import start_convert_db diff --git a/freqtrade/commands/arguments.py b/freqtrade/commands/arguments.py index 191f07910..f93f596fd 100755 --- a/freqtrade/commands/arguments.py +++ b/freqtrade/commands/arguments.py @@ -62,6 +62,7 @@ ARGS_TEST_PAIRLIST = ["user_data_dir", "verbosity", "config", "quote_currencies" ARGS_CREATE_USERDIR = ["user_data_dir", "reset"] ARGS_BUILD_CONFIG = ["config"] +ARGS_SHOW_CONFIG = ["user_data_dir", "config"] ARGS_BUILD_STRATEGY = ["user_data_dir", "strategy", "template"] @@ -209,9 +210,9 @@ class Arguments: start_list_strategies, start_list_timeframes, start_lookahead_analysis, start_new_config, start_new_strategy, start_plot_dataframe, start_plot_profit, - start_recursive_analysis, start_show_trades, - start_strategy_update, start_test_pairlist, start_trading, - start_webserver) + start_recursive_analysis, start_show_config, + start_show_trades, start_strategy_update, + start_test_pairlist, start_trading, start_webserver) subparsers = self.parser.add_subparsers(dest='command', # Use custom message when no subhandler is added @@ -244,6 +245,14 @@ class Arguments: build_config_cmd.set_defaults(func=start_new_config) self._build_args(optionlist=ARGS_BUILD_CONFIG, parser=build_config_cmd) + # add show-config subcommand + show_config_cmd = subparsers.add_parser( + 'show-config', + help="Show resolved config", + ) + show_config_cmd.set_defaults(func=start_show_config) + self._build_args(optionlist=ARGS_SHOW_CONFIG, parser=show_config_cmd) + # add new-strategy subcommand build_strategy_cmd = subparsers.add_parser( 'new-strategy', diff --git a/freqtrade/commands/build_config_commands.py b/freqtrade/commands/build_config_commands.py index 5b3447d70..16b85918b 100644 --- a/freqtrade/commands/build_config_commands.py +++ b/freqtrade/commands/build_config_commands.py @@ -5,9 +5,11 @@ from typing import Any, Dict, List from questionary import Separator, prompt +from freqtrade.configuration.config_setup import setup_utils_configuration from freqtrade.configuration.detect_environment import running_in_docker from freqtrade.configuration.directory_operations import chown_user_directory from freqtrade.constants import UNLIMITED_STAKE_AMOUNT +from freqtrade.enums import RunMode from freqtrade.exceptions import OperationalException from freqtrade.exchange import MAP_EXCHANGE_CHILDCLASS, available_exchanges from freqtrade.util import render_template @@ -264,3 +266,13 @@ def start_new_config(args: Dict[str, Any]) -> None: "Please delete it or use a different configuration file name.") selections = ask_user_config() deploy_new_config(config_path, selections) + + +def start_show_config(args: Dict[str, Any]) -> None: + + config = setup_utils_configuration(args, RunMode.UTIL_EXCHANGE, set_dry=False) + + # TODO: Sanitize from sensitive info before printing + + from rich import print + print(config)