[Python-checkins] Document PEP 698 and other new typing features in What's New (#104957)

hauntsaninja webhook-mailer at python.org
Sun May 28 15:13:26 EDT 2023


https://github.com/python/cpython/commit/595ffddb33e95d8fa11999ddb873d08e3565d2eb
commit: 595ffddb33e95d8fa11999ddb873d08e3565d2eb
branch: main
author: Jelle Zijlstra <jelle.zijlstra at gmail.com>
committer: hauntsaninja <12621235+hauntsaninja at users.noreply.github.com>
date: 2023-05-28T12:13:19-07:00
summary:

Document PEP 698 and other new typing features in What's New (#104957)

files:
M Doc/whatsnew/3.12.rst

diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 0ae9d977e845..f23a733e0c61 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -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:
 
@@ -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
@@ -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
 ---
 



More information about the Python-checkins mailing list