]> granicus.if.org Git - python/commitdiff
whatsnew: Request.method can be overridden in subclasses (#18978).
authorR David Murray <rdmurray@bitdance.com>
Tue, 25 Feb 2014 15:22:50 +0000 (10:22 -0500)
committerR David Murray <rdmurray@bitdance.com>
Tue, 25 Feb 2014 15:22:50 +0000 (10:22 -0500)
Jason doced the change in the constructor *method* description, but
not the description of Request.method, so I added the change there
as well.

Doc/library/urllib.request.rst
Doc/whatsnew/3.4.rst

index 20449d960c3c8c26bb315d51f56e9f50ccdbae09..6ac90818dc69cdc38a4d434abe2db07491ae3b69 100644 (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()
 
index 528a818d1940069ab60c8ef550502613c0079503..cc1cafc825bfe1596919a3b581b1d6c082f910c8 100644 (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
 --------