Use Rich table for pair list output

This commit is contained in:
Matthias
2024-07-06 13:09:37 +02:00
parent b6b589b1f0
commit bafb6507c4
2 changed files with 10 additions and 5 deletions

View File

@@ -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)

View File

@@ -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 = [