From 7454cc1facfe5303baabe50d64a4f6273d8323a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Sat, 6 Jan 2024 03:50:19 +0200 Subject: [PATCH] Refactor RichProgressBar to use __next__ --- plextraktsync/rich/RichProgressBar.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plextraktsync/rich/RichProgressBar.py b/plextraktsync/rich/RichProgressBar.py index 991eab38b68..861fa5780f1 100644 --- a/plextraktsync/rich/RichProgressBar.py +++ b/plextraktsync/rich/RichProgressBar.py @@ -7,16 +7,15 @@ def __init__(self, iterable, total, options=None, desc=""): self.options = options or {} self.desc = desc self.total = total + self.i = 0 def __iter__(self): - p = self.progress - task_id = p.add_task(self.desc, total=self.total) + return self - i = 0 - for it in self.iter: - yield it - i += 1 - p.update(task_id, completed=i) + def __next__(self): + res = self.iter.__next__() + self.update() + return res def __enter__(self): self.progress.__enter__() @@ -25,6 +24,14 @@ def __enter__(self): def __exit__(self, *exc): self.progress.__exit__(*exc) + def update(self): + self.i += 1 + self.progress.update(self.task_id, completed=self.i) + + @cached_property + def task_id(self): + return self.progress.add_task(self.desc, total=self.total) + @cached_property def progress(self): from tqdm.rich import FractionColumn, RateColumn