| 74 | super().__init__(daemon=True) |
| 75 | |
| 76 | def run(self) -> None: |
| 77 | task_id = self.task_id |
| 78 | advance = self.progress.advance |
| 79 | update_period = self.update_period |
| 80 | last_completed = 0 |
| 81 | wait = self.done.wait |
| 82 | while not wait(update_period) and self.progress.live.is_started: |
| 83 | completed = self.completed |
| 84 | if last_completed != completed: |
| 85 | advance(task_id, completed - last_completed) |
| 86 | last_completed = completed |
| 87 | |
| 88 | self.progress.update(self.task_id, completed=self.completed, refresh=True) |
| 89 | |
| 90 | def __enter__(self) -> "_TrackThread": |
| 91 | self.start() |