[yum-commits] urlgrabber/progress.py
zpavlas at osuosl.org
zpavlas at osuosl.org
Tue Aug 7 15:00:18 UTC 2012
urlgrabber/progress.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
New commits:
commit b3353b21191dd7dd46658990da995c3dce18546b
Author: ZdenÄk Pavlas <zpavlas at redhat.com>
Date: Tue Aug 7 14:26:18 2012 +0200
Improve multi-file progress meter
Updates arrive evenly to all active files, but we check their timestamps
against shared last_update_time. When we get past that check, the 'meter'
argument to MultiFileMeter._do_update_meter() is meaningless.
This patch cycles 'meter' through all active child meter objects.
This seems to give much better output (parallel downloading is visible).
diff --git a/urlgrabber/progress.py b/urlgrabber/progress.py
index 9888bef..3466e1a 100644
--- a/urlgrabber/progress.py
+++ b/urlgrabber/progress.py
@@ -493,6 +493,7 @@ class TextMultiFileMeter(MultiFileMeter):
def __init__(self, fo=sys.stderr, threaded=True):
self.fo = fo
MultiFileMeter.__init__(self, threaded)
+ self.index = 0
# files: ###/### ###% data: ######/###### ###% time: ##:##:##/##:##:##
# New output, like TextMeter output...
@@ -527,9 +528,13 @@ class TextMultiFileMeter(MultiFileMeter):
frac = self.re.fraction_read() or 0
ave_dl = format_number(self.re.average_rate())
+
+ # cycle through active meters
+ self.index = (self.index + 1) % len(self.meters)
+ meter = self.meters[self.index]
text = meter.text or meter.basename
if tf > 1:
- text = '(%u/%u): %s' % (df+1, tf, text)
+ text = '(%u/%u): %s' % (df+1+self.index, tf, text)
# Include text + ui_rate in minimal
tl = TerminalLine(8, 8+1+8)
More information about the Yum-commits
mailing list