typing_extensions

Frameworks & Libraries

typing_extensions release notes.

Latest 4.16.0 · by typing_extensionsWritten in PythonWebsitepython/typing_extensionsRSS

Release activity

Release activity — 3 releases across 3 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 20261 release on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 20261 release on Jun 25, 20261 release on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

3 releases in the last year

Changelog

4.16.0

Latest
Added 4
  • Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols
  • Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple
  • Add support for pickling sentinels
  • Add support for Python 3.15
Changed 5
  • Make typing_extensions.TypeAliasType's __module__ attribute writable
  • Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec and improve the validation of these parameters at runtime
  • Rename typing_extensions.Sentinel to typing_extensions.sentinel following the name adopted for builtins.sentinel on Python 3.15, with typing_extensions.Sentinel retained as a soft-deprecated alias
  • Sentinels now preserve their identity when copied or deep-copied
  • The default repr of a sentinel X = sentinel("X") is now X rather than <X>
Fixed 5
  • Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name
  • Fix incorrect behaviour on Python 3.9 and Python 3.10 where calling isinstance with typing_extensions.Concatenate or typing_extensions.Unpack as the first argument could produce different results depending on whether a profiling function had been set using sys.setprofile
  • Fix __init_subclass__() behavior in the presence of multiple inheritance involving a @deprecated-decorated base class
  • Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9
  • Avoid a DeprecationWarning when deprecated is applied to a coroutine function on Python 3.14.0
Deprecated 3
  • Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor
  • Deprecate arbitrary attribute assignments to sentinels
  • Deprecate subclassing sentinels

From typing_extensions

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.
View originalPermalink
How 4.16.0 went

4.16.0rc2

Pre-release
Added 4
  • Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols
  • Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple
  • Add support for pickling sentinels
  • Add support for Python 3.15
Changed 5
  • Make typing_extensions.TypeAliasType's __module__ attribute writable
  • Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec and improve validation of these parameters at runtime
  • Rename typing_extensions.Sentinel to typing_extensions.sentinel with typing_extensions.Sentinel retained as a soft-deprecated alias
  • Sentinels now preserve their identity when copied or deep-copied
  • Change the default repr of a sentinel to the sentinel's name rather than angle-bracketed name
Fixed 5
  • Avoid a DeprecationWarning when deprecated is applied to a coroutine function on Python 3.14.0
  • Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name
  • Fix incorrect behaviour on Python 3.9 and Python 3.10 when calling isinstance with typing_extensions.Concatenate or typing_extensions.Unpack as the first argument that could have different results depending on whether a profiling function had been set using sys.setprofile
  • Fix __init_subclass__() behavior in the presence of multiple inheritance involving an @deprecated-decorated base class
  • Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9
Deprecated 3
  • Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor
  • Deprecate arbitrary attribute assignments to sentinels
  • Deprecate subclassing sentinels

From typing_extensions

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.
View originalPermalink
How 4.16.0rc2 went

4.16.0rc1

Pre-release
Added 5
  • Add support for AsyncIterator, io.Reader, io.Writer and os.PathLike protocols as bases for other protocols
  • Add the bound, covariant, contravariant, and infer_variance parameters to TypeVarTuple
  • Officially support the bound, covariant, contravariant and infer_variance parameters to ParamSpec and improve validation of these parameters at runtime
  • Add support for pickling sentinels
  • Add support for Python 3.15
Changed 5
  • Make typing_extensions.TypeAliasType's __module__ attribute writable
  • Raise TypeError when attempting to subclass typing_extensions.ParamSpec on Python 3.9
  • Rename typing_extensions.Sentinel to typing_extensions.sentinel, retaining Sentinel as a soft-deprecated alias for backwards compatibility
  • Sentinels now preserve their identity when copied or deep-copied
  • The default repr of a sentinel X = sentinel("X") is now X rather than <X>
Fixed 3
  • Fix setting of __required_keys__ and __optional_keys__ when inheriting keys with the same name
  • Fix incorrect behaviour on Python 3.9 and Python 3.10 where calling isinstance with typing_extensions.Concatenate or typing_extensions.Unpack as the first argument could have different results depending on whether a profiling function had been set using sys.setprofile
  • Fix __init_subclass__() behavior in the presence of multiple inheritance involving a @deprecated-decorated base class
Deprecated 3
  • Deprecate passing name as a keyword argument or repr as a positional argument to the sentinel constructor
  • Deprecate arbitrary attribute assignments to sentinels
  • Deprecate subclassing sentinels

From typing_extensions

  • 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.
View originalPermalink
How 4.16.0rc1 went

4.15.0

Added 2
  • Add the @typing_extensions.disjoint_base decorator, as specified in PEP 800
  • Add typing_extensions.type_repr, a backport of annotationlib.type_repr introduced in Python 3.14
Fixed 1
  • Fix behavior of type params in typing_extensions.evaluate_forward_ref

From typing_extensions

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.
View originalPermalink
How 4.15.0 went

4.15.0rc1

Pre-release
Added 2
  • Add the @typing_extensions.disjoint_base decorator, as specified in PEP 800
  • Add typing_extensions.type_repr, a backport of annotationlib.type_repr introduced in Python 3.14
Fixed 1
  • Fix behavior of type params in typing_extensions.evaluate_forward_ref

From typing_extensions

  • 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.
View originalPermalink
How 4.15.0rc1 went

4.14.1

Fixed 1
  • Fix usage of typing_extensions.TypedDict nested inside other types (e.g., typing.Type[typing_extensions.TypedDict])

From typing_extensions

  • 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.
View originalPermalink
How 4.14.1 went

4.14.0

Added 3
  • Add support for inline typed dictionaries (PEP 764)
  • Add typing_extensions.Reader and typing_extensions.Writer
  • Add support for sentinels (PEP 661)
Changed 2
  • Update typing_extensions.Format, typing_extensions.evaluate_forward_ref, and typing_extensions.TypedDict to align with changes in Python 3.14
  • 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
Removed 2
  • Drop support for Python 3.8
  • Remove __or__ and __ror__ methods from typing_extensions.Sentinel on Python versions <3.10

From typing_extensions

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.
View originalPermalink
How 4.14.0 went

4.14.0rc1

Pre-release
Added 3
  • Add support for inline typed dictionaries (PEP 764)
  • Add typing_extensions.Reader and typing_extensions.Writer
  • Add support for sentinels (PEP 661)
Changed 2
  • 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
  • Update typing_extensions.Format, typing_extensions.evaluate_forward_ref, and typing_extensions.TypedDict to align with changes in Python 3.14
Fixed 1
  • Fix tests for Python 3.14 and 3.15
Removed 1
  • Drop support for Python 3.8 (including PyPy-3.8)

From typing_extensions

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.
View originalPermalink
How 4.14.0rc1 went

4.13.2

Fixed 2
  • Fix TypeError when taking the union of typing_extensions.TypeAliasType and a typing.TypeAliasType on Python 3.12 and 3.13
  • Avoid having user arguments shadowed in generated __new__ by @typing_extensions.deprecated

From typing_extensions

  • 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.
View originalPermalink
How 4.13.2 went

4.13.1

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

From typing_extensions

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.
View originalPermalink
How 4.13.1 went
View all

Discussion

If you publish typing_extensions, you can claim this product by proving you administer its repository.