Skip to content
Collection of awesome Python types, stubs, plugins, and tools to work with them.
Branch: master
Clone or download
estaub and orsinium Add typing doc, typing-json, typingplus, typet ... (#30)
* Add typing doc, typing-json, typingplus, typet ...

and a "state of type hints" article.  

Fixes #29

* Fix lint
Latest commit 3db15a6 Nov 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Sep 10, 2019
.travis.yml Closes #18, closes #20 Sep 19, 2019
LICENSE Update LICENSE Sep 11, 2019 Add typing doc, typing-json, typingplus, typet ... (#30) Nov 8, 2019 Closes #18, closes #20 Sep 19, 2019
package-lock.json Closes #18, closes #20 Sep 19, 2019
package.json Closes #18, closes #20 Sep 19, 2019

Awesome Python Typing Awesome Gitter

Collection of awesome Python types, stubs, plugins, and tools to work with them.


Static type checkers

  • mypy - Optional static typing for Python 3 and 2 (PEP 484).
  • pyre - Performant type-checker for Python 3.
  • pytype - Tool to check and infer types for Python code - without requiring type annotations.
  • PyCharm - IDE for Professional Developers.
  • pyright - Fast type checker meant for large Python source bases. It can run in a “watch” mode and performs fast incremental updates when files are modified.

Dynamic type checkers

  • pytypes - Provides a rich set of utilities for runtime typechecking.
  • pydantic - Data parsing using Python type hinting. Supports dataclasses.
  • typeguard - Another one runtime type checker.

Stub packages

Backports and improvements

  • typed-ast - Modified fork of CPython's ast module that parses # type: comments.
  • typing-extensions - Backported and experimental type hints.
  • typingplus - Backport support, dynamic is_instance and cast for abstract types.
  • typet - Length-bounded types, dynamic object validation.




Working with types

  • MonkeyType - Collects runtime types of function arguments and return values, and can automatically generate stub files or even add draft type annotations directly to your Python code based on the types collected at runtime.
  • merge_pyi - Part of pytype toolchain, applies stub files onto source code.
  • retype - Another tool to apply stubs to code.
  • mypy-protobuf - Tool to generate mypy stubs from protobufs.
  • mypyc - Compiles mypy-annotated, statically typed Python modules into CPython C extensions.
  • typing_inspect - The typing_inspect module defines experimental API for runtime inspection of types defined in the Python standard typing module.
  • typing-json - Lib for working with typed objects and JSON.

Mypy plugins




  • PEP-483 - About type hints theory.
  • PEP-484 - About type annotations.
  • PEP-544 - About protocols.
  • PEP-561 - About distributing and packaging type information.
  • PEP-563 - About postponed evaluation of annotations.
  • PEP-586 - About literal types.
  • PEP-3107 - About function annotations.

Python docs

  • typing - Support for type hints.

Tools' docs

  • MyPy docs - General information about stubs.

Third-party articles



  • awesome-python - Curated list of awesome Python frameworks, libraries, software and resources.
  • python-typecheckers - List of Python type checkers: static and runtime.


CC BY-SA 4.0

You can’t perform that action at this time.