Skip to content

Commit

Permalink
Document PEP 698 and other new typing features in What's New (pythonG…
Browse files Browse the repository at this point in the history
…H-104957)

(cherry picked from commit 595ffdd)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
  • Loading branch information
JelleZijlstra authored and miss-islington committed May 28, 2023
1 parent 3f8d5d9 commit 63c9055
Showing 1 changed file with 37 additions and 6 deletions.
43 changes: 37 additions & 6 deletions Doc/whatsnew/3.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,36 @@ typed dictionaries::

See :pep:`692` for more details.

(PEP written by Franek Magiera)
(Contributed by Franek Magiera in :gh:`103629`.)

PEP 698: Override Decorator for Static Typing
---------------------------------------------

A new decorator :func:`typing.override` has been added to the :mod:`typing`
module. It indicates to type checkers that the method is intended to override
a method in a superclass. This allows type checkers to catch mistakes where
a method that is intended to override something in a base class
does not in fact do so.

Example::

from typing import override

class Base:
def get_color(self) -> str:
return "blue"

class GoodChild(Base):
@override # ok: overrides Base.get_color
def get_color(self) -> str:
return "yellow"

class BadChild(Base):
@override # type checker error: does not override Base.get_color
def get_colour(self) -> str:
return "red"

(Contributed by Steven Troxler in :gh:`101561`.)

.. _whatsnew312-pep695:

Expand Down Expand Up @@ -772,11 +801,6 @@ tempfile
typing
------

* Add :func:`typing.override`, an override decorator telling to static type
checkers to verify that a method overrides some method or attribute of the
same name on a base class, as per :pep:`698`. (Contributed by Steven Troxler in
:gh:`101564`.)

* :func:`isinstance` checks against
:func:`runtime-checkable protocols <typing.runtime_checkable>` now use
:func:`inspect.getattr_static` rather than :func:`hasattr` to lookup whether
Expand Down Expand Up @@ -821,6 +845,13 @@ typing
or more members may be slower than in Python 3.11. (Contributed by Alex
Waygood in :gh:`74690` and :gh:`103193`.)

* All :data:`typing.TypedDict` and :data:`typing.NamedTuple` classes now have the
``__orig_bases__`` attribute. (Contributed by Adrian Garcia Badaracco in
:gh:`103699`.)

* Add ``frozen_default`` parameter to :func:`typing.dataclass_transform`.
(Contributed by Erik De Bonte in :gh:`99957`.)

sys
---

Expand Down

0 comments on commit 63c9055

Please sign in to comment.