[Yum-devel] [UG] [PATCH] Don't fail when size is unknown

Martin Kletzander mkletzan at redhat.com
Fri Apr 5 09:29:34 UTC 2013


I've hit the following problem numerous times, mainly when grabbing a
local file.  I'm not sure whether this should be handled somewhere
else, but this patch fixed the problem for me and even the progress is
working properly.  The problem looks like this:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usr/lib64/python2.7/site-packages/urlgrabber/grabber.pyc in _retrieve(self, buf)
   1070             if not self._prog_running:
   1071                 if self.opts.progress_obj:
-> 1072                     size  = self.size + self._reget_length
   1073                     self.opts.progress_obj.start(self._prog_reportname,
   1074                                                  urllib.unquote(self.url),

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
---------------------------------------------------------------------------
---
 urlgrabber/grabber.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index f53ae30..9d19794 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -1257,10 +1257,12 @@ class PyCurlFileObject(object):

             if not self._prog_running:
                 if self.opts.progress_obj:
-                    size  = self.size + self._reget_length
-                    self.opts.progress_obj.start(self._prog_reportname, 
-                                                 urllib.unquote(self.url), 
-                                                 self._prog_basename, 
+                    size = self.size
+                    if size is not None:
+                        size = size + self._reget_length
+                    self.opts.progress_obj.start(self._prog_reportname,
+                                                 urllib.unquote(self.url),
+                                                 self._prog_basename,
                                                  size=size,
                                                  text=self.opts.text)
                     self._prog_running = True
-- 
1.8.1.5



More information about the Yum-devel mailing list