The typing_extensions module serves two related purposes:
Enable use of new type system features on older Python versions. For example,
typing.TypeGuard is new in Python 3.10, but typing_extensions allows
users on previous Python versions to use it too.
Enable experimentation with new type system PEPs before they are accepted and
added to the typing module.
typing_extensions is treated specially by static type checkers such as
mypy and pyright. Objects defined in typing_extensions are treated the same
way as equivalent forms in typing.
typing_extensions uses
Semantic Versioning. The
major version will be incremented only for backwards-incompatible changes.
Therefore, it’s safe to depend
on typing_extensions like this: typing_extensions ~=x.y,
where x.y is the first version that includes all features you need.
This
is equivalent to typing_extensions >=x.y, <(x+1). Do not depend on ~= x.y.z
unless you really know what you’re doing; that defeats the purpose of
semantic versioning.
Typing Extensions
Documentation – PyPI
Overview
The
typing_extensionsmodule serves two related purposes:typing.TypeGuardis new in Python 3.10, buttyping_extensionsallows users on previous Python versions to use it too.typingmodule.typing_extensionsis treated specially by static type checkers such as mypy and pyright. Objects defined intyping_extensionsare treated the same way as equivalent forms intyping.typing_extensionsuses Semantic Versioning. The major version will be incremented only for backwards-incompatible changes. Therefore, it’s safe to depend ontyping_extensionslike this:typing_extensions ~=x.y, wherex.yis the first version that includes all features you need. This is equivalent totyping_extensions >=x.y, <(x+1). Do not depend on~= x.y.zunless you really know what you’re doing; that defeats the purpose of semantic versioning.Included items
See the documentation for a complete listing of module contents.
Contributing
See CONTRIBUTING.md for how to contribute to
typing_extensions.