From ee74bfbe304a39e67426118ed3cb94c77d8813e2 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 10 Feb 2021 11:34:59 +0000 Subject: [PATCH 1/4] fix `reset()` & `unpause()` when disabled - fixes #1125 --- tqdm/std.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tqdm/std.py b/tqdm/std.py index 700263482..17bc5c6ff 100644 --- a/tqdm/std.py +++ b/tqdm/std.py @@ -1330,6 +1330,8 @@ def refresh(self, nolock=False, lock_args=None): def unpause(self): """Restart tqdm timer from last print time.""" + if self.disable: + return cur_t = self._time() self.start_t += cur_t - self.last_print_t self.last_print_t = cur_t @@ -1344,13 +1346,16 @@ def reset(self, total=None): ---------- total : int or float, optional. Total to use for the new bar. """ - self.last_print_n = self.n = 0 + self.n = 0 + if total is not None: + self.total = total + if self.disable: + return + self.last_print_n = 0 self.last_print_t = self.start_t = self._time() self._ema_dn = EMA(self.smoothing) self._ema_dt = EMA(self.smoothing) self._ema_miniters = EMA(self.smoothing) - if total is not None: - self.total = total self.refresh() def set_description(self, desc=None, refresh=True): From 5846c4ae9a29efb14260376816687d70490e5027 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 10 Feb 2021 11:54:39 +0000 Subject: [PATCH 2/4] fix notebook `reset()` when disabled --- tqdm/notebook.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tqdm/notebook.py b/tqdm/notebook.py index 8d734b487..a1f6f8e1c 100644 --- a/tqdm/notebook.py +++ b/tqdm/notebook.py @@ -297,6 +297,8 @@ def reset(self, total=None): ---------- total : int or float, optional. Total to use for the new bar. """ + if self.disable: + return super(tqdm_notebook, self).reset(total=total) _, pbar, _ = self.container.children pbar.bar_style = '' if total is not None: From bd176fec186563429a4351797023a248d72d88dd Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 10 Feb 2021 13:59:58 +0000 Subject: [PATCH 3/4] fix disabled `contrib.(telegram|discord)` --- tqdm/contrib/discord.py | 17 +++++++++-------- tqdm/contrib/telegram.py | 11 +++++++---- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/tqdm/contrib/discord.py b/tqdm/contrib/discord.py index 011fece71..406ecf0a2 100644 --- a/tqdm/contrib/discord.py +++ b/tqdm/contrib/discord.py @@ -85,13 +85,13 @@ def __init__(self, *args, **kwargs): See `tqdm.auto.tqdm.__init__` for other parameters. """ - kwargs = kwargs.copy() - logging.getLogger("HTTPClient").setLevel(logging.WARNING) - self.dio = DiscordIO( - kwargs.pop('token', getenv("TQDM_DISCORD_TOKEN")), - kwargs.pop('channel_id', getenv("TQDM_DISCORD_CHANNEL_ID"))) - - kwargs['mininterval'] = max(1.5, kwargs.get('mininterval', 1.5)) + if not kwargs.get('disable'): + kwargs = kwargs.copy() + logging.getLogger("HTTPClient").setLevel(logging.WARNING) + self.dio = DiscordIO( + kwargs.pop('token', getenv("TQDM_DISCORD_TOKEN")), + kwargs.pop('channel_id', getenv("TQDM_DISCORD_CHANNEL_ID"))) + kwargs['mininterval'] = max(1.5, kwargs.get('mininterval', 1.5)) super(tqdm_discord, self).__init__(*args, **kwargs) def display(self, **kwargs): @@ -106,7 +106,8 @@ def display(self, **kwargs): def clear(self, *args, **kwargs): super(tqdm_discord, self).clear(*args, **kwargs) - self.dio.write("") + if not self.disable: + self.dio.write("") def tdrange(*args, **kwargs): diff --git a/tqdm/contrib/telegram.py b/tqdm/contrib/telegram.py index d91889a2c..ab857a709 100644 --- a/tqdm/contrib/telegram.py +++ b/tqdm/contrib/telegram.py @@ -91,9 +91,11 @@ def __init__(self, *args, **kwargs): See `tqdm.auto.tqdm.__init__` for other parameters. """ - kwargs = kwargs.copy() - self.tgio = TelegramIO(kwargs.pop('token', getenv('TQDM_TELEGRAM_TOKEN')), - kwargs.pop('chat_id', getenv('TQDM_TELEGRAM_CHAT_ID'))) + if not kwargs.get('disable'): + kwargs = kwargs.copy() + self.tgio = TelegramIO( + kwargs.pop('token', getenv('TQDM_TELEGRAM_TOKEN')), + kwargs.pop('chat_id', getenv('TQDM_TELEGRAM_CHAT_ID'))) super(tqdm_telegram, self).__init__(*args, **kwargs) def display(self, **kwargs): @@ -108,7 +110,8 @@ def display(self, **kwargs): def clear(self, *args, **kwargs): super(tqdm_telegram, self).clear(*args, **kwargs) - self.tgio.write("") + if not self.disable: + self.tgio.write("") def ttgrange(*args, **kwargs): From bf2a5e701ddd4c64b4a2a057bdac07eb1787e5eb Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 10 Feb 2021 14:00:31 +0000 Subject: [PATCH 4/4] tests: reset/unpause when disabled --- tests/tests_tqdm.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/tests_tqdm.py b/tests/tests_tqdm.py index dc23b2b8c..dd33cc502 100644 --- a/tests/tests_tqdm.py +++ b/tests/tests_tqdm.py @@ -1172,6 +1172,18 @@ def test_unpause(): assert r_before == r_after +def test_disabled_unpause(capsys): + """Test disabled unpause""" + with tqdm(total=10, disable=True) as t: + t.update() + t.unpause() + t.update() + print(t) + out, err = capsys.readouterr() + assert not err + assert out == ' 0%| | 0/10 [00:00