[Python-checkins] cpython: whatsnew: urllib Request objects are now reusable.

r.david.murray python-checkins at python.org
Mon Mar 10 23:11:46 CET 2014


http://hg.python.org/cpython/rev/e6d862886e5c
changeset:   89575:e6d862886e5c
user:        R David Murray <rdmurray at bitdance.com>
date:        Mon Mar 10 17:06:00 2014 -0400
summary:
  whatsnew: urllib Request objects are now reusable.

#16464, #17485, #17272.

files:
  Doc/whatsnew/3.4.rst |  13 +++++++++++++
  Misc/NEWS            |   5 ++++-
  2 files changed, 17 insertions(+), 1 deletions(-)


diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -1562,6 +1562,19 @@
 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
 --------
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -3053,7 +3053,7 @@
   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 @@
   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.

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list