From bafb6507c459c9a328860d3754c6b3bb783daec2 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 6 Jul 2024 13:09:37 +0200 Subject: [PATCH] Use Rich table for pair list output --- freqtrade/commands/list_commands.py | 11 ++++++++--- tests/commands/test_commands.py | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/freqtrade/commands/list_commands.py b/freqtrade/commands/list_commands.py index e3c598786..d6fdd3111 100644 --- a/freqtrade/commands/list_commands.py +++ b/freqtrade/commands/list_commands.py @@ -280,9 +280,14 @@ def start_list_markets(args: Dict[str, Any], pairs_only: bool = False) -> None: writer.writeheader() writer.writerows(tabular_data) else: - # print data as a table, with the human-readable summary - print(f"{summary_str}:") - print(tabulate(tabular_data, headers="keys", tablefmt="psql", stralign="right")) + table = Table(title=summary_str) + for header in headers: + table.add_column(header, justify="right") + for row in tabular_data: + table.add_row(*[str(row[header]) for header in headers]) + + console = Console() + console.print(table) elif not ( args.get("print_one_column", False) or args.get("list_pairs_print_json", False) diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index 818533630..7e4d2e2cc 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -293,7 +293,7 @@ def test_list_markets(mocker, markets_static, capsys): pargs["config"] = None start_list_markets(pargs, False) captured = capsys.readouterr() - assert re.match("\nExchange Binance has 12 active markets:\n", captured.out) + assert re.search(r".*Exchange Binance has 12 active markets.*", captured.out) patch_exchange(mocker, api_mock=api_mock, exchange="binance", mock_markets=markets_static) # Test with --all: all markets @@ -491,7 +491,7 @@ def test_list_markets(mocker, markets_static, capsys): ] start_list_markets(get_args(args), False) captured = capsys.readouterr() - assert "Exchange Binance has 12 active markets:\n" in captured.out + assert "Exchange Binance has 12 active markets" in captured.out # Test tabular output, no markets found args = [