|
2 | 2 |
|
3 | 3 | ## Next Release
|
4 | 4 |
|
| 5 | +## Mypy 1.17 (Unreleased) |
| 6 | + |
| 7 | +We’ve just uploaded mypy 1.17 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)). |
| 8 | +Mypy is a static type checker for Python. This release includes new features and bug fixes. |
| 9 | +You can install it as follows: |
| 10 | + |
| 11 | + python3 -m pip install -U mypy |
| 12 | + |
| 13 | +You can read the full documentation for this release on [Read the Docs](http://mypy.readthedocs.io). |
| 14 | + |
5 | 15 | ### Remove Support for targeting Python 3.8
|
6 | 16 |
|
7 | 17 | Mypy now requires `--python-version 3.9` or greater. Support for only Python 3.8 is
|
@@ -29,6 +39,119 @@ Mypy only supports Python 3.9+. The \--force-uppercase-builtins flag is now depr
|
29 | 39 |
|
30 | 40 | Contributed by Marc Mueller (PR [19176](https://github.com/python/mypy/pull/19176))
|
31 | 41 |
|
| 42 | +### Mypyc Fixes and Improvements |
| 43 | + |
| 44 | +* Fix exception swallowing in async try/finally blocks with await (Chainfire, PR [19353](https://github.com/python/mypy/pull/19353)) |
| 45 | +* Fix AttributeError in async try/finally with mixed return paths (Chainfire, PR [19361](https://github.com/python/mypy/pull/19361)) |
| 46 | +* Derive .c file name from full module name if using multi_file (Jukka Lehtosalo, PR [19278](https://github.com/python/mypy/pull/19278)) |
| 47 | +* Support overriding the group name used in output files (Jukka Lehtosalo, PR [19272](https://github.com/python/mypy/pull/19272)) |
| 48 | +* Make generated generator helper method internal (Jukka Lehtosalo, PR [19268](https://github.com/python/mypy/pull/19268)) |
| 49 | +* Add note about using non-native class to subclass built-in types (Jukka Lehtosalo, PR [19236](https://github.com/python/mypy/pull/19236)) |
| 50 | +* Make some generated classes implicitly final (Jukka Lehtosalo, PR [19235](https://github.com/python/mypy/pull/19235)) |
| 51 | +* Free coroutine after await encounters StopIteration (Jukka Lehtosalo, PR [19231](https://github.com/python/mypy/pull/19231)) |
| 52 | +* Use non-tagged integer for generator label (Jukka Lehtosalo, PR [19218](https://github.com/python/mypy/pull/19218)) |
| 53 | +* Merge generator and environment classes in simple cases (Jukka Lehtosalo, PR [19207](https://github.com/python/mypy/pull/19207)) |
| 54 | +* Don't simplify module prefixes if using separate compilation (Jukka Lehtosalo, PR [19206](https://github.com/python/mypy/pull/19206)) |
| 55 | +* Test function nesting with async functions (Jukka Lehtosalo, PR [19203](https://github.com/python/mypy/pull/19203)) |
| 56 | +* Enable partial, unsafe support for free-threading (Jukka Lehtosalo, PR [19167](https://github.com/python/mypy/pull/19167)) |
| 57 | +* Add comment about incref/decref and free-threaded builds (Jukka Lehtosalo, PR [19155](https://github.com/python/mypy/pull/19155)) |
| 58 | +* Refactor extension module C generation and generated C (Jukka Lehtosalo, PR [19126](https://github.com/python/mypy/pull/19126)) |
| 59 | +* Fix incref/decref on free-threaded builds (Jukka Lehtosalo, PR [19127](https://github.com/python/mypy/pull/19127)) |
| 60 | +* Remove last unreachable block from mypyc code (Stanislav Terliakov, PR [19086](https://github.com/python/mypy/pull/19086)) |
| 61 | + |
| 62 | +### Stubgen Improvements |
| 63 | + |
| 64 | +* stubgen: add test case for handling `Incomplete` return types (Alexey Makridenko, PR [19253](https://github.com/python/mypy/pull/19253)) |
| 65 | +* stubgen: add import for `types` in `__exit__` method signature (Alexey Makridenko, PR [19120](https://github.com/python/mypy/pull/19120)) |
| 66 | +* stubgenc: add support for including class and property docstrings (Chad Dombrova, PR [17964](https://github.com/python/mypy/pull/17964)) |
| 67 | +* stubgen: Don't generate `Incomplete | None = None` argument annotation (Sebastian Rittau, PR [19097](https://github.com/python/mypy/pull/19097)) |
| 68 | +* Support several more constructs in stubgen's AliasPrinter (Stanislav Terliakov, PR [18888](https://github.com/python/mypy/pull/18888)) |
| 69 | + |
| 70 | +### Stubtest Improvements |
| 71 | + |
| 72 | +* Syntax error messages capitalization (Charulata, PR [19114](https://github.com/python/mypy/pull/19114)) |
| 73 | + |
| 74 | +### Miscellaneous Fixes and Improvements |
| 75 | + |
| 76 | +* Combine the revealed types of multiple iteration steps in a more robust manner (Christoph Tyralla, PR [19324](https://github.com/python/mypy/pull/19324)) |
| 77 | +* Improve the handling of "iteration dependent" errors and notes in finally clauses (Christoph Tyralla, PR [19270](https://github.com/python/mypy/pull/19270)) |
| 78 | +* Lessen dmypy suggest path limitations for Windows machines (CoolCat467, PR [19337](https://github.com/python/mypy/pull/19337)) |
| 79 | +* Type ignore comments erroneously marked as unused by dmypy (Charlie Denton, PR [15043](https://github.com/python/mypy/pull/15043)) |
| 80 | +* Handle corner case: protocol vs classvar vs descriptor (Ivan Levkivskyi, PR [19277](https://github.com/python/mypy/pull/19277)) |
| 81 | +* Fix `exhaustive-match` error code in title (johnthagen, PR [19276](https://github.com/python/mypy/pull/19276)) |
| 82 | +* Fix couple inconsistencies in protocols vs TypeType (Ivan Levkivskyi, PR [19267](https://github.com/python/mypy/pull/19267)) |
| 83 | +* Fix missing error context for unpacking assignment involving star expression (Brian Schubert, PR [19258](https://github.com/python/mypy/pull/19258)) |
| 84 | +* Fix and simplify error de-duplication (Ivan Levkivskyi, PR [19247](https://github.com/python/mypy/pull/19247)) |
| 85 | +* Add regression test for narrowing union of mixins (Shantanu, PR [19266](https://github.com/python/mypy/pull/19266)) |
| 86 | +* Disallow `ClassVar` in type aliases (Brian Schubert, PR [19263](https://github.com/python/mypy/pull/19263)) |
| 87 | +* Refactor/unify access to static attributes (Ivan Levkivskyi, PR [19254](https://github.com/python/mypy/pull/19254)) |
| 88 | +* Clean-up and move operator access to checkmember.py (Ivan Levkivskyi, PR [19250](https://github.com/python/mypy/pull/19250)) |
| 89 | +* Add script that prints compiled files when self compiling (Jukka Lehtosalo, PR [19260](https://github.com/python/mypy/pull/19260)) |
| 90 | +* Fix help message url for "None and Optional handling" section (Guy Wilson, PR [19252](https://github.com/python/mypy/pull/19252)) |
| 91 | +* Display FQN for imported base classes in errors about incompatible overrides (Mikhail Golubev, PR [19115](https://github.com/python/mypy/pull/19115)) |
| 92 | +* Fix a minor merge conflict caused by #19118 (Christoph Tyralla, PR [19246](https://github.com/python/mypy/pull/19246)) |
| 93 | +* Avoid false `unreachable`, `redundant-expr`, and `redundant-casts` warnings in loops more robustly and efficiently, and avoid multiple `revealed type` notes for the same line (Christoph Tyralla, PR [19118](https://github.com/python/mypy/pull/19118)) |
| 94 | +* Fix type extraction from `isinstance` checks (Stanislav Terliakov, PR [19223](https://github.com/python/mypy/pull/19223)) |
| 95 | +* Erase stray typevars in functools.partial generic (Stanislav Terliakov, PR [18954](https://github.com/python/mypy/pull/18954)) |
| 96 | +* Make infer_condition_value recognize the whole truth table (Stanislav Terliakov, PR [18944](https://github.com/python/mypy/pull/18944)) |
| 97 | +* Support type aliases, `NamedTuple` and `TypedDict` in constrained TypeVar defaults (Stanislav Terliakov, PR [18884](https://github.com/python/mypy/pull/18884)) |
| 98 | +* Move dataclass kw_only fields to the end of the signature (Stanislav Terliakov, PR [19018](https://github.com/python/mypy/pull/19018)) |
| 99 | +* Deprecated --force-uppercase-builtins flag (Marc Mueller, PR [19176](https://github.com/python/mypy/pull/19176)) |
| 100 | +* Provide a better fallback value for the python_version option (Marc Mueller, PR [19162](https://github.com/python/mypy/pull/19162)) |
| 101 | +* Avoid spurious non-overlapping eq error with metaclass with `__eq__` (Michael J. Sullivan, PR [19220](https://github.com/python/mypy/pull/19220)) |
| 102 | +* Remove --show-speed-regression in primer (Shantanu, PR [19226](https://github.com/python/mypy/pull/19226)) |
| 103 | +* Add flag to raise error if match statement does not match exaustively (Donal Burns, PR [19144](https://github.com/python/mypy/pull/19144)) |
| 104 | +* Narrow type variable bounds in binder (Ivan Levkivskyi, PR [19183](https://github.com/python/mypy/pull/19183)) |
| 105 | +* Add regression test for dataclass typeguard (Shantanu, PR [19214](https://github.com/python/mypy/pull/19214)) |
| 106 | +* Add classifier for Python 3.14 (Marc Mueller, PR [19199](https://github.com/python/mypy/pull/19199)) |
| 107 | +* Further cleanup after dropping Python 3.8 (Marc Mueller, PR [19197](https://github.com/python/mypy/pull/19197)) |
| 108 | +* Fix nondeterministic type checking by making join with explicit Protocol and type promotion commute (Shantanu, PR [18402](https://github.com/python/mypy/pull/18402)) |
| 109 | +* Infer constraints eagerly if actual is Any (Ivan Levkivskyi, PR [19190](https://github.com/python/mypy/pull/19190)) |
| 110 | +* Include walrus assignments in conditional inference (Stanislav Terliakov, PR [19038](https://github.com/python/mypy/pull/19038)) |
| 111 | +* Use PEP 604 syntax for TypeStrVisitor (Marc Mueller, PR [19179](https://github.com/python/mypy/pull/19179)) |
| 112 | +* Use checkmember.py to check protocol subtyping (Ivan Levkivskyi, PR [18943](https://github.com/python/mypy/pull/18943)) |
| 113 | +* Update test requirements (Marc Mueller, PR [19163](https://github.com/python/mypy/pull/19163)) |
| 114 | +* Use more lower case builtins in error messages (Marc Mueller, PR [19177](https://github.com/python/mypy/pull/19177)) |
| 115 | +* Remove force_uppercase_builtins default from test helpers (Marc Mueller, PR [19173](https://github.com/python/mypy/pull/19173)) |
| 116 | +* Start testing Python 3.14 (Marc Mueller, PR [19164](https://github.com/python/mypy/pull/19164)) |
| 117 | +* Fix example to use correct method of Stack (Łukasz Kwieciński, PR [19123](https://github.com/python/mypy/pull/19123)) |
| 118 | +* Fix nondeterministic type checking caused by nonassociative of None joins (Shantanu, PR [19158](https://github.com/python/mypy/pull/19158)) |
| 119 | +* Drop support for --python-version 3.8 (Marc Mueller, PR [19157](https://github.com/python/mypy/pull/19157)) |
| 120 | +* Fix nondeterministic type checking caused by nonassociativity of joins (Shantanu, PR [19147](https://github.com/python/mypy/pull/19147)) |
| 121 | +* Fix nondeterministic type checking by making join between TypeType and TypeVar commute (Shantanu, PR [19149](https://github.com/python/mypy/pull/19149)) |
| 122 | +* Forbid `.pop` of `Readonly` `NotRequired` TypedDict items (Stanislav Terliakov, PR [19133](https://github.com/python/mypy/pull/19133)) |
| 123 | +* Emit a friendlier warning on invalid exclude regex, instead of a stacktrace (wyattscarpenter, PR [19102](https://github.com/python/mypy/pull/19102)) |
| 124 | +* Update dmypy/client.py: Enable ANSI color codes for windows cmd (wyattscarpenter, PR [19088](https://github.com/python/mypy/pull/19088)) |
| 125 | +* Extend special case for context-based typevar inference to typevar unions in return position (Stanislav Terliakov, PR [18976](https://github.com/python/mypy/pull/18976)) |
| 126 | + |
| 127 | +### Acknowledgements |
| 128 | + |
| 129 | +Thanks to all mypy contributors who contributed to this release: |
| 130 | + |
| 131 | +* Alexey Makridenko |
| 132 | +* Brian Schubert |
| 133 | +* Chad Dombrova |
| 134 | +* Chainfire |
| 135 | +* Charlie Denton |
| 136 | +* Charulata |
| 137 | +* Christoph Tyralla |
| 138 | +* CoolCat467 |
| 139 | +* Donal Burns |
| 140 | +* Guy Wilson |
| 141 | +* Ivan Levkivskyi |
| 142 | +* johnthagen |
| 143 | +* Jukka Lehtosalo |
| 144 | +* Łukasz Kwieciński |
| 145 | +* Marc Mueller |
| 146 | +* Michael J. Sullivan |
| 147 | +* Mikhail Golubev |
| 148 | +* Sebastian Rittau |
| 149 | +* Shantanu |
| 150 | +* Stanislav Terliakov |
| 151 | +* wyattscarpenter |
| 152 | + |
| 153 | +I’d also like to thank my employer, Dropbox, for supporting mypy development. |
| 154 | + |
32 | 155 | ## Mypy 1.16
|
33 | 156 |
|
34 | 157 | We’ve just uploaded mypy 1.16 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)).
|
|
0 commit comments