summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2015-03-29 21:09:21 (GMT)
committerR David Murray <rdmurray@bitdance.com>2015-03-29 21:09:21 (GMT)
commit1813c1701f8e7e9287bccf66d1b4b8348c432168 (patch)
tree07d91a6490d90cdfbd84618daf79354c831343bd /Doc
parent0deefd5a9402e3bd13ed899f9b939062faf98114 (diff)
downloadcpython-1813c1701f8e7e9287bccf66d1b4b8348c432168.zip
cpython-1813c1701f8e7e9287bccf66d1b4b8348c432168.tar.gz
cpython-1813c1701f8e7e9287bccf66d1b4b8348c432168.tar.bz2
#2211: properly document the Morsel behavior changes.
Also deprecate the undocumented set argument instead of removing it already in 3.5. Initial patch by Demian Brecht.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/http.cookies.rst35
-rw-r--r--Doc/whatsnew/3.5.rst21
2 files changed, 45 insertions, 11 deletions
diff --git a/Doc/library/http.cookies.rst b/Doc/library/http.cookies.rst
index 46c3bbd..5c3fbc8 100644
--- a/Doc/library/http.cookies.rst
+++ b/Doc/library/http.cookies.rst
@@ -143,14 +143,17 @@ Morsel Objects
The keys are case-insensitive.
+ .. versionchanged:: 3.5
+ :meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel.value`
+ into account.
+
.. attribute:: Morsel.value
The value of the cookie.
.. deprecated:: 3.5
- Setting :attr:`~Morsel.value` directly has been deprecated in favour of
- using :func:`~Morsel.set`
+ assigning to ``value``; use :meth:`~Morsel.set` instead.
.. attribute:: Morsel.coded_value
@@ -158,8 +161,7 @@ Morsel Objects
The encoded value of the cookie --- this is what should be sent.
.. deprecated:: 3.5
- Setting :attr:`~Morsel.coded_value` directly has been deprecated in
- favour of using :func:`~Morsel.set`
+ assigning to ``coded_value``; use :meth:`~Morsel.set` instead.
.. attribute:: Morsel.key
@@ -167,14 +169,17 @@ Morsel Objects
The name of the cookie.
.. deprecated:: 3.5
- Setting :attr:`~Morsel.key` directly has been deprecated in
- favour of using :func:`~Morsel.set`
+ assigning to ``key``; use :meth:`~Morsel.set` instead.
.. method:: Morsel.set(key, value, coded_value)
Set the *key*, *value* and *coded_value* attributes.
+ .. deprecated:: 3.5
+ The undocumented *LegalChars* parameter is ignored and will be removed in
+ a future version.
+
.. method:: Morsel.isReservedKey(K)
@@ -205,6 +210,24 @@ Morsel Objects
The meaning for *attrs* is the same as in :meth:`output`.
+.. method:: Morsel.update(values)
+
+ Update the values in the Morsel dictionary with the values in the dictionary
+ *values*. Raise an error if any of the keys in the *values* dict is not a
+ valid :rfc:`2109` attribute.
+
+ .. versionchanged:: 3.5
+ an error is raised for invalid keys.
+
+
+.. method:: Morsel.copy(value)
+
+ Return a shallow copy of the Morsel object.
+
+ .. versionchanged:: 3.5
+ return a Morsel object instead of a dict.
+
+
.. _cookie-example:
Example
diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst
index c13289a..868b6b2 100644
--- a/Doc/whatsnew/3.5.rst
+++ b/Doc/whatsnew/3.5.rst
@@ -525,11 +525,12 @@ Deprecated Python modules, functions and methods
``True``, but this default is deprecated. Specify the *decode_data* keyword
with an appropriate value to avoid the deprecation warning.
-* :class:`~http.cookies.Morsel` has previously allowed for setting attributes
- :attr:`~http.cookies.Morsel.key`, :attr:`~http.cookies.Morsel.value` and
- :attr:`~http.cookies.Morsel.coded_value`. Use the preferred
- :func:`~http.cookies.Morsel.set` method in order to avoid the deprecation
- warning.
+* Directly assigning values to the :attr:`~http.cookies.Morsel.key`,
+ :attr:`~http.cookies.Morsel.value` and
+ :attr:`~http.cookies.Morsel.coded_value` of :class:`~http.cookies.Morsel`
+ objects is deprecated. Use the :func:`~http.cookies.Morsel.set` method
+ instead. In addition, the undocumented *LegalChars* parameter of
+ :func:`~http.cookies.Morsel.set` is deprecated, and is now ignored.
* Passing a format string as keyword argument *format_string* to the
:meth:`~string.Formatter.format` method of the :class:`string.Formatter`
@@ -635,6 +636,16 @@ Changes in the Python API
string (e.g. ``'x+'`` instead of ``'x*'``). Patterns that could only match
an empty string (such as ``'\b'``) now raise an error.
+* The :class:`~http.cookies.Morsel` dict-like interface has been made self
+ consistent: morsel comparison now takes the :attr:`~http.cookies.Morsel.key`
+ and :attr:`~http.cookies.Morsel.value` into account,
+ :meth:`~http.cookies.Morsel.copy` now results in a
+ :class:`~http.cookies.Morsel` instance rather than a *dict*, and
+ :meth:`~http.cookies.Morsel.update` will no raise an exception if any of the
+ keys in the update dictionary are invalid. In addition, the undocumented
+ *LegalChars* parameter of :func:`~http.cookies.Morsel.set` is deprecated and
+ is now ignored. (:issue:`2211`)
+
Changes in the C API
--------------------