Releases: python/typing_extensions
Releases · python/typing_extensions
4.15.0
No user-facing changes since 4.15.0rc1.
New features since 4.14.1:
- Add the
@typing_extensions.disjoint_basedecorator, 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.15.0rc1
- Add the
@typing_extensions.disjoint_basedecorator, 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
Release 4.14.1 (July 4, 2025)
- Fix usage of
typing_extensions.TypedDictnested 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
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 fromtyping_extensions.Sentinel
on Python versions <3.10. PEP 604 was introduced in Python 3.10, and
typing_extensionsdoes not generally attempt to backport PEP-604 methods
to prior versions. - Further update
typing_extensions.evaluate_forward_refwith 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 oftyping.no_type_check_decoratorin Python 3.15.
Patch by Jelle Zijlstra. - Update
typing_extensions.Format,typing_extensions.evaluate_forward_ref, and
typing_extensions.TypedDictto 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.Readerandtyping_extensions.Writer. Patch by
Sebastian Rittau. - Add support for sentinels (PEP 661). Patch by
Victorien Plot.
4.14.0rc1
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 oftyping.no_type_check_decoratorin Python 3.15.
Patch by Jelle Zijlstra. - Update
typing_extensions.Format,typing_extensions.evaluate_forward_ref, and
typing_extensions.TypedDictto 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.Readerandtyping_extensions.Writer. Patch by
Sebastian Rittau. - Add support for sentinels (PEP 661). Patch by
Victorien Plot.
4.13.2
- Fix
TypeErrorwhen taking the union oftyping_extensions.TypeAliasTypeand a
typing.TypeAliasTypeon 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
This is a bugfix release fixing two edge cases that appear on old bugfix releases of CPython.
Bugfixes:
4.13.0
New features:
- Add
typing_extensions.TypeFormfrom PEP 747. Patch by
Jelle Zijlstra. - Add
typing_extensions.get_annotations, a backport of
inspect.get_annotationsthat adds features specified
by PEP 649. Patches by Jelle Zijlstra and Alex Waygood. - Backport
evaluate_forward_reffrom CPython PR
#119891 to evaluateForwardRefs.
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
TypeAliasTypeinstances could be subscripted even
where they were not generic. Patch by Daraan. - Fix bug where a subscripted
TypeAliasTypeinstance did not have all
attributes of the originalTypeAliasTypeinstance on older Python versions.
Patch by Daraan and Alex Waygood. - Fix bug where subscripted
TypeAliasTypeinstances (and some other
subscripted objects) had wrong parameters if they were directly
subscripted with anUnpackobject.
Patch by Daraan. - Backport to Python 3.10 the ability to substitute
...in genericCallable
aliases that have aConcatenatespecial form as their argument.
Patch by Daraan. - Extended the
Concatenatebackport for Python 3.8-3.10 to now accept
Ellipsisas an argument. Patch by Daraan. - Fix backport of
get_type_hintsto reflect Python 3.11+ behavior which does not add
Union[..., NoneType]to annotations that have aNonedefault value anymore.
This fixes wrapping ofAnnotatedin an unwantedOptionalin such cases.
Patch by Daraan. - Fix error in subscription of
Unpackaliases causing nested Unpacks
to not be resolved correctly. Patch by Daraan. - Backport CPython PR #124795:
fixTypeAliasTypenot raising an error on non-tuple inputs fortype_params.
Patch by Daraan. - Fix that lists and
...could not be used for parameter expressions forTypeAliasType
instances before Python 3.11.
Patch by Daraan. - Fix error on Python 3.10 when using
typing.Concatenateand
typing_extensions.Concatenatetogether. 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
TypedDictwill be overwritten by thetotalargument of theTypedDictconstructor.
Patch by Daraan, backporting a CPython PR by Jelle Zijlstra. isinstance(typing_extensions.Unpack[...], TypeVar)now evaluates toFalseon Python 3.11
and newer, but remainsTrueon versions before 3.11.
Patch by Daraan.
4.13.0rc1
New features:
- Add
typing_extensions.TypeFormfrom PEP 747. Patch by
Jelle Zijlstra. - Add
typing_extensions.get_annotations, a backport of
inspect.get_annotationsthat adds features specified
by PEP 649. Patches by Jelle Zijlstra and Alex Waygood. - Backport
evaluate_forward_reffrom CPython PR
#119891 to evaluateForwardRefs.
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
TypeAliasTypeinstances could be subscripted even
where they were not generic. Patch by Daraan. - Fix bug where a subscripted
TypeAliasTypeinstance did not have all
attributes of the originalTypeAliasTypeinstance on older Python versions.
Patch by Daraan and Alex Waygood. - Fix bug where subscripted
TypeAliasTypeinstances (and some other
subscripted objects) had wrong parameters if they were directly
subscripted with anUnpackobject.
Patch by Daraan. - Backport to Python 3.10 the ability to substitute
...in genericCallable
aliases that have aConcatenatespecial form as their argument.
Patch by Daraan. - Extended the
Concatenatebackport for Python 3.8-3.10 to now accept
Ellipsisas an argument. Patch by Daraan. - Fix backport of
get_type_hintsto reflect Python 3.11+ behavior which does not add
Union[..., NoneType]to annotations that have aNonedefault value anymore.
This fixes wrapping ofAnnotatedin an unwantedOptionalin such cases.
Patch by Daraan. - Fix error in subscription of
Unpackaliases causing nested Unpacks
to not be resolved correctly. Patch by Daraan. - Backport CPython PR #124795:
fixTypeAliasTypenot raising an error on non-tuple inputs fortype_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.Concatenateand
typing_extensions.Concatenatetogether. 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
TypedDictwill be overwritten by thetotalargument of theTypedDictconstructor.
Patch by Daraan, backporting a CPython PR by Jelle Zijlstra. - Fix for Python 3.11 that now
isinstance(typing_extensions.Unpack[...], TypeVar)
evaluates toFalse, however stillTruefor <3.11.
Patch by Daraan
4.12.2
- 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