]> granicus.if.org Git - python/commitdiff
whatsnew: urllib Request objects are now reusable.
authorR David Murray <rdmurray@bitdance.com>
Mon, 10 Mar 2014 21:06:00 +0000 (17:06 -0400)
committerR David Murray <rdmurray@bitdance.com>
Mon, 10 Mar 2014 21:06:00 +0000 (17:06 -0400)
#16464, #17485, #17272.

Doc/whatsnew/3.4.rst
Misc/NEWS

index d210a8f94b8e0215a5fcd763b069c7ac8727f08b..9666e3926ac8a087fe9a43d4a9bad4cdebc395f3 100644 (file)
@@ -1562,6 +1562,19 @@ can now be specified by setting a :class:`~urllib.request.Request.method`
 class attribute on the subclass. (Contributed by Jason R Coombs in
 :issue:`18978`.)
 
+:class:`~urllib.request.Request` objects are now reusable: if the
+:attr:`~urllib.request.Request.full_url` or :attr:`~urllib.request.Request.data`
+attributes are modified, all relevant internal properties are updated.  This
+means, for example, that it is now possible to use the same
+:class:`~urllib.request.Request` object in more than one
+:meth:`.OpenerDirector.open` call with different *data* arguments, or to
+modify a :class:`~urllib.request.Request`\ 's ``url`` rather than recomputing it
+from scratch.  There is also a new
+:meth:`~urllib.request.Request.remove_header` method that can be used to remove
+headers from a :class:`~urllib.request.Request`.  (Contributed by Alexey
+Kachayev in :issue:`16464`, Daniel Wozniak in :issue:`17485`, and Damien Brecht
+and Senthil Kumaran in :issue:`17272`.)
+
 
 unittest
 --------
index 6222f596cca0d2f67a9bd5423200f2de06778974..f8dda9e3010e1995bbb30233851e5b14118e0f22 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -3053,7 +3053,7 @@ Library
   to procedurally generate, in an easy way, small test instances.
 
 - Issue #17485: Also delete the Request Content-Length header if the data
-  attribute is deleted.  (Follow on to issue 16464).
+  attribute is deleted.  (Follow on to issue Issue #16464).
 
 - Issue #15927: CVS now correctly parses escaped newlines and carriage
   when parsing with quoting turned off.
@@ -3477,6 +3477,9 @@ Library
   list() calls aren't added to filter(), map(), and zip() which are directly
   passed enumerate().
 
+- Issue #16464: Reset the Content-Length header when a urllib Request is reused
+  with new data.
+
 - Issue #12848: The pure Python pickle implementation now treats object
   lengths as unsigned 32-bit integers, like the C implementation does.
   Patch by Serhiy Storchaka.