From 361d45b5e6745b66b6239136816adda035be3849 Mon Sep 17 00:00:00 2001 From: aheadley Date: Wed, 28 Mar 2012 16:55:28 -0400 Subject: [PATCH] refactor eta widget --- overviewer_core/progressbar.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/overviewer_core/progressbar.py b/overviewer_core/progressbar.py index 920fb33..bd5a51b 100644 --- a/overviewer_core/progressbar.py +++ b/overviewer_core/progressbar.py @@ -103,21 +103,23 @@ class ProgressBarWidgetHFill(object): class ETA(ProgressBarWidget): "Widget for the Estimated Time of Arrival" - def __init__(self, prefix='ETA: ', format='%H:%M:%S'): - self.format = format + def __init__(self, prefix='ETA: ', format=None): self.prefix = prefix - - def format_time(self, seconds): - return time.strftime(self.format, time.gmtime(seconds)) + if format: + self.format = format + else: + self.format = lambda seconds: '%02ih %02im %02is' % \ + (seconds // 3600, (seconds % 3600) // 60, seconds % 60) def update(self, pbar): - if pbar.currval == 0: - return self.prefix + '-' * len(self.format) - elif pbar.finished: - return 'Time: %s' % self.format_time(pbar.seconds_elapsed) + if pbar.finished: + return 'Time: ' + self.format(pbar.seconds_elapsed) else: - eta = pbar.seconds_elapsed * pbar.maxval / pbar.currval - pbar.seconds_elapsed - return self.prefix + self.format_time(eta) + if pbar.currval: + eta = pbar.seconds_elapsed * pbar.maxval / pbar.currval - pbar.seconds_elapsed + return self.prefix + self.format(eta) + else: + return self.prefix + '-' * 6 class GenericSpeed(ProgressBarWidget): "Widget for showing the values/s"