Bump mypy from 1.18.1 to 1.19.0
Bumps mypy from 1.18.1 to 1.19.0.
Changelog
Sourced from mypy's changelog.
Mypy Release Notes
Next Release
Drop Support for Python 3.9
Mypy no longer supports running with Python 3.9, which has reached end-of-life. When running mypy with Python 3.10+, it is still possible to type check code that needs to support Python 3.9 with the
--python-version 3.9argument. Support for this will be dropped in the first half of 2026!Contributed by Marc Mueller (PR 20156).
Mypy 1.19
We’ve just uploaded mypy 1.19.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.
Python 3.9 Support Ending Soon
This is the last mypy feature release that supports Python 3.9, which reached end of life in October 2025.
Performance Improvements
- Switch to a more dynamic SCC processing logic (Ivan Levkivskyi, PR 20053)
- Speed up type aliases (Ivan Levkivskyi, PR 19810)
Fixed‑Format Cache Improvements
Mypy uses a cache by default to speed up incremental runs by reusing partial results from earlier runs. Mypy 1.18 added a new binary fixed-format cache representation as an experimental feature. The feature is no longer experimental, and we are planning to enable it by default in a future mypy release (possibly 1.20), since it's faster and uses less space than the original, JSON-based cache format. Use
--fixed-format-cacheto enable the fixed-format cache.Mypy now has an extra dependency on the
librtPyPI package, as it's needed for cache serialization and deserialization.Mypy ships with a tool to convert fixed-format cache files to the old JSON format. Example of how to use this:
$ python -m mypy.exportjson .mypy_cache/.../my_module.data.ff
... (truncated)
Commits
0f068c9Remove +dev6d5cf52Various updates to 1.19 changelog (#20304)3c81308Add draft version of 1.19 release notes (#20296)1999a20[mypyc] librt base64: use existing SIMD CPU dispatch by customizing build fla...1b94fbb[mypyc] Fix vtable pointer with inherited dunder new (#20302)13369cb[mypyc] Fix crash on super in generator (#20291)a087a58Update import map when new modules added (#20271)35e843c[mypyc] Add efficient librt.base64.b64decode (#20263)094f66d[mypyc] Add repr to AssignmentTarget subclasses (#20258)0738db3Do not push partial types to the binder (#20202)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)