Skip to content

Commit 124d58a

Browse files
author
Ken Odegard
committed
Added stop_time
Store the stop_time in order to track how long it took for the event to complete not how long the ProgressBarCounter has been around.
1 parent 2970d29 commit 124d58a

File tree

1 file changed

+9
-1
lines changed
  • prompt_toolkit/shortcuts/progress_bar

1 file changed

+9
-1
lines changed

prompt_toolkit/shortcuts/progress_bar/base.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ def __init__(self, progress_bar: ProgressBar,
306306
total: Optional[int] = None) -> None:
307307

308308
self.start_time = datetime.datetime.now()
309+
self.stop_time = None
309310
self.progress_bar = progress_bar
310311
self.data = data
311312
self.items_completed = 0
@@ -348,6 +349,10 @@ def done(self) -> bool:
348349
def done(self, value: bool) -> None:
349350
self._done = value
350351

352+
# if declared done then store the stop_time
353+
# otherwise clear the stop_time
354+
self.stop_time = datetime.datetime.now() if value else None
355+
351356
if value and self.remove_when_done:
352357
self.progress_bar.counters.remove(self)
353358

@@ -363,7 +368,10 @@ def time_elapsed(self) -> datetime.timedelta:
363368
"""
364369
return how much time has been elapsed since the start.
365370
"""
366-
return datetime.datetime.now() - self.start_time
371+
if self.stop_time is None:
372+
return datetime.datetime.now() - self.start_time
373+
else:
374+
return self.stop_time - self.start_time
367375

368376
@property
369377
def time_left(self) -> Optional[datetime.timedelta]:

0 commit comments

Comments
 (0)