[Python-checkins] cpython: whatsnew: Request.method can be overridden in subclasses (#18978).

r.david.murray python-checkins at python.org
Tue Feb 25 16:23:31 CET 2014


http://hg.python.org/cpython/rev/1afbd851d1c1
changeset:   89385:1afbd851d1c1
user:        R David Murray <rdmurray at bitdance.com>
date:        Tue Feb 25 10:22:50 2014 -0500
summary:
  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.

files:
  Doc/library/urllib.request.rst |  17 ++++++++++++-----
  Doc/whatsnew/3.4.rst           |   5 +++++
  2 files changed, 17 insertions(+), 5 deletions(-)


diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -218,7 +218,7 @@
    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 @@
 
 .. 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()
 
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
@@ -1272,6 +1272,11 @@
 :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
 --------

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


More information about the Python-checkins mailing list