Enable type system features on older Python and experiment with new type system PEPs

Clone this repo:
  1. 99fa708 Backport CPython PR 107584 (#275) by Alex Waygood · 9 months ago main
  2. 688fbd2 Revert "Skip running `cattrs` tests on PyPy (#272)" (#273) by Alex Waygood · 9 months ago
  3. 8dfa0a5 Skip running `cattrs` tests on PyPy (#272) by Alex Waygood · 10 months ago
  4. 7bb3f3f Fix third-party workflow (#269) by Alex Waygood · 10 months ago
  5. 8860c6a Drop support for Python 3.7 (#267) by Alex Waygood · 10 months ago

Typing Extensions

Chat at https://gitter.im/python/typing

DocumentationPyPI

Overview

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, <(x+1), where x.y is the first version that includes all features you need.

Included items

See the documentation for a complete listing of module contents.

Contributing

See CONTRIBUTING.md for how to contribute to typing_extensions.