Commit 7cae3368 authored by R David Murray's avatar R David Murray

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.
parent 3e97585b
...@@ -218,7 +218,7 @@ The following classes are provided: ...@@ -218,7 +218,7 @@ The following classes are provided:
fetching of the image, this should be true. fetching of the image, this should be true.
*method* should be a string that indicates the HTTP request method that *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()`. :attr:`~Request.method` attribute and is used by :meth:`get_method()`.
Subclasses may indicate a default method by setting the Subclasses may indicate a default method by setting the
:attr:`~Request.method` attribute in the class itself. :attr:`~Request.method` attribute in the class itself.
...@@ -440,13 +440,20 @@ request. ...@@ -440,13 +440,20 @@ request.
.. attribute:: Request.method .. attribute:: Request.method
The HTTP request method to use. This value is used by The HTTP request method to use. By default its value is :const:`None`,
:meth:`~Request.get_method` to override the computed HTTP request which means that :meth:`~Request.get_method` will do its normal computation
method that would otherwise be returned. This attribute is initialized with of the method to be used. Its value can be set (thus overriding the default
the value of the *method* argument passed to the constructor. 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 .. 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() .. method:: Request.get_method()
......
...@@ -1272,6 +1272,11 @@ urllib ...@@ -1272,6 +1272,11 @@ urllib
:class:`~urllib.request.DataHandler` class. (Contributed by Mathias Panzenböck :class:`~urllib.request.DataHandler` class. (Contributed by Mathias Panzenböck
in :issue:`16423`.) 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 unittest
-------- --------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment