URLgrabber has traditionally delayed starting of meters to first update, and .update() && .end() need started meters. Instead of having to check this every time, start meters immediately.
This simplifies the update path. Removed one more IF because downloader sends update messages only if progress_obj was set. --- urlgrabber/grabber.py | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py index 073d41d..4af663f 100644 --- a/urlgrabber/grabber.py +++ b/urlgrabber/grabber.py @@ -2047,12 +2047,7 @@ class _ExternalDownloader: line = line.split(' ', 5) _id, size = map(int, line[:2]) if len(line) == 2: - opts = self.running[_id] - m = opts.progress_obj - if m: - if not m.last_update_time: - m.start(text = opts.text) - m.update(size) + self.running[_id].progress_obj.update(size) continue # job done opts = self.running.pop(_id) @@ -2142,7 +2137,11 @@ def parallel_wait(meter = 'text'): key, limit = opts.async host_con[key] = host_con.get(key, 0) + 1 opts.tries = tries - opts.progress_obj = meter and meter.newMeter() + if meter: + opts.progress_obj = meter.newMeter() + opts.progress_obj.start(text=opts.text, basename=os.path.basename(opts.filename)) + else: + opts.progress_obj = None if DEBUG: DEBUG.info('attempt %i/%s: %s', opts.tries, opts.retry, opts.url) dl.start(opts) @@ -2152,7 +2151,6 @@ def parallel_wait(meter = 'text'): host_con[key] -= 1 if meter: m = opts.progress_obj - m.basename = os.path.basename(opts.filename) if ug_err: m.failure(ug_err.args[1]) else: -- 1.7.4.4 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel