cpython/Misc/mypy
Łukasz Langa fac41f56d4
gh-131507: Add support for syntax highlighting in PyREPL (GH-133247)
Co-authored-by: Victorien <65306057+Viicos@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-05-02 20:22:31 +02:00
..
README.md
_colorize.py
_pyrepl
make_symlinks.py
token.py gh-131507: Add support for syntax highlighting in PyREPL (GH-133247) 2025-05-02 20:22:31 +02:00
tomllib gh-133117: Run mypy on `tomllib` in CI (#133118) 2025-04-30 11:45:58 +03:00
typed-stdlib.txt gh-131507: Add support for syntax highlighting in PyREPL (GH-133247) 2025-05-02 20:22:31 +02:00

README.md

Mypy path symlinks

This directory stores symlinks to standard library modules and packages that are fully type-annotated and ready to be used in type checking of the rest of the stdlib or Tools/ and so on.

Why this is necessary

Due to most of the standard library being untyped, we prefer not to point mypy directly at Lib/ for type checking. Additionally, mypy as a tool does not support shadowing typing-related standard libraries like types, typing, and collections.abc.

So instead, we set mypy_path to include this directory, which only links modules and packages we know are safe to be type-checked themselves and used as dependencies. See Lib/_pyrepl/mypy.ini for a usage example.

I want to add a new type-checked module

Add it to typed-stdlib.txt and run make_symlinks.py --symlink.

The symlinks in this directory are skipped in source tarballs in Python releases. This ensures they don't end up in the SBOM. To recreate them, run the make_symlinks.py --symlink script.