@@ -587,14 +587,26 @@ Special typing primitives
587587 ``typing_extensions `` backports various bug fixes and improvements
588588 to ``TypedDict ``.
589589
590- :py:class: `TypedDict ` does not store runtime information
591- about which (if any) keys are non-required in Python 3.8, and does not
592- honor the ``total `` keyword with old-style ``TypedDict() `` in Python
593- 3.9.0 and 3.9.1. :py:class: `typing.TypedDict ` also does not support multiple inheritance
594- with :py:class: `typing.Generic ` on Python <3.11, and :py:class: `typing.TypedDict ` classes do not
595- consistently have the ``__orig_bases__ `` attribute on Python <3.12. The
596- ``typing_extensions `` backport provides all of these features and bugfixes on
597- all Python versions.
590+ Features backported by `typing_extensions ` include:
591+
592+ * :py:class: `typing.TypedDict ` does not store runtime information about which
593+ (if any) keys are non-required in Python 3.8, and does not honor the
594+ *total * keyword with old-style ``TypedDict() `` on Python 3.9.0 and 3.9.1.
595+ * :py:class: `typing.TypedDict ` does not support multiple inheritance with
596+ :py:class: `typing.Generic ` on Python <3.11
597+ * :py:class: `typing.TypedDict ` classes do not consistently have the
598+ :attr: `!__orig_bases__ ` attribute on Python <3.12.
599+ * :py:class: `typing.TypedDict ` does not expose the
600+ :py:attr: `~typing.TypedDict.__readonly_keys__ ` and
601+ :py:attr: `~typing.TypedDict.__mutable_keys__ ` attributes on Python <3.13.
602+ * :py:class: `typing.TypedDict ` does not support the *extra_items * or *closed *
603+ keyword arguments on Python <3.15, and also does not expose the
604+ :py:attr: `~typing.TypedDict.__extra_items__ ` and
605+ :py:attr: `~typing.TypedDict.__closed__ ` attributes on Python <3.15.
606+
607+ ``typing_extensions `` also currently includes experimental support for
608+ :pep: `764 ` (inline ``TypedDict ``\ s), which is not yet supported in the
609+ standard library on any Python version.
598610
599611 Historically, ``TypedDict `` has supported an alternative creation syntax
600612 where the fields are supplied as keyword arguments (e.g.,
@@ -603,6 +615,9 @@ Special typing primitives
603615 raises a :py:exc: `DeprecationWarning ` when this syntax is used in Python 3.12
604616 or lower and fails with a :py:exc: `TypeError ` in Python 3.13 and higher.
605617
618+ Introspection attributes
619+ ------------------------
620+
606621 ``typing_extensions `` supports the :data: `ReadOnly ` qualifier
607622 introduced by :pep: `705 `. It is reflected in the following attributes:
608623
@@ -620,7 +635,7 @@ Special typing primitives
620635
621636 .. versionadded :: 4.9.0
622637
623- The `` closed `` and `` extra_items `` keyword arguments introduced by
638+ The * closed * and * extra_items * keyword arguments introduced by
624639 :pep: `728 ` and supported in Python 3.15 and newer are supported.
625640
626641 For runtime introspection, two attributes can be looked at:
@@ -640,6 +655,9 @@ Special typing primitives
640655
641656 .. versionadded :: 4.10.0
642657
658+ History
659+ -------
660+
643661 .. versionchanged :: 4.3.0
644662
645663 Added support for generic ``TypedDict ``\ s.
@@ -873,9 +891,7 @@ Protocols
873891Decorators
874892~~~~~~~~~~
875893
876- .. decorator :: dataclass_transform(*, eq_default=False, order_default=False,
877- kw_only_default=False, frozen_default=False,
878- field_specifiers=(), **kwargs)
894+ .. decorator :: dataclass_transform(*, eq_default=False, order_default=False, kw_only_default=False, frozen_default=False, field_specifiers=(), **kwargs)
879895
880896 See :py:func: `typing.dataclass_transform ` and :pep: `681 `. In ``typing `` since 3.11.
881897
0 commit comments