Getting started
|
Внутренний |
Передача Juice |
Type hints cheat sheet
|
Внутренний |
Передача Juice |
Using mypy with an existing codebase
|
Внутренний |
Передача Juice |
Built-in types
|
Внутренний |
Передача Juice |
Type inference and type annotations
|
Внутренний |
Передача Juice |
Kinds of types
|
Внутренний |
Передача Juice |
Class basics
|
Внутренний |
Передача Juice |
Annotation issues at runtime
|
Внутренний |
Передача Juice |
Protocols and structural subtyping
|
Внутренний |
Передача Juice |
Dynamically typed code
|
Внутренний |
Передача Juice |
Type narrowing
|
Внутренний |
Передача Juice |
Duck type compatibility
|
Внутренний |
Передача Juice |
Stub files
|
Внутренний |
Передача Juice |
Generics
|
Внутренний |
Передача Juice |
More types
|
Внутренний |
Передача Juice |
Literal types and Enums
|
Внутренний |
Передача Juice |
TypedDict
|
Внутренний |
Передача Juice |
Final names, methods and classes
|
Внутренний |
Передача Juice |
Metaclasses
|
Внутренний |
Передача Juice |
Running mypy and managing imports
|
Внутренний |
Передача Juice |
The mypy command line
|
Внутренний |
Передача Juice |
The mypy configuration file
|
Внутренний |
Передача Juice |
Inline configuration
|
Внутренний |
Передача Juice |
Mypy daemon (mypy server)
|
Внутренний |
Передача Juice |
Using installed packages
|
Внутренний |
Передача Juice |
Extending and integrating mypy
|
Внутренний |
Передача Juice |
Automatic stub generation (stubgen)
|
Внутренний |
Передача Juice |
Automatic stub testing (stubtest)
|
Внутренний |
Передача Juice |
Common issues and solutions
|
Внутренний |
Передача Juice |
Supported Python features
|
Внутренний |
Передача Juice |
Error codes
|
Внутренний |
Передача Juice |
Error codes enabled by default
|
Внутренний |
Передача Juice |
Error codes for optional checks
|
Внутренний |
Передача Juice |
Additional features
|
Внутренний |
Передача Juice |
Frequently Asked Questions
|
Внутренний |
Передача Juice |
GitHub
|
Внешний |
Передача Juice |
Website
|
Внешний |
Передача Juice |
latest
|
Внутренний |
Передача Juice |
stable
|
Внутренний |
Передача Juice |
pdf
|
Внутренний |
Передача Juice |
html
|
Внутренний |
Передача Juice |
epub
|
Внутренний |
Передача Juice |
Project Home
|
Внутренний |
Передача Juice |
Builds
|
Внутренний |
Передача Juice |
¶
|
Внутренний |
Передача Juice |
¶
|
Внутренний |
Передача Juice |
Installing and running mypy
|
Внутренний |
Передача Juice |
Dynamic vs static typing
|
Внутренний |
Передача Juice |
Strict mode and configuration
|
Внутренний |
Передача Juice |
More complex types
|
Внутренний |
Передача Juice |
Local type inference
|
Внутренний |
Передача Juice |
Types from libraries
|
Внутренний |
Передача Juice |
Next steps
|
Внутренний |
Передача Juice |
Variables
|
Внутренний |
Передача Juice |
Useful built-in types
|
Внутренний |
Передача Juice |
Functions
|
Внутренний |
Передача Juice |
Classes
|
Внутренний |
Передача Juice |
When you’re puzzled or when things are complicated
|
Внутренний |
Передача Juice |
Standard “duck types”
|
Внутренний |
Передача Juice |
Forward references
|
Внутренний |
Передача Juice |
Decorators
|
Внутренний |
Передача Juice |
Coroutines and asyncio
|
Внутренний |
Передача Juice |
Start small
|
Внутренний |
Передача Juice |
Run mypy consistently and prevent regressions
|
Внутренний |
Передача Juice |
Ignoring errors from certain modules
|
Внутренний |
Передача Juice |
Fixing errors related to imports
|
Внутренний |
Передача Juice |
Prioritise annotating widely imported modules
|
Внутренний |
Передача Juice |
Write annotations as you go
|
Внутренний |
Передача Juice |
Automate annotation of legacy code
|
Внутренний |
Передача Juice |
Introduce stricter options
|
Внутренний |
Передача Juice |
Speed up mypy runs
|
Внутренний |
Передача Juice |
Simple types
|
Внутренний |
Передача Juice |
Any type
|
Внутренний |
Передача Juice |
Generic types
|
Внутренний |
Передача Juice |
Type inference
|
Внутренний |
Передача Juice |
Explicit types for variables
|
Внутренний |
Передача Juice |
Explicit types for collections
|
Внутренний |
Передача Juice |
Compatibility of container types
|
Внутренний |
Передача Juice |
Context in type inference
|
Внутренний |
Передача Juice |
Silencing type errors
|
Внутренний |
Передача Juice |
Class types
|
Внутренний |
Передача Juice |
The Any type
|
Внутренний |
Передача Juice |
Tuple types
|
Внутренний |
Передача Juice |
Callable types (and lambdas)
|
Внутренний |
Передача Juice |
Union types
|
Внутренний |
Передача Juice |
Optional types and the None type
|
Внутренний |
Передача Juice |
Type aliases
|
Внутренний |
Передача Juice |
Named tuples
|
Внутренний |
Передача Juice |
The type of class objects
|
Внутренний |
Передача Juice |
Generators
|
Внутренний |
Передача Juice |
Instance and class attributes
|
Внутренний |
Передача Juice |
Annotating __init__ methods
|
Внутренний |
Передача Juice |
Class attribute annotations
|
Внутренний |
Передача Juice |
Overriding statically typed methods
|
Внутренний |
Передача Juice |
Abstract base classes and multiple inheritance
|
Внутренний |
Передача Juice |
Slots
|
Внутренний |
Передача Juice |
String literal types and type comments
|
Внутренний |
Передача Juice |
Future annotations import (PEP 563)
|
Внутренний |
Передача Juice |
typing.TYPE_CHECKING
|
Внутренний |
Передача Juice |
Class name forward references
|
Внутренний |
Передача Juice |
Import cycles
|
Внутренний |
Передача Juice |
Using classes that are generic in stubs but not at runtime
|
Внутренний |
Передача Juice |
Using types defined in stubs but not at runtime
|
Внутренний |
Передача Juice |
Using generic builtins
|
Внутренний |
Передача Juice |
Using X | Y syntax for Unions
|
Внутренний |
Передача Juice |
Using new additions to the typing module
|
Внутренний |
Передача Juice |
Predefined protocols
|
Внутренний |
Передача Juice |
Simple user-defined protocols
|
Внутренний |
Передача Juice |
Defining subprotocols and subclassing protocols
|
Внутренний |
Передача Juice |
Invariance of protocol attributes
|
Внутренний |
Передача Juice |
Recursive protocols
|
Внутренний |
Передача Juice |
Using isinstance() with protocols
|
Внутренний |
Передача Juice |
Callback protocols
|
Внутренний |
Передача Juice |
Predefined protocol reference
|
Внутренний |
Передача Juice |
Operations on Any values
|
Внутренний |
Передача Juice |
Any vs. object
|
Внутренний |
Передача Juice |
Type narrowing expressions
|
Внутренний |
Передача Juice |
Casts
|
Внутренний |
Передача Juice |
User-Defined Type Guards
|
Внутренний |
Передача Juice |
Limitations
|
Внутренний |
Передача Juice |
Creating a stub
|
Внутренний |
Передача Juice |
Stub file syntax
|
Внутренний |
Передача Juice |
Using stub file syntax at runtime
|
Внутренний |
Передача Juice |
Defining generic classes
|
Внутренний |
Передача Juice |
Defining subclasses of generic classes
|
Внутренний |
Передача Juice |
Generic functions
|
Внутренний |
Передача Juice |
Generic methods and generic self
|
Внутренний |
Передача Juice |
Automatic self types using typing.Self
|
Внутренний |
Передача Juice |
Variance of generic types
|
Внутренний |
Передача Juice |
Type variables with upper bounds
|
Внутренний |
Передача Juice |
Type variables with value restriction
|
Внутренний |
Передача Juice |
Declaring decorators
|
Внутренний |
Передача Juice |
Generic protocols
|
Внутренний |
Передача Juice |
Generic type aliases
|
Внутренний |
Передача Juice |
Generic class internals
|
Внутренний |
Передача Juice |
The NoReturn type
|
Внутренний |
Передача Juice |
NewTypes
|
Внутренний |
Передача Juice |
Function overloading
|
Внутренний |
Передача Juice |
Advanced uses of self-types
|
Внутренний |
Передача Juice |
Typing async/await
|
Внутренний |
Передача Juice |
Literal types
|
Внутренний |
Передача Juice |
Enums
|
Внутренний |
Передача Juice |
Totality
|
Внутренний |
Передача Juice |
Supported operations
|
Внутренний |
Передача Juice |
Class-based syntax
|
Внутренний |
Передача Juice |
Mixing required and non-required items
|
Внутренний |
Передача Juice |
Unions of TypedDicts
|
Внутренний |
Передача Juice |
Final names
|
Внутренний |
Передача Juice |
Final methods
|
Внутренний |
Передача Juice |
Final classes
|
Внутренний |
Передача Juice |
Defining a metaclass
|
Внутренний |
Передача Juice |
Metaclass usage example
|
Внутренний |
Передача Juice |
Gotchas and limitations of metaclass support
|
Внутренний |
Передача Juice |
Specifying code to be checked
|
Внутренний |
Передача Juice |
Reading a list of files from a file
|
Внутренний |
Передача Juice |
Mapping file paths to modules
|
Внутренний |
Передача Juice |
How mypy handles imports
|
Внутренний |
Передача Juice |
Missing imports
|
Внутренний |
Передача Juice |
How imports are found
|
Внутренний |
Передача Juice |
Following imports
|
Внутренний |
Передача Juice |
Specifying what to type check
|
Внутренний |
Передача Juice |
Optional arguments
|
Внутренний |
Передача Juice |
Config file
|
Внутренний |
Передача Juice |
Import discovery
|
Внутренний |
Передача Juice |
Platform configuration
|
Внутренний |
Передача Juice |
Disallow dynamic typing
|
Внутренний |
Передача Juice |
Untyped definitions and calls
|
Внутренний |
Передача Juice |
None and Optional handling
|
Внутренний |
Передача Juice |
Configuring warnings
|
Внутренний |
Передача Juice |
Miscellaneous strictness flags
|
Внутренний |
Передача Juice |
Configuring error messages
|
Внутренний |
Передача Juice |
Incremental mode
|
Внутренний |
Передача Juice |
Advanced options
|
Внутренний |
Передача Juice |
Report generation
|
Внутренний |
Передача Juice |
Enabling incomplete/experimental features
|
Внутренний |
Передача Juice |
Miscellaneous
|
Внутренний |
Передача Juice |
Config file format
|
Внутренний |
Передача Juice |
Per-module and global options
|
Внутренний |
Передача Juice |
Inverting option values
|
Внутренний |
Передача Juice |
Import discovery
|
Внутренний |
Передача Juice |
Platform configuration
|
Внутренний |
Передача Juice |
Disallow dynamic typing
|
Внутренний |
Передача Juice |
Untyped definitions and calls
|
Внутренний |
Передача Juice |
None and Optional handling
|
Внутренний |
Передача Juice |
Configuring warnings
|
Внутренний |
Передача Juice |
Suppressing errors
|
Внутренний |
Передача Juice |
Miscellaneous strictness flags
|
Внутренний |
Передача Juice |
Configuring error messages
|
Внутренний |
Передача Juice |
Incremental mode
|
Внутренний |
Передача Juice |
Advanced options
|
Внутренний |
Передача Juice |
Report generation
|
Внутренний |
Передача Juice |
Miscellaneous
|
Внутренний |
Передача Juice |
Using a pyproject.toml file
|
Внутренний |
Передача Juice |
Configuration comment format
|
Внутренний |
Передача Juice |
Basic usage
|
Внутренний |
Передача Juice |
Daemon client commands
|
Внутренний |
Передача Juice |
Additional daemon flags
|
Внутренний |
Передача Juice |
Static inference of annotations
|
Внутренний |
Передача Juice |
Statically inspect expressions
|
Внутренний |
Передача Juice |
Using installed packages with mypy (PEP 561)
|
Внутренний |
Передача Juice |
Creating PEP 561 compatible packages
|
Внутренний |
Передача Juice |
Integrating mypy into another Python application
|
Внутренний |
Передача Juice |
Extending mypy using plugins
|
Внутренний |
Передача Juice |
Configuring mypy to use plugins
|
Внутренний |
Передача Juice |
High-level overview
|
Внутренний |
Передача Juice |
Current list of plugin hooks
|
Внутренний |
Передача Juice |
Useful tools
|
Внутренний |
Передача Juice |
Specifying what to stub
|
Внутренний |
Передача Juice |
Specifying how to generate stubs
|
Внутренний |
Передача Juice |
Additional flags
|
Внутренний |
Передача Juice |
What stubtest does and does not do
|
Внутренний |
Передача Juice |
Example
|
Внутренний |
Передача Juice |
Usage
|
Внутренний |
Передача Juice |
No errors reported for obviously wrong code
|
Внутренний |
Передача Juice |
Spurious errors and locally silencing the checker
|
Внутренний |
Передача Juice |
Ignoring a whole file
|
Внутренний |
Передача Juice |
Issues with code at runtime
|
Внутренний |
Передача Juice |
Mypy runs are slow
|
Внутренний |
Передача Juice |
Types of empty collections
|
Внутренний |
Передача Juice |
Redefinitions with incompatible types
|
Внутренний |
Передача Juice |
Invariance vs covariance
|
Внутренний |
Передача Juice |
Declaring a supertype as variable type
|
Внутренний |
Передача Juice |
Complex type tests
|
Внутренний |
Передача Juice |
Python version and system platform checks
|
Внутренний |
Передача Juice |
Displaying the type of an expression
|
Внутренний |
Передача Juice |
Silencing linters
|
Внутренний |
Передача Juice |
Covariant subtyping of mutable protocol members is rejected
|
Внутренний |
Передача Juice |
Dealing with conflicting names
|
Внутренний |
Передача Juice |
Using a development mypy build
|
Внутренний |
Передача Juice |
Variables vs type aliases
|
Внутренний |
Передача Juice |
Incompatible overrides
|
Внутренний |
Передача Juice |
Unreachable code
|
Внутренний |
Передача Juice |
Narrowing and inner functions
|
Внутренний |
Передача Juice |
Runtime definition of methods and functions
|
Внутренний |
Передача Juice |
Silencing errors based on error codes
|
Внутренний |
Передача Juice |
Enabling/disabling specific error codes globally
|
Внутренний |
Передача Juice |
Per-module enabling/disabling error codes
|
Внутренний |
Передача Juice |
Subcodes of error codes
|
Внутренний |
Передача Juice |
Requiring error codes
|
Внутренний |
Передача Juice |
Check that attribute exists [attr-defined]
|
Внутренний |
Передача Juice |
Check that attribute exists in each union item [union-attr]
|
Внутренний |
Передача Juice |
Check that name is defined [name-defined]
|
Внутренний |
Передача Juice |
Check that a variable is not used before it’s defined [used-before-def]
|
Внутренний |
Передача Juice |
Check arguments in calls [call-arg]
|
Внутренний |
Передача Juice |
Check argument types [arg-type]
|
Внутренний |
Передача Juice |
Check calls to overloaded functions [call-overload]
|
Внутренний |
Передача Juice |
Check validity of types [valid-type]
|
Внутренний |
Передача Juice |
Require annotation if variable type is unclear [var-annotated]
|
Внутренний |
Передача Juice |
Check validity of overrides [override]
|
Внутренний |
Передача Juice |
Check that function returns a value [return]
|
Внутренний |
Передача Juice |
Check that functions don’t have empty bodies outside stubs [empty-body]
|
Внутренний |
Передача Juice |
Check that return value is compatible [return-value]
|
Внутренний |
Передача Juice |
Check types in assignment statement [assignment]
|
Внутренний |
Передача Juice |
Check that assignment target is not a method [method-assign]
|
Внутренний |
Передача Juice |
Check type variable values [type-var]
|
Внутренний |
Передача Juice |
Check uses of various operators [operator]
|
Внутренний |
Передача Juice |
Check indexing operations [index]
|
Внутренний |
Передача Juice |
Check list items [list-item]
|
Внутренний |
Передача Juice |
Check dict items [dict-item]
|
Внутренний |
Передача Juice |
Check TypedDict items [typeddict-item]
|
Внутренний |
Передача Juice |
Check TypedDict Keys [typeddict-unknown-key]
|
Внутренний |
Передача Juice |
Check that type of target is known [has-type]
|
Внутренний |
Передача Juice |
Check for an issue with imports [import]
|
Внутренний |
Передача Juice |
Check that import target can be found [import-not-found]
|
Внутренний |
Передача Juice |
Check that import target can be found [import-untyped]
|
Внутренний |
Передача Juice |
Check that each name is defined once [no-redef]
|
Внутренний |
Передача Juice |
Check that called function returns a value [func-returns-value]
|
Внутренний |
Передача Juice |
Check instantiation of abstract classes [abstract]
|
Внутренний |
Передача Juice |
Safe handling of abstract type object types [type-abstract]
|
Внутренний |
Передача Juice |
Check that call to an abstract method via super is valid [safe-super]
|
Внутренний |
Передача Juice |
Check the target of NewType [valid-newtype]
|
Внутренний |
Передача Juice |
Check the return type of __exit__ [exit-return]
|
Внутренний |
Передача Juice |
Check that naming is consistent [name-match]
|
Внутренний |
Передача Juice |
Check that literal is used where expected [literal-required]
|
Внутренний |
Передача Juice |
Check that overloaded functions have an implementation [no-overload-impl]
|
Внутренний |
Передача Juice |
Check that coroutine return value is used [unused-coroutine]
|
Внутренний |
Передача Juice |
Warn about top level await expressions [top-level-await]
|
Внутренний |
Передача Juice |
Warn about await expressions used outside of coroutines [await-not-async]
|
Внутренний |
Передача Juice |
Check types in assert_type [assert-type]
|
Внутренний |
Передача Juice |
Check that function isn’t used in boolean context [truthy-function]
|
Внутренний |
Передача Juice |
Check that string formatting/interpolation is type-safe [str-format]
|
Внутренний |
Передача Juice |
Check for implicit bytes coercions [str-bytes-safe]
|
Внутренний |
Передача Juice |
Check that overloaded functions don’t overlap [overload-overlap]
|
Внутренний |
Передача Juice |
Notify about an annotation in an unchecked function [annotation-unchecked]
|
Внутренний |
Передача Juice |
Report syntax errors [syntax]
|
Внутренний |
Передача Juice |
Miscellaneous checks [misc]
|
Внутренний |
Передача Juice |
Check that type arguments exist [type-arg]
|
Внутренний |
Передача Juice |
Check that every function has an annotation [no-untyped-def]
|
Внутренний |
Передача Juice |
Check that cast is not redundant [redundant-cast]
|
Внутренний |
Передача Juice |
Check that methods do not have redundant Self annotations [redundant-self]
|
Внутренний |
Передача Juice |
Check that comparisons are overlapping [comparison-overlap]
|
Внутренний |
Передача Juice |
Check that no untyped functions are called [no-untyped-call]
|
Внутренний |
Передача Juice |
Check that function does not return Any value [no-any-return]
|
Внутренний |
Передача Juice |
Check that types have no Any components due to missing imports [no-any-unimported]
|
Внутренний |
Передача Juice |
Check that statement or expression is unreachable [unreachable]
|
Внутренний |
Передача Juice |
Check that expression is redundant [redundant-expr]
|
Внутренний |
Передача Juice |
Warn about variables that are defined only in some execution paths [possibly-undefined]
|
Внутренний |
Передача Juice |
Check that expression is not implicitly true in boolean context [truthy-bool]
|
Внутренний |
Передача Juice |
Check that iterable is not implicitly true in boolean context [truthy-iterable]
|
Внутренний |
Передача Juice |
Check that awaitable return value is used [unused-awaitable]
|
Внутренний |
Передача Juice |
Check that overrides of mutable attributes are safe [mutable-override]
|
Внутренний |
Передача Juice |
Dataclasses
|
Внутренний |
Передача Juice |
Data Class Transforms
|
Внутренний |
Передача Juice |
The attrs package
|
Внутренний |
Передача Juice |
Using a remote cache to speed up mypy runs
|
Внутренний |
Передача Juice |
Extended Callable types
|
Внутренний |
Передача Juice |
Why have both dynamic and static typing?
|
Внутренний |
Передача Juice |
Would my project benefit from static typing?
|
Внутренний |
Передача Juice |
Can I use mypy to type check my existing Python code?
|
Внутренний |
Передача Juice |
Will static typing make my programs run faster?
|
Внутренний |
Передача Juice |
Is mypy free?
|
Внутренний |
Передача Juice |
Can I use duck typing with mypy?
|
Внутренний |
Передача Juice |
I like Python and I have no need for static typing
|
Внутренний |
Передача Juice |
How are mypy programs different from normal Python?
|
Внутренний |
Передача Juice |
How is mypy different from Cython?
|
Внутренний |
Передача Juice |
Does it run on PyPy?
|
Внутренний |
Передача Juice |
Mypy is a cool project. Can I help?
|
Внутренний |
Передача Juice |
¶
|
Внутренний |
Передача Juice |
Sphinx
|
Внешний |
Передача Juice |
@pradyunsg
|
Внешний |
Передача Juice |
Furo
|
Внешний |
Передача Juice |
Welcome to mypy documentation!
|
Внутренний |
Передача Juice |