Releases: python/typing_extensions
Releases · python/typing_extensions
4.16.0
Sorry, something went wrong.
No results found
No changes since 4.16.0rc2.
Changes since 4.15.0:
- Make typing_extensions.TypeAliasType's __module__ attribute writable. Backport of CPython PR #149172.
- Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name.
- Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols.
- Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling isinstance with typing_extensions.Concatenate[...] or typing_extensions.Unpack[...] as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using sys.setprofile. This affected both CPython and PyPy implementations. Patch by Brian Schubert.
- Fix __init_subclass__() behavior in the presence of multiple inheritance involving an @deprecated-decorated base class. Backport of CPython PR #138210 by Brian Schubert.
- Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9. The typing implementation has always raised an error, and the typing_extensions implementation has raised an error on Python 3.10+ since typing_extensions v4.6.0. Patch by Brian Schubert.
- Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple.
- Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec. Improve the validation of these parameters at runtime.
- Rename typing_extensions.Sentinel to typing_extensions.sentinel, following the name that has been adopted for builtins.sentinel on Python 3.15. typing_extensions.Sentinel is retained as a soft-deprecated alias for backwards compatibility.
- Add support for pickling sentinels.
- Sentinels now preserve their identity when copied or deep-copied.
- Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor.
- The default repr of a sentinel X = sentinel("X") is now X rather than <X>.
- Deprecate arbitrary attribute assignments to sentinels.
- Deprecate subclassing sentinels.
- Add support for Python 3.15.
- Avoid a DeprecationWarning when deprecated is applied to a coroutine function on Python 3.14.0.
4.16.0rc2
Sorry, something went wrong.
No results found
Changes since 4.16.0rc1:
- Avoid a DeprecationWarning when deprecated is applied to a coroutine function on Python 3.14.0.
Changes since 4.15.0:
- Make typing_extensions.TypeAliasType's __module__ attribute writable. Backport of CPython PR #149172.
- Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name.
- Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols.
- Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling isinstance with typing_extensions.Concatenate[...] or typing_extensions.Unpack[...] as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using sys.setprofile. This affected both CPython and PyPy implementations. Patch by Brian Schubert.
- Fix __init_subclass__() behavior in the presence of multiple inheritance involving an @deprecated-decorated base class. Backport of CPython PR #138210 by Brian Schubert.
- Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9. The typing implementation has always raised an error, and the typing_extensions implementation has raised an error on Python 3.10+ since typing_extensions v4.6.0. Patch by Brian Schubert.
- Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple.
- Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec. Improve the validation of these parameters at runtime.
- Rename typing_extensions.Sentinel to typing_extensions.sentinel, following the name that has been adopted for builtins.sentinel on Python 3.15. typing_extensions.Sentinel is retained as a soft-deprecated alias for backwards compatibility.
- Add support for pickling sentinels.
- Sentinels now preserve their identity when copied or deep-copied.
- Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor.
- The default repr of a sentinel X = sentinel("X") is now X rather than <X>.
- Deprecate arbitrary attribute assignments to sentinels.
- Deprecate subclassing sentinels.
- Add support for Python 3.15.
4.16.0rc1
Sorry, something went wrong.
No results found
- Make typing_extensions.TypeAliasType's __module__ attribute writable. Backport of CPython PR #149172.
- Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name.
- Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols.
- Fix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling isinstance with typing_extensions.Concatenate[...] or typing_extensions.Unpack[...] as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using sys.setprofile. This affected both CPython and PyPy implementations. Patch by Brian Schubert.
- Fix __init_subclass__() behavior in the presence of multiple inheritance involving an @deprecated-decorated base class. Backport of CPython PR #138210 by Brian Schubert.
- Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9. The typing implementation has always raised an error, and the typing_extensions implementation has raised an error on Python 3.10+ since typing_extensions v4.6.0. Patch by Brian Schubert.
- Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple.
- Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec. Improve the validation of these parameters at runtime.
- Rename typing_extensions.Sentinel to typing_extensions.sentinel, following the name that has been adopted for builtins.sentinel on Python 3.15. typing_extensions.Sentinel is retained as a soft-deprecated alias for backwards compatibility.
- Add support for pickling sentinels.
- Sentinels now preserve their identity when copied or deep-copied.
- Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor.
- The default repr of a sentinel X = sentinel("X") is now X rather than <X>.
- Deprecate arbitrary attribute assignments to sentinels.
- Deprecate subclassing sentinels.
- Add support for Python 3.15.
4.15.0
Sorry, something went wrong.
No results found
No user-facing changes since 4.15.0rc1.
New features since 4.14.1:
- 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.15.0rc1
Sorry, something went wrong.
No results found
- 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
Sorry, something went wrong.
No results found
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
Sorry, something went wrong.
No results found
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
Sorry, something went wrong.
No results found
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
Sorry, something went wrong.
No results found
- 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
Sorry, something went wrong.
No results found
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.