Avoid duplicating files data when creating a Request with str/bytes/bytearray in...
authorRasmus Scholer (TimelineX) <rasmusscholer@gmail.com>
Wed, 4 Mar 2015 15:21:38 +0000 (10:21 -0500)
committerRasmus Scholer (TimelineX) <rasmusscholer@gmail.com>
Wed, 4 Mar 2015 15:21:38 +0000 (10:21 -0500)
requests/models.py

index 4b2648f6c6267e938e9d15f0ad9f1750145e0772..317d0ee44df91d3171e3bf4dc26617480c24c739 100644 (file)
@@ -143,12 +143,13 @@ class RequestEncodingMixin(object):
             else:
                 fn = guess_filename(v) or k
                 fp = v
-            if isinstance(fp, str):
-                fp = StringIO(fp)
-            if isinstance(fp, (bytes, bytearray)):
-                fp = BytesIO(fp)
 
-            rf = RequestField(name=k, data=fp.read(),
+            if isinstance(fp, (str, bytes, bytearray)):
+                fdata = fp
+            else:
+                fdata = fp.read()
+
+            rf = RequestField(name=k, data=fdata,
                               filename=fn, headers=fh)
             rf.make_multipart(content_type=ft)
             new_fields.append(rf)