From 144fb841f6e233480159e34d4e5dccdab4c280c1 Mon Sep 17 00:00:00 2001 From: Christian Ledermann Date: Wed, 10 Apr 2024 12:57:52 +0100 Subject: [PATCH 1/4] Add no_implicit_optional to the list of awesome Python type tools --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65390d6..bbdcb4d 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ Collection of awesome Python types, stubs, plugins, and tools to work with them. - [infer-types](https://github.com/orsinium-labs/infer-types) - CLI tool to automatically infer and add type annotations into Python code. - [jsonschema-gentypes](https://github.com/camptocamp/jsonschema-gentypes) - Generate Python types based on TypedDict from a JSON Schema. - [monkeytype](https://github.com/instagram/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. +- [no_implicit_optional](https://github.com/hauntsaninja/no_implicit_optional) - A codemod to make your implicit optional type hints PEP 484 compliant. - [pyannotate](https://github.com/dropbox/pyannotate) - Insert annotations into your source code based on call arguments and return types observed at runtime. - [PyTypes](https://github.com/pvs-hd-tea/PyTypes) - Infer Types by Python Tracing. - [pyre infer](https://github.com/facebook/pyre-check) - 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. From 1195f09d3371eefe20ec41f18322e29e1fdc6949 Mon Sep 17 00:00:00 2001 From: Christian Ledermann Date: Wed, 10 Apr 2024 13:03:32 +0100 Subject: [PATCH 2/4] Link no_implicit_optional description to pep-484 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbdcb4d..3510f40 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ Collection of awesome Python types, stubs, plugins, and tools to work with them. - [infer-types](https://github.com/orsinium-labs/infer-types) - CLI tool to automatically infer and add type annotations into Python code. - [jsonschema-gentypes](https://github.com/camptocamp/jsonschema-gentypes) - Generate Python types based on TypedDict from a JSON Schema. - [monkeytype](https://github.com/instagram/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. -- [no_implicit_optional](https://github.com/hauntsaninja/no_implicit_optional) - A codemod to make your implicit optional type hints PEP 484 compliant. +- [no_implicit_optional](https://github.com/hauntsaninja/no_implicit_optional) - A codemod to make your implicit optional type hints [PEP 484](https://peps.python.org/pep-0484/#union-types) compliant. - [pyannotate](https://github.com/dropbox/pyannotate) - Insert annotations into your source code based on call arguments and return types observed at runtime. - [PyTypes](https://github.com/pvs-hd-tea/PyTypes) - Infer Types by Python Tracing. - [pyre infer](https://github.com/facebook/pyre-check) - 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. From 8ff11982bfa767c28c1cd0f3bb63141be9a91359 Mon Sep 17 00:00:00 2001 From: Christian Ledermann Date: Mon, 23 Dec 2024 17:49:46 +0000 Subject: [PATCH 3/4] Add RightTyper to the list of tools for generating function argument types --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 88f9edb..c380664 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ Collection of awesome Python types, stubs, plugins, and tools to work with them. - [pytest-annotate](https://github.com/kensho-technologies/pytest-annotate) - Pyannotate plugin for pytest. - [pytest-monkeytype](https://github.com/mariusvniekerk/pytest-monkeytype) - MonkeyType plugin for pytest. - [pytype annotate-ast](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. +- [RightTyper](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. - [type4py](https://github.com/saltudelft/type4py) - Deep Similarity Learning-Based Type Inference. - [typilus](https://github.com/typilus/typilus) - A deep learning algorithm for predicting types in Python. Also available as a [GitHub action](https://github.com/typilus/typilus-action) - [auto-optional](https://github.com/Luttik/auto-optional) - Makes typed arguments Optional when the default argument is `None`. From 770e6f3598e16e2ded553d0f33273da7ace1e2a1 Mon Sep 17 00:00:00 2001 From: Christian Ledermann Date: Fri, 15 May 2026 14:40:25 +0100 Subject: [PATCH 4/4] Update README.md: Replace pyre with pyrefly and add pycroscope to the list of static type checkers --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d3f3885..8a11b0d 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,9 @@ Collection of awesome Python types, stubs, plugins, and tools to work with them. - [pyanalyze](https://github.com/quora/pyanalyze) - Extensible static analyzer and type checker. - [PyCharm](https://www.jetbrains.com/pycharm/) - IDE for Professional Developers. - [pylyzer](https://github.com/mtshiba/pylyzer/) - A fast static code analyzer & language server for Python, written in Rust. -- [pyre](https://pyre-check.org/) - Performant type-checker. +- [pyrefly](https://github.com/facebook/pyrefly) - A fast type checker and language server for Python. - [pyright](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. +- [pycroscope](https://github.com/JelleZijlstra/pycroscope) - 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. - [pytype](https://github.com/google/pytype) - Tool to check and infer types - without requiring type annotations. - [ty](https://github.com/astral-sh/ty) - An extremely fast Python type checker, written in Rust, from the creators of Ruff and uv.