whatsnew: Request.method can be overridden in subclasses (#18978).

Jason doced the change in the constructor *method* description, but
not the description of Request.method, so I added the change there
as well.
This commit is contained in:
R David Murray 2014-02-25 10:22:50 -05:00
parent 3e97585b3e
commit 7cae336890
2 changed files with 17 additions and 5 deletions

View File

@ -218,7 +218,7 @@ The following classes are provided:
fetching of the image, this should be true.
*method* should be a string that indicates the HTTP request method that
will be used (e.g. ``'HEAD'``). Its value is stored in the
will be used (e.g. ``'HEAD'``). If provided, its value is stored in the
:attr:`~Request.method` attribute and is used by :meth:`get_method()`.
Subclasses may indicate a default method by setting the
:attr:`~Request.method` attribute in the class itself.
@ -440,13 +440,20 @@ request.
.. attribute:: Request.method
The HTTP request method to use. This value is used by
:meth:`~Request.get_method` to override the computed HTTP request
method that would otherwise be returned. This attribute is initialized with
the value of the *method* argument passed to the constructor.
The HTTP request method to use. By default its value is :const:`None`,
which means that :meth:`~Request.get_method` will do its normal computation
of the method to be used. Its value can be set (thus overriding the default
computation in :meth:`~Request.get_method`) either by providing a default
value by setting it at the class level in a :class:`Request` subclass, or by
passing a value in to the :class:`Request` constructor via the *method*
argument.
.. versionadded:: 3.3
.. versionchanged:: 3.4
A default value can now be set in subclasses; previously it could only
be set via the constructor argument.
.. method:: Request.get_method()

View File

@ -1272,6 +1272,11 @@ urllib
:class:`~urllib.request.DataHandler` class. (Contributed by Mathias Panzenböck
in :issue:`16423`.)
The http method that will be used by a :class:`~urllib.request.Request` class
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`.)
unittest
--------