From befefd449c5dbb93e39a6dacbbe78cc6f876202f Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 7 Jul 2024 16:13:55 +0200 Subject: [PATCH] Add a generic Progressbar which allows printing additional objects --- freqtrade/util/__init__.py | 2 ++ freqtrade/util/rich_progress.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 freqtrade/util/rich_progress.py diff --git a/freqtrade/util/__init__.py b/freqtrade/util/__init__.py index 5052e17dd..76902b176 100644 --- a/freqtrade/util/__init__.py +++ b/freqtrade/util/__init__.py @@ -15,6 +15,7 @@ from freqtrade.util.formatters import decimals_per_coin, fmt_coin, round_value from freqtrade.util.ft_precise import FtPrecise from freqtrade.util.measure_time import MeasureTime from freqtrade.util.periodic_cache import PeriodicCache +from freqtrade.util.rich_progress import CustomProgress from freqtrade.util.rich_tables import print_df_rich_table, print_rich_table from freqtrade.util.template_renderer import render_template, render_template_with_fallback # noqa @@ -39,4 +40,5 @@ __all__ = [ "MeasureTime", "print_rich_table", "print_df_rich_table", + "CustomProgress", ] diff --git a/freqtrade/util/rich_progress.py b/freqtrade/util/rich_progress.py new file mode 100644 index 000000000..6cf138bf5 --- /dev/null +++ b/freqtrade/util/rich_progress.py @@ -0,0 +1,12 @@ +from rich.console import ConsoleRenderable, Group, RichCast +from rich.progress import Progress + + +class CustomProgress(Progress): + def __init__(self, *args, cust_objs, **kwargs) -> None: + self._cust_objs = cust_objs + super().__init__(*args, **kwargs) + + def get_renderable(self) -> ConsoleRenderable | RichCast | str: + renderable = Group(*self._cust_objs, *self.get_renderables()) + return renderable