From: R David Murray Date: Mon, 10 Mar 2014 21:06:00 +0000 (-0400) Subject: whatsnew: urllib Request objects are now reusable. X-Git-Tag: v3.4.1rc1~233^2~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30781e93b09c035510677f93321b1a69873744fe;p=python whatsnew: urllib Request objects are now reusable. #16464, #17485, #17272. --- diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index d210a8f94b..9666e3926a 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -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 -------- diff --git a/Misc/NEWS b/Misc/NEWS index 6222f596cc..f8dda9e301 100644 --- 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.