basedmypy
Based static typing with baseline functionality.
Collection of awesome Python types, stubs, plugins, and tools to work with them.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Based static typing with baseline functionality.
Pyright fork with improvements to VSCode support and various other fixes.
Extensible static analyzer and type checker.
A fast static code analyzer & language server for Python, written in Rust.
A fast type checker and language server for Python.
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.
A semi-static type checker for Python code. It imports the modules it type checks, enabling pycroscope to understand many dynamic constructs that other type checkers will reject. This makes it possible to extend pycroscope with plugins that interact directly with your code.
Tool to check and infer types - without requiring type annotations.
An extremely fast Python type checker, written in Rust, from the creators of Ruff and uv.
A Mypy-compatible Python type checker and Language Server built in Rust.
Unbearably fast O(1) runtime type-checking in pure Python.
Data parsing using Python type hinting. Supports dataclasses.
Provides a rich set of utilities for runtime typechecking.
Decorator which checks whether the function is called with the correct type of parameters.
Type-safe, strict Python. Works well with standard Python.
Another one runtime type checker.
Data parsing and automatic type-coercion using type hinting. Supports dataclasses, standard classes, function signatures, and more.
Parse JSON-like values whose shape is defined by typed dictionaries (TypedDicts) and other standard Python type hints.
Fast runtime type enforcement for annotations with no dependencies. Includes fast O(1) and full O(n) operations.
ASGI specification, provides asgiref.typing module with type annotations for ASGI servers.
Stubs for boto3.
Gives you code assistance for any boto3 API in any IDE.
Type stubs for Celery and its related packages django-celery-results, ampq, kombu, billiard, vine and ephem.
Stubs for Django.
Stubs for DRF.
Stubs for grpc.
Stubs for lxml.
Stubs for PyQt5.
Stubs for phonenumbers.
Stubs for Pythonista.
Stubs for SciPy.
Stubs for SQLAlchemy.
Official stubs and mypy plugin for SQLAlchemy.
Enhanced type annotations for PyTorch.
Stubs for aiobotocore.
Collection of library stubs, with static types.
Simple, typed and monad-based Result type.
Rust like Option and Result types.
Opinionated collections.abc and operators alternative: Flexible single-method protocols and typed operators with predictable names.
Phantom types.
Fully typesafe, Rust-like Result and Option types.
Length-bounded types, dynamic object validation.
Collection of useful protocols and type aliases.
Backport for type hinting generics in standard collections and union types as X | Y.
Backported and experimental type hints.
Backport 3.8+ runtime typing utils(for eg: get_origin) & add issubtype & more.
Plugin for flake8 to validate annotations complexity.
Plugin for flake8 to check for presence of type annotations in function definitions.
Plugin for Flake8 that provides specializations for type hinting stub files.
Plugin to help you guard any type-annotation-only import correctly.
Plugin which checks that typing imports are properly guarded.
flake8 plugin that helps identify which imports to put into type-checking blocks, and how to adjust your type annotations once imports are moved.
flake8 plugin to disallow type: ignore comments in your typed Python code.
The strictest and most opinionated Python linter ever.
Test mypy plugins, stubs, custom types.
Pytest plugin for testing mypy types, stubs, and plugins.
Pytest plugin to test mypy static type analysis.
Mypy static type checker plugin for Pytest.
Tool for translation of type comments to type annotations.
Tool to check and infer types - without requiring type annotations.
Integrate mypy with existing codebase. A CLI tool that filters out existing type errors and reports only new ones.
Tool to generate mypy stubs from protobufs.
Silence mypy by adding or removing code comments.
Another tool to apply stubs to code.
CLI tool that enriches your Python environment with type annotations, empowering mypy.
A Python type explainer.
The typing_inspect module defines experimental API for runtime inspection of types defined in the typing module.
Lib for working with typed objects and JSON.
Automatically add simple return type annotations for functions (bool, None, Optional).
CLI tool to automatically infer and add type annotations into Python code.
Generate Python types based on TypedDict from a JSON Schema.
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.
A codemod to make your implicit optional type hints PEP 484 compliant.
Insert annotations into your source code based on call arguments and return types observed at runtime.
Infer Types by Python Tracing.
Pyannotate plugin for pytest.
MonkeyType plugin for pytest.
Tool to check and infer types - without requiring type annotations.
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.
Makes typed arguments Optional when the default argument is None.
Plugin for Kubernetes CRD type checking.
Plugin for loguru support.
Plugin for zope.interface support.
Plugin for NumPy support.
Plugin for PynamoDB support.
Plugin for additional Pydantic support.
Mypy integration for Emacs.
Online playground for mypy.
Mypy integration for PyCharm.
PyRight integration for VSCode.
Mypy integration for Vim.
Run type checkers (e.g. Mypy) on Jupyter Notebooks.
Function Annotations.
Literature Overview for Type Hints.
The Theory of Type Hints.
Type Hints.
Syntax for Variable Annotations.
Protocols: Structural subtyping (static duck typing).
Data Classes.
Core support for typing module and generic types.
Distributing and Packaging Type Information.
Postponed Evaluation of Annotations.
Type Hinting Generics In Standard Collections.
Literal Types.
TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys.
Adding a final qualifier to typing.
Flexible function and variable annotations.
Complementary syntax for Union[].
Parameter Specification Variables.
Explicit Type Aliases.
Full tutorial about Final constants and inheritance.
Full tutorial about Literal types.
Full tutorial about testing mypy types.
Dropbox has been one of the first companies to adopt Python static type checking at this scale.
Type Annotate an existing Python Django Codebase with MonkeyType.
As of May 2018.
Cheat sheet on writing type annotations by MyPy team.
Full tutorial about type-checking Django.
An article based on two recent talks on adding type checks to Django.
Official Python documentation for typing module.
A set of examples to learn optional static typing in Python.
In this guide, you will get a look into Python type checking.
Tests are not enough: Case study adding type hints to urllib3.
Adam Johnson blogs about typing practices.
Newly released feature in PEP612 allows you do a lot of advanced typing things with functions and their signatures.
Accurately static typing decorators in Python is an icky business. The wrapper function obfuscates type information required to statically determine the types of the parameters and the return values of the wrapped function.
A detailed comparison of the three major Python static type checkers covering features, performance, and trade-offs.
Comprehensive guide to ty, the fast Python type checker from Astral.
Curated list of awesome Python frameworks, libraries, software and resources.
Comprehensive handbook covering Python type checkers, linters, and development tools with reference pages for mypy, Pyright, and ty.
List of Python type checkers: static and runtime.
rust-unofficial/awesome-rust
A curated list of Rust code and resources.
jaywcjlove/awesome-mac
This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.
vinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
fffaraz/awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
avelino/awesome-go
A curated list of awesome Go frameworks, libraries and software
ziadoz/awesome-php
A curated list of amazingly awesome PHP libraries, resources and shiny things.