Use the new urllib3 stream generator.
authorCory Benfield <lukasaoz@gmail.com>
Tue, 18 Jun 2013 16:53:28 +0000 (17:53 +0100)
committerCory Benfield <lukasaoz@gmail.com>
Tue, 18 Jun 2013 16:56:35 +0000 (17:56 +0100)
requests/models.py

index d894d9f..6600a91 100644 (file)
@@ -537,11 +537,18 @@ class Response(object):
             return iter_slices(self._content, chunk_size)
 
         def generate():
-            while 1:
-                chunk = self.raw.read(chunk_size, decode_content=True)
-                if not chunk:
-                    break
-                yield chunk
+            try:
+                # Special case for urllib3.
+                for chunk in self.raw.stream(chunk_size, decode_content=True):
+                    yield chunk
+            except AttributeError:
+                # Standard file-like object.
+                while 1:
+                    chunk = self.raw.read(chunk_size, decode_content=True)
+                    if not chunk:
+                        break
+                    yield chunk
+
             self._content_consumed = True
 
         gen = generate()