38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Typing Extensions
|
||
|
||
[](https://gitter.im/python/typing)
|
||
|
||
[Documentation](https://typing-extensions.readthedocs.io/en/latest/#) –
|
||
[PyPI](https://pypi.org/project/typing-extensions/)
|
||
|
||
## 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](https://semver.org/). 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](https://typing-extensions.readthedocs.io/en/latest/#) for a
|
||
complete listing of module contents.
|
||
|
||
## Contributing
|
||
|
||
See [CONTRIBUTING.md](https://github.com/python/typing_extensions/blob/main/CONTRIBUTING.md)
|
||
for how to contribute to `typing_extensions`.
|