Skip to content

About

Backported and experimental type hints for Python

Resources

Code of conduct

Security policy

Stars

592 stars

Watchers

17 watching

Forks

Latest commit

 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typing Extensions

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

Overview

The typing module was added to the standard library in Python 3.5 on a provisional basis and will no longer be provisional in Python 3.7. However, this means users of Python 3.5 - 3.6 who are unable to upgrade will not be able to take advantage of new types added to the typing module, such as typing.Text or typing.Coroutine.

The typing_extensions module contains both backports of these changes as well as experimental types that will eventually be added to the typing module, such as Protocol (see PEP 544 for details about protocols and static duck typing) or TypedDict (see PEP 589).

Users of other Python versions should continue to install and use use the typing module from PyPi instead of using this one unless specifically writing code that must be compatible with multiple Python versions or requires experimental types.

Included items

This module currently contains the following:

All Python versions:

  • ClassVar
  • ContextManager
  • Counter
  • DefaultDict
  • Deque
  • final
  • Final
  • Literal
  • NewType
  • NoReturn
  • overload (note that older versions of typing only let you use overload in stubs)
  • Protocol (except on Python 3.5.0)
  • runtime (except on Python 3.5.0)
  • Text
  • Type
  • TypedDict
  • TYPE_CHECKING

Python 3.4+ only:

  • ChainMap

Python 3.5+ only:

  • AsyncIterable
  • AsyncIterator
  • AsyncContextManager
  • Awaitable
  • Coroutine

Python 3.6+ only:

  • AsyncGenerator

Other Notes and Limitations

There are a few types whose interface was modified between different versions of typing. For example, typing.Sequence was modified to subclass typing.Reversible as of Python 3.5.3.

These changes are _not_ backported to prevent subtle compatibility issues when mixing the differing implementations of modified classes.

Running tests

To run tests, navigate into the appropriate source directory and run test_typing_extensions.py. You will also need to install the latest version of typing if you are using a version of Python that does not include typing as a part of the standard library.

About

Backported and experimental type hints for Python

Resources

Code of conduct

Security policy

Stars

592 stars

Watchers

17 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages