Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ethanhs/python-typecheckers

A list of Python type checkers (PEP 484 compliant and not, static and runtime/dynamic)
https://github.com/ethanhs/python-typecheckers

Last synced: 28 days ago
JSON representation

A list of Python type checkers (PEP 484 compliant and not, static and runtime/dynamic)

Awesome Lists containing this project

README

        

About
=====
This is a file to keep track of all of the type checkers that exist for Python. They are grouped into one of four catagories classified by whether or not they use PEP 484 syntax, and if they are static or dynamic.

## PEP 484 syntax

### Static

- [mypy](https://github.com/python/mypy)
- [pyre](https://pyre-check.org/)
- [pytype](https://github.com/google/pytype)
- [PyCharm](https://www.jetbrains.com/pycharm/)
- [pyright](https://github.com/Microsoft/pyright)

### Dynamic/Runtime

- [enforce](https://github.com/RussBaz/enforce)
- [typeguard](https://github.com/agronholm/typeguard)
- [typo](https://github.com/aldanor/typo)
- [beartype](https://github.com/beartype/beartype)
- [ducktype](https://github.com/OaklandPeters/ducktype) (Python 2 only?)
- [strictconf](https://github.com/vmagamedov/strictconf)
- [pytypecheck](https://github.com/Ran4/pytypecheck)
- [pytypechecker](https://github.com/marcharper/pytypechecker)
- [strict-hint](https://github.com/potfur/strict-hint)
- [typesentry](https://github.com/st-pasha/typesentry)
- [runtime_type_checks](https://github.com/petrbel/runtime_type_checks)
- [checktype](https://github.com/emludei/checktype)
- [py_type](https://github.com/aberkley/py_type)
- [magic-constraints](https://github.com/huntzhan/magic-constraints)
- [pydantic](https://github.com/samuelcolvin/pydantic)
- [typical](https://typical.seandstewart.io)
- [typity](https://github.com/isidentical/typity)
- [runtype](https://github.com/erezsh/runtype)

## Other syntax

### Static

- [python3_types_checker](https://github.com/victor-yacovlev/python3_types_checker)
- [python-stc](https://github.com/edreamleo/python-stc)
- [Pyty](https://github.com/jruberg/Pyty)

### Dynamic/Runtime

- [icanhaztypecheck](https://github.com/pythononwheels/icanhastypecheck)
- [stifle](https://github.com/joshpurvis/stifle)
- [compliance](https://github.com/vrakesh/Complaince)
- [pavlov](https://github.com/keeler/pavlov)
- [dtype-decorate](https://github.com/mmaelicke/dtype-decorate)
- [safetynet](https://github.com/denniskempin/safetynet)
- [promises](https://github.com/zeeman/promises)
- [promises](https://github.com/eugene-eeo/promises)
- [tychonov](https://github.com/squidsrc/tychonov)
- [accepts.py](https://github.com/brunobell/accepts.py)
- [python-typeutils](https://github.com/siddhuwarrier/python-typeutils)
- [python-typesafe](https://github.com/mirainc/python-typesafe) (Python 2 only?)
- [enforce_types](https://github.com/skftn/enforce_types)
- [typecheck.py](https://github.com/Bad-ptr/typecheck.py)
- [typist](https://github.com/dstanek/typist)
- [python-typesafety](https://github.com/JustusAdam/python-typesafety)
- [typecheck](https://github.com/targeted/typecheck)
- [typedecorator](https://github.com/dobarkod/typedecorator)
- [pysynthetic](https://github.com/wishtack/pysynthetic)
- [TypeChecker](https://github.com/mlsteele/TypeChecker)
- [type_check.py](https://github.com/jhpratt/type_check.py)
- [relaxed_types](https://github.com/Yipit/relaxed_types)
- [obiwan](https://github.com/williame/obiwan)

# Other useful tools/libraries

- [stubgen](https://github.com/dhood/stubgen) (not to be confused with mypy's)
- [typeassert](https://github.com/renaud/typeassert)