210 lines
31 KiB
Plaintext
210 lines
31 KiB
Plaintext
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Python Typing [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge-flat2.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re) [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mGitter[0m[38;5;14m[1m[4m (https://img.shields.io/gitter/room/mypy-django/Lobby?color=9cf&style=flat-square)[0m[38;2;255;187;0m[1m[4m (https://gitter.im/mypy-django/Lobby?source=title)[0m
|
||
|
||
[38;5;12mCollection of awesome Python types, stubs, plugins, and tools to work with them.[39m
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mStatic type checkers[0m[38;5;12m (#static-type-checkers)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mDynamic type checkers[0m[38;5;12m (#dynamic-type-checkers)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mStub packages[0m[38;5;12m (#stub-packages)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAdditional types[0m[38;5;12m (#additional-types)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mBackports and improvements[0m[38;5;12m (#backports-and-improvements)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTools[0m[38;5;12m (#tools)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mIntegrations[0m[38;5;12m (#integrations)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mArticles[0m[38;5;12m (#articles)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mCommunities[0m[38;5;12m (#communities)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mRelated[0m[38;5;12m (#related)[39m
|
||
|
||
[38;5;14m[1mFull list of typed projects on PyPi[0m[38;5;12m (https://pypi.org/search/?q=&o=&c=Typing+%3A%3A+Typed) is here.[39m
|
||
|
||
[38;2;255;187;0m[4mStatic type checkers[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mbasedmypy[0m[38;5;12m (https://github.com/KotlinIsland/basedmypy) - Based static typing with baseline functionality.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mbasedpyright[0m[38;5;12m (https://github.com/detachhead/basedpyright) - Pyright fork with improvements to VSCode support and various other fixes.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy[0m[38;5;12m (https://github.com/python/mypy) - Optional static typing (PEP 484).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpyanalyze[0m[38;5;12m (https://github.com/quora/pyanalyze) - Extensible static analyzer and type checker.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpycharm[0m[38;5;12m (https://www.jetbrains.com/pycharm/) - IDE for Professional Developers.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpylyzer[0m[38;5;12m (https://github.com/mtshiba/pylyzer/) - A fast static code analyzer & language server for Python, written in Rust.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpyre[0m[38;5;12m (https://pyre-check.org/) - Performant type-checker.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpyright[0m[38;5;12m (https://github.com/Microsoft/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.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytype[0m[38;5;12m (https://github.com/google/pytype) - Tool to check and infer types - without requiring type annotations.[39m
|
||
|
||
[38;2;255;187;0m[4mDynamic type checkers[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mbeartype[0m[38;5;12m (https://github.com/beartype/beartype) - Unbearably fast [39m[48;5;235m[38;5;249mO(1)[49m[39m[38;5;12m runtime type-checking in pure Python.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpydantic[0m[38;5;12m (https://github.com/samuelcolvin/pydantic) - Data parsing using Python type hinting. Supports dataclasses.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytypes[0m[38;5;12m (https://github.com/Stewori/pytypes) - Provides a rich set of utilities for runtime typechecking.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mstrongtyping[0m[38;5;12m (https://github.com/FelixTheC/strongtyping) - Decorator which checks whether the function is called with the correct type of parameters.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypedpy[0m[38;5;12m (https://github.com/loyada/typedpy) - Type-safe, strict Python. Works well with standard Python.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypeguard[0m[38;5;12m (https://github.com/agronholm/typeguard) - Another one runtime type checker.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypical[0m[38;5;12m (https://github.com/seandstewart/typical/) - Data parsing and automatic type-coercion using type hinting. Supports dataclasses, standard classes, function signatures, and more.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtrycast[0m[38;5;12m (https://github.com/davidfstr/trycast) - Parse JSON-like values whose shape is defined by typed dictionaries (TypedDicts) and other standard Python type hints.[39m
|
||
|
||
[38;2;255;187;0m[4mStub packages[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1masgiref[0m[38;5;12m (https://github.com/django/asgiref) - ASGI specification, provides [39m[38;5;14m[1masgiref.typing[0m[38;5;12m (https://github.com/django/asgiref/blob/main/asgiref/typing.py) module with type annotations for ASGI servers.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mboto3-stubs[0m[38;5;12m (https://vemel.github.io/boto3_stubs_docs/) - Stubs for [39m[38;5;14m[1mboto3[0m[38;5;12m (https://github.com/boto/boto3).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mbotostubs[0m[38;5;12m (https://github.com/jeshan/botostubs) - Gives you code assistance for any boto3 API in any IDE.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mcelery-types[0m[38;5;12m [39m[38;5;12m(https://github.com/sbdchd/celery-types)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m[38;5;12mstubs[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;14m[1mCelery[0m[38;5;12m [39m[38;5;12m(https://github.com/celery/celery)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mrelated[39m[38;5;12m [39m[38;5;12mpackages[39m[38;5;12m [39m[38;5;14m[1mdjango-celery-results[0m[38;5;12m [39m[38;5;12m(https://github.com/celery/django-celery-results),[39m[38;5;12m [39m[38;5;14m[1mampq[0m[38;5;12m [39m
|
||
[38;5;12m(https://github.com/celery/py-amqp),[39m[38;5;12m [39m[38;5;14m[1mkombu[0m[38;5;12m [39m[38;5;12m(https://github.com/celery/kombu),[39m[38;5;12m [39m[38;5;14m[1mbilliard[0m[38;5;12m [39m[38;5;12m(https://github.com/celery/billiard),[39m[38;5;12m [39m[38;5;14m[1mvine[0m[38;5;12m [39m[38;5;12m(https://github.com/celery/vine)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mephem[0m[38;5;12m [39m[38;5;12m(https://github.com/brandon-rhodes/pyephem).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mdjango-stubs[0m[38;5;12m (https://github.com/typeddjango/django-stubs) - Stubs for [39m[38;5;14m[1mDjango[0m[38;5;12m (https://github.com/django/django).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mdjangorestframework-stubs[0m[38;5;12m (https://github.com/typeddjango/djangorestframework-stubs) - Stubs for [39m[38;5;14m[1mDRF[0m[38;5;12m (https://github.com/encode/django-rest-framework).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mgrpc-stubs[0m[38;5;12m (https://github.com/shabbyrobe/grpc-stubs) - Stubs for [39m[38;5;14m[1mgrpc[0m[38;5;12m (https://github.com/grpc/grpc).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mlxml-stubs[0m[38;5;12m (https://github.com/lxml/lxml-stubs) - Stubs for [39m[38;5;14m[1mlxml[0m[38;5;12m (https://lxml.de).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPyQt5-stubs[0m[38;5;12m (https://github.com/stlehmann/PyQt5-stubs) - Stubs for [39m[38;5;14m[1mPyQt5[0m[38;5;12m (https://www.riverbankcomputing.com/software/pyqt/intro).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpython-phonenumbers-stubs[0m[38;5;12m (https://github.com/AA-Turner/python-phonenumbers-stubs) - Stubs for [39m[38;5;14m[1mphonenumbers[0m[38;5;12m (https://github.com/daviddrysdale/python-phonenumbers).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpythonista-stubs[0m[38;5;12m (https://github.com/hbmartin/pythonista-stubs) - Stubs for [39m[38;5;14m[1mPythonista[0m[38;5;12m (http://omz-software.com/pythonista/docs/ios/).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mscipy-stubs[0m[38;5;12m (https://github.com/jorenham/scipy-stubs) - Stubs for [39m[38;5;14m[1mSciPy[0m[38;5;12m (https://github.com/scipy/scipy).[39m
|
||
[38;5;12m- [39m[38;5;14m[1msqlalchemy-stubs[0m[38;5;12m (https://github.com/dropbox/sqlalchemy-stubs) - Stubs for [39m[38;5;14m[1mSQLAlchemy[0m[38;5;12m (https://github.com/sqlalchemy/sqlalchemy).[39m
|
||
[38;5;12m- [39m[38;5;14m[1msqlalchemy2-stubs[0m[38;5;12m (https://docs.sqlalchemy.org/en/14/orm/extensions/mypy.html) - Official stubs and mypy plugin for [39m[38;5;14m[1mSQLAlchemy[0m[38;5;12m (https://www.sqlalchemy.org).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtorchtyping[0m[38;5;12m (https://github.com/patrick-kidger/torchtyping) - Enhanced type annotations for [39m[38;5;14m[1mpytorch[0m[38;5;12m (https://pytorch.org/).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypes-aiobotocore[0m[38;5;12m (https://vemel.github.io/types_aiobotocore_docs/) - Stubs for [39m[38;5;14m[1maiobotocore[0m[38;5;12m (https://github.com/aio-libs/aiobotocore).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypeshed[0m[38;5;12m (https://github.com/python/typeshed) - Collection of library stubs, with static types.[39m
|
||
|
||
[38;2;255;187;0m[4mAdditional types[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mmeiga[0m[38;5;12m (https://github.com/alice-biometrics/meiga) - Simple, typed and monad-based Result type.[39m
|
||
[38;5;12m- [39m[38;5;14m[1moption[0m[38;5;12m (https://github.com/MaT1g3R/option) - Rust like Option and Result types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1moptype[0m[38;5;12m (https://github.com/jorenham/optype) - Opinionated [39m[48;5;235m[38;5;249mcollections.abc[49m[39m[38;5;12m and [39m[48;5;235m[38;5;249moperators[49m[39m[38;5;12m alternative: Flexible single-method protocols and typed operators with predictable names.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mphantom-types[0m[38;5;12m (https://github.com/antonagestam/phantom-types) - Phantom types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mreturns[0m[38;5;12m (https://github.com/dry-python/returns) - Make your functions return something meaningful, typed, and safe.[39m
|
||
[38;5;12m- [39m[38;5;14m[1msafetywrap[0m[38;5;12m (https://github.com/mplanchard/safetywrap) - Fully typesafe, Rust-like Result and Option types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypet[0m[38;5;12m (https://github.com/contains-io/typet) - Length-bounded types, dynamic object validation.[39m
|
||
[38;5;12m- [39m[38;5;14m[1museful-types[0m[38;5;12m (https://github.com/hauntsaninja/useful_types) - Collection of useful protocols and type aliases.[39m
|
||
|
||
[38;2;255;187;0m[4mBackports and improvements[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mfuture-typing[0m[38;5;12m (https://github.com/PrettyWood/future-typing) - Backport for type hinting generics in standard collections and union types as [39m[48;5;235m[38;5;249mX | Y[49m[39m[38;5;12m.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtyping-extensions[0m[38;5;12m (https://github.com/python/typing_extensions) - Backported and experimental type hints.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtyping-utils[0m[38;5;12m (https://github.com/bojiang/typing_utils) - Backport 3.8+ runtime typing utils(for eg: get_origin) & add issubtype & more.[39m
|
||
|
||
[38;2;255;187;0m[4mTools[0m
|
||
|
||
[38;2;255;187;0m[4mLinters[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-annotations-complexity[0m[38;5;12m (https://github.com/best-doctor/flake8-annotations-complexity) - Plugin for flake8 to validate annotations complexity.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-annotations[0m[38;5;12m (https://github.com/sco1/flake8-annotations) - Plugin for flake8 to check for presence of type annotations in function definitions.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-pyi[0m[38;5;12m (https://github.com/ambv/flake8-pyi) - Plugin for Flake8 that provides specializations for type hinting stub files.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-type-checking[0m[38;5;12m (https://github.com/snok/flake8-type-checking) - Plugin to help you guard any type-annotation-only import correctly.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-typing-imports[0m[38;5;12m (https://github.com/asottile/flake8-typing-imports) - Plugin which checks that typing imports are properly guarded.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-typing-only-imports[0m[38;5;12m (https://github.com/sondrelg/flake8-typing-only-imports) - flake8 plugin that helps identify which imports to put into type-checking blocks, and how to adjust your type annotations once imports are moved.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mflake8-type-ignore[0m[38;5;12m (https://gitlab.com/jonafato/flake8-type-ignore/) - flake8 plugin to disallow type: ignore comments in your typed Python code.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mwemake-python-styleguide[0m[38;5;12m (https://github.com/wemake-services/wemake-python-styleguide) - The strictest and most opinionated Python linter ever.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mRuff[0m[38;5;12m (https://github.com/astral-sh/ruff/) - Extremely fast linter which supports lint rules from many other lint tools, such as flake8.[39m
|
||
|
||
[38;2;255;187;0m[4mTesting[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-test[0m[38;5;12m (https://github.com/orsinium-labs/mypy-test) - Test mypy plugins, stubs, custom types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytest-mypy-plugins[0m[38;5;12m (https://github.com/typeddjango/pytest-mypy-plugins) - Pytest plugin for testing mypy types, stubs, and plugins.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytest-mypy-testing[0m[38;5;12m (https://github.com/davidfritzsche/pytest-mypy-testing) - Pytest plugin to test mypy static type analysis.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytest-mypy[0m[38;5;12m (https://github.com/dbader/pytest-mypy) - Mypy static type checker plugin for Pytest.[39m
|
||
|
||
[38;2;255;187;0m[4mWorking with types[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mcom2ann[0m[38;5;12m (https://github.com/ilevkivskyi/com2ann) - Tool for translation of type comments to type annotations.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmerge-pyi[0m[38;5;12m (https://github.com/google/pytype/tree/master/pytype/tools/merge_pyi) - Part of pytype toolchain, applies stub files onto source code.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-baseline[0m[38;5;12m (https://github.com/orsinium-labs/mypy-baseline) - Integrate mypy with existing codebase. A CLI tool that filters out existing type errors and reports only new ones.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-protobuf[0m[38;5;12m (https://github.com/dropbox/mypy-protobuf) - Tool to generate mypy stubs from protobufs.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-silent[0m[38;5;12m (https://github.com/whtsky/mypy-silent/) - Silence mypy by adding or removing code comments.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypyc[0m[38;5;12m (https://github.com/python/mypy/tree/master/mypyc) - Compiles mypy-annotated, statically typed Python modules into CPython C extensions.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mretype[0m[38;5;12m (https://github.com/ambv/retype) - Another tool to apply stubs to code.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypeforce[0m[38;5;12m (https://github.com/orsinium-labs/typeforce) - CLI tool that enriches your Python environment with type annotations, empowering mypy.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypesplainer[0m[38;5;12m (https://github.com/wasi-master/typesplainer) - A Python type explainer.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtyping-inspect[0m[38;5;12m (https://github.com/ilevkivskyi/typing_inspect) - The typing_inspect module defines experimental API for runtime inspection of types defined in the [39m[48;5;235m[38;5;249mtyping[49m[39m[38;5;12m module.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtyping-json[0m[38;5;12m (https://pypi.org/project/typing-json/) - Lib for working with typed objects and JSON.[39m
|
||
|
||
[38;2;255;187;0m[4mHelper tools to add annotations to existing code[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mautotyping[0m[38;5;12m (https://github.com/JelleZijlstra/autotyping) - Automatically add simple return type annotations for functions (bool, None, Optional).[39m
|
||
[38;5;12m- [39m[38;5;14m[1minfer-types[0m[38;5;12m (https://github.com/orsinium-labs/infer-types) - CLI tool to automatically infer and add type annotations into Python code.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mjsonschema-gentypes[0m[38;5;12m (https://github.com/camptocamp/jsonschema-gentypes) - Generate Python types based on TypedDict from a JSON Schema.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mmonkeytype[0m[38;5;12m [39m[38;5;12m(https://github.com/instagram/MonkeyType)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCollects[39m[38;5;12m [39m[38;5;12mruntime[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m[38;5;12marguments[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mreturn[39m[38;5;12m [39m[38;5;12mvalues,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mautomatically[39m[38;5;12m [39m[38;5;12mgenerate[39m[38;5;12m [39m[38;5;12mstub[39m[38;5;12m [39m[38;5;12mfiles[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12meven[39m[38;5;12m [39m[38;5;12madd[39m[38;5;12m [39m[38;5;12mdraft[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mannotations[39m[38;5;12m [39m[38;5;12mdirectly[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m
|
||
[38;5;12mcollected[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mruntime.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mno_implicit_optional[0m[38;5;12m (https://github.com/hauntsaninja/no_implicit_optional) - A codemod to make your implicit optional type hints [39m[38;5;14m[1mPEP 484[0m[38;5;12m (https://peps.python.org/pep-0484/#union-types) compliant.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpyannotate[0m[38;5;12m (https://github.com/dropbox/pyannotate) - Insert annotations into your source code based on call arguments and return types observed at runtime.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPyTypes[0m[38;5;12m (https://github.com/pvs-hd-tea/PyTypes) - Infer Types by Python Tracing.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mpyre[0m[38;5;14m[1m [0m[38;5;14m[1minfer[0m[38;5;12m [39m[38;5;12m(https://github.com/facebook/pyre-check)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPyre[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mpowerful[39m[38;5;12m [39m[38;5;12mfeature[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmigrating[39m[38;5;12m [39m[38;5;12mcodebases[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtyped[39m[38;5;12m [39m[38;5;12mformat.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;14m[1minfer[0m[38;5;12m [39m[38;5;12m(https://pyre-check.org/docs/pysa-coverage/)[39m[38;5;12m [39m[38;5;12mcommand-line[39m[38;5;12m [39m[38;5;12moption[39m[38;5;12m [39m[38;5;12mingests[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfile[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mdirectory,[39m[38;5;12m [39m[38;5;12mmakes[39m[38;5;12m [39m[38;5;12meducated[39m[38;5;12m [39m
|
||
[38;5;12mguesses[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mused,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mapplies[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mannotations[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfiles.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytest-annotate[0m[38;5;12m (https://github.com/kensho-technologies/pytest-annotate) - Pyannotate plugin for pytest.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytest-monkeytype[0m[38;5;12m (https://github.com/mariusvniekerk/pytest-monkeytype) - MonkeyType plugin for pytest.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpytype annotate-ast[0m[38;5;12m (https://github.com/google/pytype/tree/master/pytype/tools/annotate_ast) - A work-in-progress tool to annotate the nodes of an AST with their Python types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mRightTyper[0m[38;5;12m (https://github.com/RightTyper/RightTyper) - A tool that generates types for your function arguments and return values. RightTyper lets your code run at nearly full speed with almost no memory overhead.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtype4py[0m[38;5;12m (https://github.com/saltudelft/type4py) - Deep Similarity Learning-Based Type Inference.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtypilus[0m[38;5;12m (https://github.com/typilus/typilus) - A deep learning algorithm for predicting types in Python. Also available as a [39m[38;5;14m[1mGitHub action[0m[38;5;12m (https://github.com/typilus/typilus-action)[39m
|
||
[38;5;12m- [39m[38;5;14m[1mauto-optional[0m[38;5;12m (https://github.com/Luttik/auto-optional) - Makes typed arguments Optional when the default argument is [39m[48;5;235m[38;5;249mNone[49m[39m[38;5;12m.[39m
|
||
|
||
[38;2;255;187;0m[4mMypy plugins[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mkubernetes-typed[0m[38;5;12m (https://github.com/gordonbondon/kubernetes-typed) - Plugin for kubernetes [39m[38;5;14m[1mCRD[0m[38;5;12m (https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) type checking.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mloguru-mypy[0m[38;5;12m (https://github.com/kornicameister/loguru-mypy) - Plugin for [39m[38;5;14m[1mloguru[0m[38;5;12m (https://github.com/Delgan/loguru) support.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-zope[0m[38;5;12m (https://github.com/Shoobx/mypy-zope) - Plugin for [39m[38;5;14m[1mzope.interface[0m[38;5;12m (https://zopeinterface.readthedocs.io/en/latest/) support.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy/plugins[0m[38;5;12m (https://github.com/python/mypy/tree/master/mypy/plugins) - Plugins already integrated into mypy.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mnumpy[0m[38;5;12m (https://numpy.org/devdocs/reference/typing.html) - Plugin for [39m[38;5;14m[1mNumPy[0m[38;5;12m (https://numpy.org) support.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpynamodb-mypy[0m[38;5;12m (https://github.com/pynamodb/pynamodb-mypy) - Plugin for [39m[38;5;14m[1mPynamoDB[0m[38;5;12m (https://github.com/pynamodb/PynamoDB) support.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpydantic[0m[38;5;12m (https://docs.pydantic.dev/latest/integrations/mypy/) - Plugin for additional [39m[38;5;14m[1mPydantic[0m[38;5;12m (https://docs.pydantic.dev/latest/) support.[39m
|
||
|
||
[38;2;255;187;0m[4mIntegrations[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1memacs-flycheck-mypy[0m[38;5;12m (https://github.com/lbolla/emacs-flycheck-mypy) - Mypy integration for Emacs.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-playground[0m[38;5;12m (https://github.com/ymyzk/mypy-playground) - Online playground for mypy.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mmypy-pycharm-plugin[0m[38;5;12m (https://github.com/dropbox/mypy-PyCharm-plugin) - Mypy integration for PyCharm.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpylance[0m[38;5;12m (https://github.com/microsoft/pylance-release) - PyRight integration for VSCode.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mvim-mypy[0m[38;5;12m (https://github.com/Integralist/vim-mypy) - Mypy integration for Vim.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mnbQA[0m[38;5;12m (https://github.com/nbQA-dev/nbQA) - Run type checkers (e.g. Mypy) on Jupyter Notebooks.[39m
|
||
|
||
[38;2;255;187;0m[4mArticles[0m
|
||
|
||
[38;2;255;187;0m[4mPEPs[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-3107[0m[38;5;12m (https://www.python.org/dev/peps/pep-3107) - Function Annotations.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-482[0m[38;5;12m (https://www.python.org/dev/peps/pep-0482/) - Literature Overview for Type Hints.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-483[0m[38;5;12m (https://www.python.org/dev/peps/pep-0483/) - The Theory of Type Hints.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-484[0m[38;5;12m (https://www.python.org/dev/peps/pep-0484/) - Type Hints.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-526[0m[38;5;12m (https://www.python.org/dev/peps/pep-0526/) - Syntax for Variable Annotations.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-544[0m[38;5;12m (https://www.python.org/dev/peps/pep-0544/) - Protocols: Structural subtyping (static duck typing).[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-557[0m[38;5;12m (https://www.python.org/dev/peps/pep-0557/) - Data Classes.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-560[0m[38;5;12m (https://www.python.org/dev/peps/pep-0560/) - Core support for typing module and generic types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-561[0m[38;5;12m (https://www.python.org/dev/peps/pep-0561/) - Distributing and Packaging Type Information.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-563[0m[38;5;12m (https://www.python.org/dev/peps/pep-0563/) - Postponed Evaluation of Annotations.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-585[0m[38;5;12m (https://www.python.org/dev/peps/pep-0585/) - Type Hinting Generics In Standard Collections.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-586[0m[38;5;12m (https://www.python.org/dev/peps/pep-0586/) - Literal Types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-589[0m[38;5;12m (https://www.python.org/dev/peps/pep-0589/) - TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-591[0m[38;5;12m (https://www.python.org/dev/peps/pep-0591/) - Adding a final qualifier to typing.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-593[0m[38;5;12m (https://www.python.org/dev/peps/pep-0593/) - Flexible function and variable annotations.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-604[0m[38;5;12m (https://www.python.org/dev/peps/pep-0604/) - Complementary syntax for Union[39m[38;5;12m .[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-612[0m[38;5;12m (https://www.python.org/dev/peps/pep-0612/) - Parameter Specification Variables.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPEP-613[0m[38;5;12m (https://www.python.org/dev/peps/pep-0613/) - Explicit Type Aliases.[39m
|
||
|
||
[38;2;255;187;0m[4mThird-party articles[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1m1-minute guide to real constants in Python[0m[38;5;12m (https://sobolevn.me/2018/07/real-python-contants) - Full tutorial about [39m[48;5;235m[38;5;249mFinal[49m[39m[38;5;12m constants and inheritance.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mSimple dependent types in Python[0m[38;5;12m (https://sobolevn.me/2019/01/simple-dependent-types-in-python) - Full tutorial about [39m[48;5;235m[38;5;249mLiteral[49m[39m[38;5;12m types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTesting mypy stubs, plugins, and types[0m[38;5;12m (https://sobolevn.me/2019/08/testing-mypy-types) - Full tutorial about testing mypy types.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mOur journey to type checking 4 million lines of Python[0m[38;5;12m (https://dropbox.tech/application/our-journey-to-type-checking-4-million-lines-of-python) - Dropbox has been one of the first companies to adopt Python static type checking at this scale.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPyTest MonkeyType Introduction[0m[38;5;12m (https://dev.to/ldrscke/type-annotate-an-existing-python-django-codebase-with-monkeytype-254i) - Type Annotate an existing Python Django Codebase with MonkeyType.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mThe state of type hints in Python[0m[38;5;12m (https://bernat.tech/posts/the-state-of-type-hints-in-python/) - As of May 2018.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mType hints cheat sheet[0m[38;5;12m (https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html) - Cheat sheet on writing type annotations by MyPy team.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTypechecking Django and DRF[0m[38;5;12m (https://sobolevn.me/2019/08/typechecking-django-and-drf) - Full tutorial about type-checking django.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mType Check Your Django Application[0m[38;5;12m (https://kracekumar.com/post/type_check_your_django_app/) - An article based on two recent talks on adding type checks to Django.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mtyping[0m[38;5;12m (https://docs.python.org/3/library/typing.html) - Official Python documentation for [39m[48;5;235m[38;5;249mtyping[49m[39m[38;5;12m module.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPython-typing-koans[0m[38;5;12m (https://github.com/kracekumar/python-typing-koans/) - A set of examples to learn optional static typing in Python.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPython Type Checking (Guide)[0m[38;5;12m (https://realpython.com/python-type-checking/) - In this guide, you will get a look into Python type checking.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAdding type hints to urllib3[0m[38;5;12m (https://sethmlarson.dev/blog/2021-10-18/tests-arent-enough-case-study-after-adding-types-to-urllib3) - Tests are not enough: Case study adding type hints to urllib3.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mAdam Johnsons Blog[0m[38;5;12m (https://adamj.eu/tech/tag/mypy/) - Adam Johnson blogs about typing practices.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mParamSpec Guide[0m[38;5;12m (https://sobolevn.me/2021/12/paramspec-guide) - Newly released feature in [39m[48;5;235m[38;5;249mPEP612[49m[39m[38;5;12m allows you do a lot of advanced typing things with functions and their signatures.[39m
|
||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mStatic[0m[38;5;14m[1m [0m[38;5;14m[1mTyping[0m[38;5;14m[1m [0m[38;5;14m[1mPython[0m[38;5;14m[1m [0m[38;5;14m[1mDecorators[0m[38;5;12m [39m[38;5;12m(https://rednafi.github.io/reflections/static-typing-python-decorators.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mAccurately[39m[38;5;12m [39m[38;5;12mstatic[39m[38;5;12m [39m[38;5;12mtyping[39m[38;5;12m [39m[38;5;12mdecorators[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12micky[39m[38;5;12m [39m[38;5;12mbusiness.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mwrapper[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m[38;5;12mobfuscates[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mrequired[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m
|
||
[38;5;12mstatically[39m[38;5;12m [39m[38;5;12mdetermine[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtypes[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mparameters[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mreturn[39m[38;5;12m [39m[38;5;12mvalues[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mwrapped[39m[38;5;12m [39m[38;5;12mfunction.[39m
|
||
|
||
[38;2;255;187;0m[4mCommunities[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mpython/typing[0m[38;5;12m (https://gitter.im/python/typing) - Official typing gitter chat.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mTypedDjango[0m[38;5;12m (https://gitter.im/mypy-django/Lobby) - Official organisation gitter chat.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mPythonRu#typing[0m[38;5;12m (https://python-ru.slack.com) - Russian slack chat (invites are [39m[38;5;14m[1mhere[0m[38;5;12m (https://slack.python.ru/)) about types.[39m
|
||
|
||
[38;2;255;187;0m[4mRelated[0m
|
||
|
||
[38;5;12m- [39m[38;5;14m[1mawesome-python[0m[38;5;12m (https://github.com/vinta/awesome-python) - Curated list of awesome Python frameworks, libraries, software and resources.[39m
|
||
[38;5;12m- [39m[38;5;14m[1mpython-typecheckers[0m[38;5;12m (https://github.com/ethanhs/python-typecheckers) - List of Python type checkers: static and runtime.[39m
|
||
|
||
[38;5;12mpythontyping Github: https://github.com/typeddjango/awesome-python-typing[39m
|