Mypy: Optional Static Typing for Python

Mypy is an optional static type checker for Python. You can add type hints to your Python programs using the standard for type annotations introduced in Python 3.5 (PEP 484), and use mypy to type check them statically. Find bugs in your programs without even running them!

The type annotation standard has also been backported to earlier Python 3.x versions. Mypy supports Python 3.2 and later.

For Python 2.7, you can add annotations as comments (this is also specified in PEP 484).

You can mix dynamic and static typing in your programs. You can always fall back to dynamic typing when static typing is not convenient, such as for legacy code.