Sourced from mypy's changelog.
Mypy Release Notes
Next Release
Mypy 1.20
We’ve just uploaded mypy 1.20.0 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypyYou can read the full documentation for this release on Read the Docs.
Planned Changes to Defaults and Flags in Mypy 2.0
As a reminder, we are planning to enable
--local-partial-typesby default in mypy 2.0, which will likely be the next feature release. This will often require at least minor code changes. This option is implicitly enabled by mypy daemon, so this makes the behavior of daemon and non-daemon modes consistent.Note that this release improves the compatibility of
--local-partial-typessignificantly to make the switch easier (see below for more).This can also be configured in a mypy configuration file (use
Falseto disable):local_partial_types = TrueFor more information, refer to the documentation.
We will also enable
--strict-bytesby default in mypy 2.0. This usually requires at most minor code changes to adopt. For more information, refer to the documentation.Finally,
--allow-redefinition-newwill be renamed to--allow-redefinition. If you want to continue using the older--allow-redefinitionsemantics which are less flexible (e.g. limited support for conditional redefinitions), you can switch to--allow-redefinition-old, which is currently supported as an alias to the legacy--allow-redefinitionbehavior. To use--allow-redefinitionin the upcoming mypy 2.0, you can't use--no-local-partial-types. For more information, refer to the documentation.Better Type Narrowing
Mypy's implementation of narrowing has been substantially reworked. Mypy will now narrow more aggressively, more consistently, and more correctly. In particular, you are likely to notice new narrowing behavior in equality expressions (
==), containment expressions (in),
... (truncated)
770d3ca
Remove +dev from version4738ffa
Changelog updates for 1.20 (#21109)b4f07a7
Use 'native-parser' instead of 'native-parse' for optional dependency
(#21115)7bec7b7
[mypyc] Document librt and librt.base64 (#21114)c482596
--allow-redefinition-new is no longer experimental (#21110)c916ca3
sdist: include misc/{diff-cache,apply-cache-diff}.py for
`mypy/test/test_di...b137e4e
[mypyc] Speed up native-to-native imports within the same group (#21101)978b711
[mypyc] Fix range loop variable off-by-one after loop exit (#21098)67ada30
[stubtest] Check runtime availability of private types not marked
`@type_chec...bdef6ef
librt cache tests: build respecting MYPY_TEST_PREFIX (#21097)