Skip to content

Commit

Permalink
pythonGH-103629: Update NEWS and whatsnew with PEP-692 information
Browse files Browse the repository at this point in the history
  • Loading branch information
franekmagiera committed Apr 26, 2023
1 parent 9529f87 commit 2cfa405
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
34 changes: 34 additions & 0 deletions Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ Summary -- Release highlights
.. PEP-sized items next.
New typing features:

* :ref:`whatsnew312-pep692`

Important deprecations, removals or restrictions:

* :pep:`623`, Remove wstr from Unicode
Expand Down Expand Up @@ -145,6 +149,36 @@ New Features
In Python 3.14, the default will switch to ``'data'``.
(Contributed by Petr Viktorin in :pep:`706`.)

New Features Related to Type Hints
==================================

This section covers major changes affecting :pep:`484` type hints and
the :mod:`typing` module.

.. _whatsnew312-pep692:

PEP 692: Using ``TypedDict`` for more precise ``**kwargs`` typing
-----------------------------------------------------------------

Typing ``**kwargs`` in a function signature as introduced by :pep:`484` allowed
for valid annotations only in cases where all of the ``**kwargs`` were of the
same type.

This PEP specifies a more precise way of typing ``**kwargs`` by relying on
typed dictionaries::

from typing import TypedDict, Unpack

class Movie(TypedDict):
name: str
year: int

def foo(**kwargs: Unpack[Movie]): ...

See :pep:`692` for more details.

(PEP written by Franek Magiera)


Other Language Changes
======================
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Mention the new way of typing ``**kwargs`` with ``Unpack`` and ``TypedDict``
introduced in :pep:`692`.

0 comments on commit 2cfa405

Please sign in to comment.