We’ve just uploaded mypy 1.8 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 mypy
You can read the full documentation for this release on Read the Docs.
Type-checking Improvements
- Do not intersect types in isinstance checks if at least one is final (Christoph Tyralla, PR 16330)
- Detect that @final class without __bool__ cannot have falsey instances (Ilya Priven, PR 16566)
- Do not allow TypedDict classes with extra keywords (Nikita Sobolev, PR 16438)
- Do not allow class-level keywords for NamedTuple (Nikita Sobolev, PR 16526)
- Make imprecise constraints handling more robust (Ivan Levkivskyi, PR 16502)
- Fix strict-optional in extending generic TypedDict (Ivan Levkivskyi, PR 16398)
- Allow type ignores of PEP 695 constructs (Shantanu, PR 16608)
- Enable type_check_only support for TypedDict and NamedTuple (Nikita Sobolev, PR 16469)
Performance Improvements
- Add fast path to analyzing special form assignments (Jukka Lehtosalo, PR 16561)
Improvements to Error Reporting
- Don't show documentation links for plugin error codes (Ivan Levkivskyi, PR 16383)
- Improve error messages for super checks and add more tests (Nikita Sobolev, PR 16393)
- Add error code for mutable covariant override (Ivan Levkivskyi, PR 16399)
Stubgen Improvements
- Preserve simple defaults in function signatures (Ali Hamdan, PR 15355)
- Include __all__ in output (Jelle Zijlstra, PR 16356)
- Fix stubgen regressions with pybind11 and mypy 1.7 (Chad Dombrova, PR 16504)
Stubtest Improvements
- Improve handling of unrepresentable defaults (Jelle Zijlstra, PR 16433)
- Print more helpful errors if a function is missing from stub (Alex Waygood, PR 16517)
- Support @type_check_only decorator (Nikita Sobolev, PR 16422)
- Warn about missing __del__ (Shantanu, PR 16456)
- Fix crashes with some uses of final and deprecated (Shantanu, PR 16457)
Fixes to Crashes
- Fix crash with type alias to Callable[[Unpack[Tuple[Any, ...]]], Any] (Alex Waygood, PR 16541)
- Fix crash on TypeGuard in __call__ (Ivan Levkivskyi, PR 16516)
- Fix crash on invalid enum in method (Ivan Levkivskyi, PR 16511)
- Fix crash on unimported Any in TypedDict (Ivan Levkivskyi, PR 16510)
Documentation Updates
- Update soft-error-limit default value to -1 (Sveinung Gundersen, PR 16542)
- Support Sphinx 7.x (Michael R. Crusoe, PR 16460)
Other Notable Changes and Fixes
- Allow mypy to output a junit file with per-file results (Matthew Wright, PR 16388)
Typeshed Updates
Please see git log for full list of standard library typeshed stub changes.
Acknowledgements
Thanks to all mypy contributors who contributed to this release:- Alex Waygood
- Ali Hamdan
- Chad Dombrova
- Christoph Tyralla
- Ilya Priven
- Ivan Levkivskyi
- Jelle Zijlstra
- Jukka Lehtosalo
- Marcel Telka
- Matthew Wright
- Michael R. Crusoe
- Nikita Sobolev
- Ole Peder Brandtzæg
- robjhornby
- Shantanu
- Sveinung Gundersen
- Valentin Stanciu
I’d also like to thank my employer, Dropbox, for supporting mypy development.
Posted by Wesley Collin Wright