Skip to content

Latest commit

 

History

History
123 lines (90 loc) · 2.97 KB

File metadata and controls

123 lines (90 loc) · 2.97 KB

Static Typing with Python

Tutorials

.. toctree::
   :maxdepth: 1

   tutorials/external_libraries

Guides

.. toctree::
   :maxdepth: 1

   guides/libraries
   guides/writing_stubs
   guides/modernizing
   guides/unreachable
   guides/type_narrowing
   guides/typing_anti_pitch

Reference

.. toctree::
   :maxdepth: 1

   reference/generics
   reference/protocols
   reference/best_practices
   reference/quality
   typing Module Documentation <https://docs.python.org/3/library/typing.html>

.. seealso::

   The documentation at https://mypy.readthedocs.io/ is relatively accessible
   and complete.

Specification

.. toctree::
   :maxdepth: 2

   spec/index

Indices and tables

Discussions and Support

Typing-related Tools

Type Checkers

Development Environments

  • PyCharm, an IDE that supports type stubs both for type checking and code completion.
  • Visual Studio Code, a code editor that supports type checking using mypy, pyright, or the Pylance extension.

Linters and Formatters

  • black, a code formatter with support for type stub files.
  • flake8-pyi, a plugin for the flake8 linter that adds support for type stubs.
  • ruff, a linter built for speed, with support for most of the flake8-pyi rules.

Type-Hint and Stub Integration

  • autotyping, a tool which infers simple types from their context and inserts them as inline type-hints.
  • merge-pyi, a thin wrapper around ApplyTypeAnnotationsVisitor from libCST that integrates .pyi signatures as inline type-hints in Python source code.

Typing PEPs

See https://peps.python.org/topic/typing for a list of all typing-related PEPs.