Downloading image with --progress fails

Downloading image with --progress fails with "RequestIdProxy object is
not an iterator". This is because to display download progress
VerboseFileWrapper in progressbar requires object of IterableWithLength,
but after support of returning request-id [1] to caller it returns
RequestIdProxy object which is wrapped around IterableWithLength
and response.

To resolve this issue overridden next and __next__ methods in
RequestIdProxy so that it can act as iterator for python 2.x
and 3.x as well.

[1] 610177a779

Closes-Bug: #1670464
Change-Id: I188e67c2487b7e4178ea246f02154bbcbc35a2b1
This commit is contained in:
Abhishek Kekane
2017-03-09 13:20:13 +05:30
parent 3338ed91d4
commit 60c06d526c
2 changed files with 13 additions and 1 deletions
+7
View File
@@ -494,6 +494,13 @@ class RequestIdProxy(wrapt.ObjectProxy):
def wrapped(self):
return self._self_wrapped
# Overriden next method to act as iterator
def next(self):
return next(self._self_wrapped)
# In Python 3, __next__() has replaced next().
__next__ = next
class GeneratorProxy(wrapt.ObjectProxy):
def __init__(self, wrapped):