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

awesome-python-typing

Collection of awesome Python types, stubs, plugins, and tools to work with them.
https://github.com/typeddjango/awesome-python-typing

Last synced: 3 days ago
JSON representation

    • Third-party articles

      • awesome-python - Curated list of awesome Python frameworks, libraries, software and resources.
  • Static type checkers

    • PyCharm - IDE for Professional Developers.
    • pyre - Performant type-checker.
    • mypy - Optional static typing (PEP 484).
    • pytype - Tool to check and infer types - without requiring type annotations.
    • 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.
    • pyanalyze - Extensible static analyzer and type checker.
    • basedmypy - Based static typing with baseline functionality.
    • basedpyright - Pyright fork with improvements to VSCode support and various other fixes.
    • pylyzer - A fast static code analyzer & language server for Python, written in Rust.
  • Stub packages

    • sqlalchemy2-stubs - Official stubs and mypy plugin for [SQLAlchemy](https://www.sqlalchemy.org).
    • boto3-stubs - Stubs for [boto3](https://github.com/boto/boto3).
    • types-aiobotocore - Stubs for [aiobotocore](https://github.com/aio-libs/aiobotocore).
    • asgiref - ASGI specification, provides [asgiref.typing](https://github.com/django/asgiref/blob/main/asgiref/typing.py) module with type annotations for ASGI servers.
    • torchtyping - Enhanced type annotations for [PyTorch](https://pytorch.org/).
    • typeshed - Collection of library stubs, with static types.
    • django-stubs - Stubs for [Django](https://github.com/django/django).
    • djangorestframework-stubs - Stubs for [DRF](https://github.com/encode/django-rest-framework).
    • botostubs - Gives you code assistance for any boto3 API in any IDE.
    • celery-types - Type stubs for [Celery](https://github.com/celery/celery) and its related packages [django-celery-results](https://github.com/celery/django-celery-results), [ampq](https://github.com/celery/py-amqp), [kombu](https://github.com/celery/kombu), [billiard](https://github.com/celery/billiard), [vine](https://github.com/celery/vine) and [ephem](https://github.com/brandon-rhodes/pyephem).
    • grpc-stubs - Stubs for [grpc](https://github.com/grpc/grpc).
    • lxml-stubs - Stubs for [lxml](https://lxml.de).
    • PyQt5-stubs - Stubs for [PyQt5](https://www.riverbankcomputing.com/software/pyqt/intro).
    • python-phonenumbers-stubs - Stubs for [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).
    • pythonista-stubs - Stubs for [Pythonista](http://omz-software.com/pythonista/docs/ios/).
    • sqlalchemy-stubs - Stubs for [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy).
    • types-aiobotocore - Stubs for [aiobotocore](https://github.com/aio-libs/aiobotocore).
    • boto3-stubs - Stubs for [boto3](https://github.com/boto/boto3).
  • Tools

    • Working with types

      • merge-pyi - Part of pytype toolchain, applies stub files onto source code.
      • mypyc - Compiles mypy-annotated, statically typed Python modules into CPython C extensions.
      • typing-json - Lib for working with typed objects and JSON.
      • com2ann - Tool for translation of type comments to type annotations.
      • typing-inspect - The typing_inspect module defines experimental API for runtime inspection of types defined in the `typing` module.
      • mypy-baseline - Integrate mypy with existing codebase. A CLI tool that filters out existing type errors and reports only new ones.
      • mypy-silent - Silence mypy by adding or removing code comments.
      • retype - Another tool to apply stubs to code.
      • typeforce - CLI tool that enriches your Python environment with type annotations, empowering mypy.
      • mypy-protobuf - Tool to generate mypy stubs from protobufs.
      • mypy-silent - Silence mypy by adding or removing code comments.
      • merge-pyi - Part of pytype toolchain, applies stub files onto source code.
    • Helper tools to add annotations to existing code

      • pytype annotate-ast - A work-in-progress tool to annotate the nodes of an AST with their Python 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 code based on the types collected at runtime.
      • pyre infer - Pyre has a powerful feature for migrating codebases to a typed format. The [infer](https://pyre-check.org/docs/pysa-coverage/) command-line option ingests a file or directory, makes educated guesses about the types used, and applies the annotations to the files.
      • autotyping - Automatically add simple return type annotations for functions (bool, None, Optional).
      • pyannotate - Insert annotations into your source code based on call arguments and return types observed at runtime.
      • pytest-monkeytype - MonkeyType plugin for pytest.
      • infer-types - CLI tool to automatically infer and add type annotations into Python code.
      • no_implicit_optional - A codemod to make your implicit optional type hints [PEP 484](https://peps.python.org/pep-0484/#union-types) compliant.
      • PyTypes - Infer Types by Python Tracing.
      • pytest-annotate - Pyannotate plugin for pytest.
      • type4py - Deep Similarity Learning-Based Type Inference.
      • typilus - A deep learning algorithm for predicting types in Python. Also available as a [GitHub action](https://github.com/typilus/typilus-action)
      • auto-optional - Makes typed arguments Optional when the default argument is `None`.
      • 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.
      • pytype annotate-ast - A work-in-progress tool to annotate the nodes of an AST with their Python types.
    • Mypy plugins

      • mypy/plugins - Plugins already integrated into mypy.
      • NumPy - Plugin for [NumPy](https://numpy.org) support.
      • kubernetes-typed - Plugin for Kubernetes [CRD](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) type checking.
      • loguru-mypy - Plugin for [loguru](https://github.com/Delgan/loguru) support.
      • mypy-zope - Plugin for [zope.interface](https://zopeinterface.readthedocs.io/en/latest/) support.
      • pynamodb-mypy - Plugin for [PynamoDB](https://github.com/pynamodb/PynamoDB) support.
      • pydantic - Plugin for additional [Pydantic](https://docs.pydantic.dev/latest/) support.
    • Linters

    • Testing

  • Articles

  • Communities

    • Third-party articles

      • TypedDjango - Official organisation gitter chat.
      • PythonRu#typing - Russian slack chat (invites are [here](https://slack.python.ru/)) about types.
  • Additional types

    • returns - Make your functions return something meaningful, typed, and safe.
    • phantom-types - Phantom types.
    • useful-types - Collection of useful protocols and type aliases.
    • option - Rust like Option and Result types.
    • meiga - Simple, typed and monad-based Result type.
    • optype - Opinionated `collections.abc` and `operators` alternative: Flexible single-method protocols and typed operators with predictable names.
    • safetywrap - Fully typesafe, Rust-like Result and Option types.
    • typet - Length-bounded types, dynamic object validation.
  • Integrations

  • Dynamic type checkers

    • typeguard - Another one runtime type checker.
    • beartype - Unbearably fast `O(1)` runtime type-checking in pure Python.
    • pytypes - Provides a rich set of utilities for runtime typechecking.
    • strongtyping - Decorator which checks whether the function is called with the correct type of parameters.
    • typedpy - Type-safe, strict Python. Works well with standard Python.
    • trycast - Parse JSON-like values whose shape is defined by typed dictionaries (TypedDicts) and other standard Python type hints.
    • typical - Data parsing and automatic type-coercion using type hinting. Supports dataclasses, standard classes, function signatures, and more.
    • pydantic - Data parsing using Python type hinting. Supports dataclasses.
  • Backports and improvements

    • typing-extensions - Backported and experimental type hints.
    • future-typing - Backport for type hinting generics in standard collections and union types as `X | Y`.
    • typing-utils - Backport 3.8+ runtime typing utils(for eg: get_origin) & add issubtype & more.