Skip to content

Releases: python/typing_extensions

4.15.0rc1

18 Aug 14:26
abaaafd
Compare
Choose a tag to compare
4.15.0rc1 Pre-release
Pre-release
  • Add the @typing_extensions.disjoint_base decorator, as specified
    in PEP 800. Patch by Jelle Zijlstra.
  • Add typing_extensions.type_repr, a backport of
    annotationlib.type_repr,
    introduced in Python 3.14 (CPython PR #124551,
    originally by Jelle Zijlstra). Patch by Semyon Moroz.
  • Fix behavior of type params in typing_extensions.evaluate_forward_ref. Backport of
    CPython PR #137227 by Jelle Zijlstra.

4.14.1

04 Jul 13:27
42027ab
Compare
Choose a tag to compare

Release 4.14.1 (July 4, 2025)

  • Fix usage of typing_extensions.TypedDict nested inside other types
    (e.g., typing.Type[typing_extensions.TypedDict]). This is not allowed by the
    type system but worked on older versions, so we maintain support.

4.14.0

02 Jun 14:51
b07d245
Compare
Choose a tag to compare

This release adds several new features, including experimental support for inline typed dictionaries (PEP 764) and sentinels (PEP 661), and support for changes in Python 3.14. In addition, Python 3.8 is no longer supported.

Changes since 4.14.0rc1:

  • Remove __or__ and __ror__ methods from typing_extensions.Sentinel
    on Python versions <3.10. PEP 604 was introduced in Python 3.10, and
    typing_extensions does not generally attempt to backport PEP-604 methods
    to prior versions.
  • Further update typing_extensions.evaluate_forward_ref with changes in Python 3.14.

Changes included in 4.14.0rc1:

  • Drop support for Python 3.8 (including PyPy-3.8). Patch by Victorien Plot.
  • Do not attempt to re-export names that have been removed from typing,
    anticipating the removal of typing.no_type_check_decorator in Python 3.15.
    Patch by Jelle Zijlstra.
  • Update typing_extensions.Format, typing_extensions.evaluate_forward_ref, and
    typing_extensions.TypedDict to align
    with changes in Python 3.14. Patches by Jelle Zijlstra.
  • Fix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.

New features:

  • Add support for inline typed dictionaries (PEP 764).
    Patch by Victorien Plot.
  • Add typing_extensions.Reader and typing_extensions.Writer. Patch by
    Sebastian Rittau.
  • Add support for sentinels (PEP 661). Patch by
    Victorien Plot.

4.14.0rc1

24 May 21:36
36cc476
Compare
Choose a tag to compare
4.14.0rc1 Pre-release
Pre-release

Major changes:

  • Drop support for Python 3.8 (including PyPy-3.8). Patch by Victorien Plot.
  • Do not attempt to re-export names that have been removed from typing,
    anticipating the removal of typing.no_type_check_decorator in Python 3.15.
    Patch by Jelle Zijlstra.
  • Update typing_extensions.Format, typing_extensions.evaluate_forward_ref, and
    typing_extensions.TypedDict to align
    with changes in Python 3.14. Patches by Jelle Zijlstra.
  • Fix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.

New features:

  • Add support for inline typed dictionaries (PEP 764).
    Patch by Victorien Plot.
  • Add typing_extensions.Reader and typing_extensions.Writer. Patch by
    Sebastian Rittau.
  • Add support for sentinels (PEP 661). Patch by
    Victorien Plot.

4.13.2

10 Apr 14:17
4525e9d
Compare
Choose a tag to compare
  • Fix TypeError when taking the union of typing_extensions.TypeAliasType and a
    typing.TypeAliasType on Python 3.12 and 3.13.
    Patch by Joren Hammudoglu.
  • Backport from CPython PR #132160
    to avoid having user arguments shadowed in generated __new__ by
    @typing_extensions.deprecated.
    Patch by Victorien Plot.

4.13.1

03 Apr 16:07
45a8847
Compare
Choose a tag to compare

This is a bugfix release fixing two edge cases that appear on old bugfix releases of CPython.

Bugfixes:

  • Fix regression in 4.13.0 on Python 3.10.2 causing a TypeError when using Concatenate.
    Patch by Daraan.
  • Fix TypeError when using evaluate_forward_ref on Python 3.10.1-2 and 3.9.8-10.
    Patch by Daraan.

4.13.0

26 Mar 03:46
c893401
Compare
Choose a tag to compare

New features:

  • Add typing_extensions.TypeForm from PEP 747. Patch by
    Jelle Zijlstra.
  • Add typing_extensions.get_annotations, a backport of
    inspect.get_annotations that adds features specified
    by PEP 649. Patches by Jelle Zijlstra and Alex Waygood.
  • Backport evaluate_forward_ref from CPython PR
    #119891 to evaluate ForwardRefs.
    Patch by Daraan, backporting a CPython PR by Jelle Zijlstra.

Bugfixes and changed features:

  • Update PEP 728 implementation to a newer version of the PEP. Patch by Jelle Zijlstra.
  • Copy the coroutine status of functions and methods wrapped
    with @typing_extensions.deprecated. Patch by Sebastian Rittau.
  • Fix bug where TypeAliasType instances could be subscripted even
    where they were not generic. Patch by Daraan.
  • Fix bug where a subscripted TypeAliasType instance did not have all
    attributes of the original TypeAliasType instance on older Python versions.
    Patch by Daraan and Alex Waygood.
  • Fix bug where subscripted TypeAliasType instances (and some other
    subscripted objects) had wrong parameters if they were directly
    subscripted with an Unpack object.
    Patch by Daraan.
  • Backport to Python 3.10 the ability to substitute ... in generic Callable
    aliases that have a Concatenate special form as their argument.
    Patch by Daraan.
  • Extended the Concatenate backport for Python 3.8-3.10 to now accept
    Ellipsis as an argument. Patch by Daraan.
  • Fix backport of get_type_hints to reflect Python 3.11+ behavior which does not add
    Union[..., NoneType] to annotations that have a None default value anymore.
    This fixes wrapping of Annotated in an unwanted Optional in such cases.
    Patch by Daraan.
  • Fix error in subscription of Unpack aliases causing nested Unpacks
    to not be resolved correctly. Patch by Daraan.
  • Backport CPython PR #124795:
    fix TypeAliasType not raising an error on non-tuple inputs for type_params.
    Patch by Daraan.
  • Fix that lists and ... could not be used for parameter expressions for TypeAliasType
    instances before Python 3.11.
    Patch by Daraan.
  • Fix error on Python 3.10 when using typing.Concatenate and
    typing_extensions.Concatenate together. Patch by Daraan.
  • Backport of CPython PR #109544
    to reflect Python 3.13+ behavior: A value assigned to __total__ in the class body of a
    TypedDict will be overwritten by the total argument of the TypedDict constructor.
    Patch by Daraan, backporting a CPython PR by Jelle Zijlstra.
  • isinstance(typing_extensions.Unpack[...], TypeVar) now evaluates to False on Python 3.11
    and newer, but remains True on versions before 3.11.
    Patch by Daraan.

4.13.0rc1

18 Mar 18:02
3c66d26
Compare
Choose a tag to compare
4.13.0rc1 Pre-release
Pre-release

New features:

  • Add typing_extensions.TypeForm from PEP 747. Patch by
    Jelle Zijlstra.
  • Add typing_extensions.get_annotations, a backport of
    inspect.get_annotations that adds features specified
    by PEP 649. Patches by Jelle Zijlstra and Alex Waygood.
  • Backport evaluate_forward_ref from CPython PR
    #119891 to evaluate ForwardRefs.
    Patch by Daraan, backporting a CPython PR by Jelle Zijlstra.

Bugfixes and changed features:

  • Update PEP 728 implementation to a newer version of the PEP. Patch by Jelle Zijlstra.
  • Copy the coroutine status of functions and methods wrapped
    with @typing_extensions.deprecated. Patch by Sebastian Rittau.
  • Fix bug where TypeAliasType instances could be subscripted even
    where they were not generic. Patch by Daraan.
  • Fix bug where a subscripted TypeAliasType instance did not have all
    attributes of the original TypeAliasType instance on older Python versions.
    Patch by Daraan and Alex Waygood.
  • Fix bug where subscripted TypeAliasType instances (and some other
    subscripted objects) had wrong parameters if they were directly
    subscripted with an Unpack object.
    Patch by Daraan.
  • Backport to Python 3.10 the ability to substitute ... in generic Callable
    aliases that have a Concatenate special form as their argument.
    Patch by Daraan.
  • Extended the Concatenate backport for Python 3.8-3.10 to now accept
    Ellipsis as an argument. Patch by Daraan.
  • Fix backport of get_type_hints to reflect Python 3.11+ behavior which does not add
    Union[..., NoneType] to annotations that have a None default value anymore.
    This fixes wrapping of Annotated in an unwanted Optional in such cases.
    Patch by Daraan.
  • Fix error in subscription of Unpack aliases causing nested Unpacks
    to not be resolved correctly. Patch by Daraan.
  • Backport CPython PR #124795:
    fix TypeAliasType not raising an error on non-tuple inputs for type_params.
    Patch by Daraan.
  • Fix that lists and ... could not be used for parameter expressions for TypeAliasType
    instances before Python 3.11.
    Patch by Daraan.
  • Fix error on Python 3.10 when using typing.Concatenate and
    typing_extensions.Concatenate together. Patch by Daraan.
  • Backport of CPython PR #109544
    to reflect Python 3.13+ behavior: A value assigned to __total__ in the class body of a
    TypedDict will be overwritten by the total argument of the TypedDict constructor.
    Patch by Daraan, backporting a CPython PR by Jelle Zijlstra.
  • Fix for Python 3.11 that now isinstance(typing_extensions.Unpack[...], TypeVar)
    evaluates to False, however still True for <3.11.
    Patch by Daraan

4.12.2

07 Jun 18:50
e1250ff
Compare
Choose a tag to compare
  • Fix regression in v4.12.0 where specialization of certain generics with an overridden __eq__ method would raise errors. Patch by Jelle Zijlstra.
  • Fix tests so they pass on 3.13.0b2

4.12.1

01 Jun 17:27
7269638
Compare
Choose a tag to compare
  • Preliminary changes for compatibility with the draft implementation
    of PEP 649 in Python 3.14. Patch by Jelle Zijlstra.
  • Fix regression in v4.12.0 where nested Annotated types would cause
    TypeError to be raised if the nested Annotated type had unhashable
    metadata. Patch by Alex Waygood.