]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-123299: Some copyedits to What's New in 3.14 (GH-133622) (#133771)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 9 May 2025 16:12:48 +0000 (18:12 +0200)
committerGitHub <noreply@github.com>
Fri, 9 May 2025 16:12:48 +0000 (19:12 +0300)
Co-authored-by: Éric <earaujo@caravan.coop>
Doc/whatsnew/3.14.rst

index 894f011ec86a30842ebf68af014d3e3d47a01801..9265024378cc6ce047a39d6ccb4f455f6d54d716 100644 (file)
@@ -153,10 +153,10 @@ As another example, generating HTML attributes from data:
 .. code-block:: python
 
    attributes = {"src": "shrubbery.jpg", "alt": "looks nice"}
-   template = t"<img {attributes} />"
-   assert html(template) == '<img src="shrubbery.jpg" alt="looks nice" class="looks-nice" />'
+   template = t"<img {attributes}>"
+   assert html(template) == '<img src="shrubbery.jpg" alt="looks nice" class="looks-nice">'
 
-Unlike f-strings, the ``html`` function has access to template attributes
+Compared to using an f-string, the ``html`` function has access to template attributes
 containing the original information: static strings, interpolations, and values
 from the original scope. Unlike existing templating approaches, t-strings build
 from the well-known f-string syntax and rules. Template systems thus benefit
@@ -443,6 +443,9 @@ Python without deferred evaluation of annotations, reaches its end of life in 20
 In Python 3.14, the behavior of code using ``from __future__ import annotations``
 is unchanged.
 
+.. seealso::
+   :pep:`649`.
+
 
 Improved error messages
 -----------------------
@@ -584,8 +587,27 @@ Improved error messages
                      ^^^^^^
    SyntaxError: cannot use subscript as import target
 
-.. seealso::
-   :pep:`649`.
+* Improved error message when trying to add an instance of an unhashable type to
+  a :class:`dict` or :class:`set`. (Contributed by CF Bolz-Tereick and Victor Stinner
+  in :gh:`132828`.)
+
+  .. code-block:: pycon
+
+     >>> s = set()
+     >>> s.add({'pages': 12, 'grade': 'A'})
+     Traceback (most recent call last):
+       File "<python-input-1>", line 1, in <module>
+         s.add({'pages': 12, 'grade': 'A'})
+         ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+     TypeError: cannot use 'dict' as a set element (unhashable type: 'dict')
+     >>> d = {}
+     >>> l = [1, 2, 3]
+     >>> d[l] = 12
+     Traceback (most recent call last):
+       File "<python-input-4>", line 1, in <module>
+         d[l] = 12
+         ~^^^
+     TypeError: cannot use 'list' as a dict key (unhashable type: 'list')
 
 
 .. _whatsnew314-pep741: