unstale

pypi / typing-extensions

typing-extensions

What changed in typing-extensions 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

1 breaking5 deprecations7 new APIs and options5 behavior and defaults8 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

typing-extensions 426 changes

Breaking changes 1

  • Attempting to subclass ParamSpec now raises TypeError on Python 3.9, matching the typing implementation.

    4.16.0release notes

Deprecations 5

  • The public name is now typing_extensions.sentinel; typing_extensions.Sentinel remains as a soft-deprecated compatibility alias.

    4.16.0release notes

  • Arbitrary attribute assignments to sentinels are deprecated.

    4.16.0release notes

  • Passing name as a keyword argument to the sentinel constructor is deprecated.

    4.16.0release notes

  • Passing repr as a positional argument to the sentinel constructor is deprecated.

    4.16.0release notes

  • Subclassing sentinels is deprecated.

    4.16.0release notes

New APIs and options 7

  • The contravariant parameter is officially supported and its runtime validation is improved.

    4.16.0release notes

  • The covariant parameter is officially supported and its runtime validation is improved.

    4.16.0release notes

  • AsyncIterator, io.Reader, io.Writer and os.PathLike protocols can now be used as bases for other protocols.

    4.16.0release notes

  • TypeVarTuple now accepts the bound parameter.

    4.16.0release notes

  • TypeVarTuple now accepts the contravariant parameter.

    4.16.0release notes

  • TypeVarTuple now accepts the covariant parameter.

    4.16.0release notes

  • TypeVarTuple now accepts the infer_variance parameter.

    4.16.0release notes

Behavior and default changes 5

  • The bound parameter is officially supported and its runtime validation is improved.

    4.16.0release notes

  • The infer_variance parameter is officially supported and its runtime validation is improved.

    4.16.0release notes

  • Sentinels can now be pickled.

    4.16.0release notes

  • The default repr of a sentinel created as X = sentinel("X") is now X rather than <X>.

    4.16.0release notes

  • The __module__ attribute is now writable.

    4.16.0release notes

Fixes and other changes 8

  • On Python 3.9 and 3.10, isinstance results no longer vary depending on whether a profiling function is set.

    4.16.0release notes

  • Applying deprecated to a coroutine function on Python 3.14.0 no longer emits a DeprecationWarning.

    4.16.0release notes

  • Behavior is fixed for multiple inheritance involving an @deprecated-decorated base class.

    4.16.0release notes

  • Key setting is fixed when inheriting keys with the same name.

    4.16.0release notes

  • Python 3.15 is now officially supported.

    4.16.0release notes

  • Key setting is fixed when inheriting keys with the same name.

    4.16.0release notes

  • Sentinels now preserve their identity when copied or deep-copied.

    4.16.0release notes

  • On Python 3.9 and 3.10, isinstance results no longer vary depending on whether a profiling function is set.

    4.16.0release notes