[python-urlgrabber] Update to HEAD

Zdeněk Pavlas zpavlas at fedoraproject.org
Wed Aug 8 15:40:15 UTC 2012


commit 83cfdd9ddfb5cf8ca446d9b22027f583a630287b
Author: Zdeněk Pavlas <zpavlas at redhat.com>
Date:   Wed Aug 8 17:39:40 2012 +0200

    Update to HEAD

 python-urlgrabber.spec |    6 +++++-
 urlgrabber-HEAD.patch  |   32 +++++++++++++++++++++-----------
 2 files changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/python-urlgrabber.spec b/python-urlgrabber.spec
index e89deeb..d84d5d2 100644
--- a/python-urlgrabber.spec
+++ b/python-urlgrabber.spec
@@ -3,7 +3,7 @@
 Summary: A high-level cross-protocol url-grabber
 Name: python-urlgrabber
 Version: 3.9.1
-Release: 15%{?dist}
+Release: 16%{?dist}
 Source0: urlgrabber-%{version}.tar.gz
 Patch1: urlgrabber-HEAD.patch
 
@@ -44,6 +44,10 @@ rm -rf $RPM_BUILD_ROOT
 %attr(0755,root,root) %{_libexecdir}/urlgrabber-ext-down
 
 %changelog
+* Wed Aug  8 2012 Zdeněk Pavlas <zpavlas at redhat.com> - 3.9.1-16
+- Update to latest head.
+- Improved multi-file progress, small bugfixes.
+
 * Fri Jul 20 2012 Zdeněk Pavlas <zpavlas at redhat.com> - 3.9.1-15
 - Update to latest head, misc bugfixes: BZ 832028, 831904, 831291.
 - Disable Kerberos auth.  BZ 769254
diff --git a/urlgrabber-HEAD.patch b/urlgrabber-HEAD.patch
index 4e1b34b..67e6567 100644
--- a/urlgrabber-HEAD.patch
+++ b/urlgrabber-HEAD.patch
@@ -233,7 +233,7 @@ index 3e5f3b7..8eeaeda 100644
      return (fb,lb)
  
 diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
-index e090e90..83823ea 100644
+index e090e90..bdcdfe3 100644
 --- a/urlgrabber/grabber.py
 +++ b/urlgrabber/grabber.py
 @@ -49,7 +49,7 @@ GENERAL ARGUMENTS (kwargs)
@@ -1185,7 +1185,7 @@ index e090e90..83823ea 100644
  
  #####################################################################
  # DEPRECATED FUNCTIONS
-@@ -1621,6 +1908,442 @@ def retrygrab(url, filename=None, copy_local=0, close_connection=0,
+@@ -1621,6 +1908,445 @@ def retrygrab(url, filename=None, copy_local=0, close_connection=0,
  
          
  #####################################################################
@@ -1368,6 +1368,9 @@ index e090e90..83823ea 100644
 +    def perform(self):
 +        ret = []
 +        for fd, event in self.epoll.poll():
++            if event & select.EPOLLHUP:
++                if DEBUG: DEBUG.info('downloader died')
++                raise KeyboardInterrupt
 +            assert event & select.EPOLLIN
 +            done = self.running[fd].perform()
 +            if not done: continue
@@ -1560,7 +1563,7 @@ index e090e90..83823ea 100644
 +        if filename and _TH.dirty is None:
 +            try:
 +                for line in open(filename):
-+                    host, speed, fail, ts = line.split(' ', 3)
++                    host, speed, fail, ts = line.rsplit(' ', 3)
 +                    _TH.hosts[host] = int(speed), int(fail), int(ts)
 +            except IOError: pass
 +            _TH.dirty = False
@@ -1707,7 +1710,7 @@ index dad410b..ac78b34 100644
      def urlopen(self, url, **kwargs):
          kw = dict(kwargs)
 diff --git a/urlgrabber/progress.py b/urlgrabber/progress.py
-index dd07c6a..4c126c5 100644
+index dd07c6a..5a02707 100644
 --- a/urlgrabber/progress.py
 +++ b/urlgrabber/progress.py
 @@ -211,6 +211,21 @@ def text_meter_total_size(size, downloaded=0):
@@ -1796,7 +1799,7 @@ index dd07c6a..4c126c5 100644
          self._do_end(now)
          
      def _do_end(self, now):
-@@ -466,11 +483,20 @@ class MultiFileMeter:
+@@ -466,11 +483,21 @@ class MultiFileMeter:
  
  
  class TextMultiFileMeter(MultiFileMeter):
@@ -1805,6 +1808,7 @@ index dd07c6a..4c126c5 100644
          self.fo = fo
 -        MultiFileMeter.__init__(self)
 +        MultiFileMeter.__init__(self, threaded)
++        self.index_time = self.index = 0
  
      # files: ###/### ###%  data: ######/###### ###%  time: ##:##:##/##:##:##
 +# New output, like TextMeter output...
@@ -1819,7 +1823,7 @@ index dd07c6a..4c126c5 100644
      def _do_update_meter(self, meter, now):
          self._lock.acquire()
          try:
-@@ -480,7 +506,7 @@ class TextMultiFileMeter(MultiFileMeter):
+@@ -480,7 +507,7 @@ class TextMultiFileMeter(MultiFileMeter):
              tf = self.numfiles or 1
              pf = 100 * float(df)/tf + 0.49
              dd = self.re.last_amount_read
@@ -1828,7 +1832,7 @@ index dd07c6a..4c126c5 100644
              pd = 100 * (self.re.fraction_read() or 0) + 0.49
              dt = self.re.elapsed_time()
              rt = self.re.remaining_time()
-@@ -491,9 +517,33 @@ class TextMultiFileMeter(MultiFileMeter):
+@@ -491,9 +518,39 @@ class TextMultiFileMeter(MultiFileMeter):
              ftd = format_number(td) + 'B'
              fdt = format_time(dt, 1)
              ftt = format_time(tt, 1)
@@ -1838,9 +1842,15 @@ index dd07c6a..4c126c5 100644
 +
 +            frac = self.re.fraction_read() or 0
 +            ave_dl = format_number(self.re.average_rate())
++
++            # cycle through active meters
++            if now > self.index_time:
++                self.index_time = now + 1.0
++                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)
@@ -1865,7 +1875,7 @@ index dd07c6a..4c126c5 100644
              self.fo.flush()
          finally:
              self._lock.release()
-@@ -502,18 +552,30 @@ class TextMultiFileMeter(MultiFileMeter):
+@@ -502,18 +559,30 @@ class TextMultiFileMeter(MultiFileMeter):
          self._lock.acquire()
          try:
              format = "%-30.30s %6.6s    %8.8s    %9.9s"
@@ -1902,7 +1912,7 @@ index dd07c6a..4c126c5 100644
  
      def _do_failure_meter(self, meter, message, now):
          self._lock.acquire()
-@@ -536,15 +598,6 @@ class TextMultiFileMeter(MultiFileMeter):
+@@ -536,15 +605,6 @@ class TextMultiFileMeter(MultiFileMeter):
              pass
          finally:
              self._lock.release()
@@ -1918,7 +1928,7 @@ index dd07c6a..4c126c5 100644
          
  ######################################################################
  # support classes and functions
-@@ -658,6 +711,8 @@ def format_time(seconds, use_hours=0):
+@@ -658,6 +718,8 @@ def format_time(seconds, use_hours=0):
      if seconds is None or seconds < 0:
          if use_hours: return '--:--:--'
          else:         return '--:--'


More information about the scm-commits mailing list