This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author catlee
Recipients catlee
Date 2008-06-30.18:01:17
SpamBayes Score 0.22234137
Marked as misclassified No
Message-id <1214848938.76.0.928668674728.issue3243@psf.upfronthosting.co.za>
In-reply-to
Content
httplib should support requests whose bodies are iterable objects.  This
would facilitate doing large file uploads via HTTP since you wouldn't
have to load the entire file into memory to create the request string.

Index: Lib/httplib.py
===================================================================
--- Lib/httplib.py      (revision 64600)
+++ Lib/httplib.py      (working copy)
@@ -688,7 +688,12 @@
        self.__state = _CS_IDLE

    def send(self, str):
-        """Send `str' to the server."""
+        """Send `str` to the server.
+
+        ``str`` can be a string object, a file-like object that supports
+        a .read() method, or an iterable object that supports a .next()
+        method.
+        """
        if self.sock is None:
            if self.auto_open:
                self.connect()
@@ -710,6 +715,10 @@
                while data:
                    self.sock.sendall(data)
                    data=str.read(blocksize)
+            elif hasattr(str,'next'):
+                if self.debuglevel > 0: print "sendIng an iterable"
+                for data in str:
+                    self.sock.sendall(data)
            else:
                self.sock.sendall(str)
        except socket.error, v:
History
Date User Action Args
2008-06-30 18:02:18catleesetspambayes_score: 0.222341 -> 0.22234137
recipients: + catlee
2008-06-30 18:02:18catleesetspambayes_score: 0.222341 -> 0.222341
messageid: <1214848938.76.0.928668674728.issue3243@psf.upfronthosting.co.za>
2008-06-30 18:01:18catleelinkissue3243 messages
2008-06-30 18:01:17catleecreate