Skip to content

Commit 371f780

Browse files
koogoroJukkaL
authored andcommitted
CHANGELOG.md update for 1.11 (#17539)
Add a changelog for the 1.11 release.
1 parent 2563da0 commit 371f780

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed

CHANGELOG.md

+168
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,174 @@
33
## Next release
44

55

6+
## Mypy 1.11
7+
8+
We’ve just uploaded mypy 1.11 to the Python Package Index ([PyPI](https://pypi.org/project/mypy/)). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
9+
10+
python3 -m pip install -U mypy
11+
12+
You can read the full documentation for this release on [Read the Docs](http://mypy.readthedocs.io).
13+
14+
#### Additional support for PEP 695
15+
16+
Mypy now has experimental support for the new type parameter syntax introduced in Python 3.12 ([PEP 695](https://peps.python.org/pep-0695/)).
17+
This feature is still experimental and must be enabled with the `--enable-incomplete-feature=NewGenericSyntax` flag.
18+
19+
This example demonstrates the new syntax:
20+
```python
21+
22+
def f[T](x: T) -> T: ...
23+
24+
reveal_type(f(1)) # Revealed type is 'int'
25+
```
26+
27+
This feature was contributed by Jukka Lehtosalo (PR [17233](https://github.com/python/mypy/pull/17233)).
28+
29+
30+
#### Support for `functools.partial`
31+
32+
Mypy now typechecks uses of `functools.partial`, which previous mypy would always accept.
33+
This example would previously pass:
34+
35+
```python
36+
from functools import partial
37+
38+
def f(a: int, b: str) -> None: ...
39+
40+
g = partial(f, 1)
41+
g(1) # error: Argument 1 to "f" has incompatible type "int"; expected "str" [arg-type]
42+
```
43+
44+
This feature was contributed by Shantanu (PR [16939](https://github.com/python/mypy/pull/16939)).
45+
46+
47+
#### Changes to stubtest
48+
* Stubtest: ignore `_ios_support` (Alex Waygood, PR [17270](https://github.com/python/mypy/pull/17270))
49+
* stubtest: changes for py313 (Shantanu, PR [17261](https://github.com/python/mypy/pull/17261))
50+
51+
52+
#### Changes to stubgen
53+
* stubgen: Gracefully handle invalid `Optional` and recognize aliases to PEP 604 unions (Ali Hamdan, PR [17386](https://github.com/python/mypy/pull/17386))
54+
* Fix stubgen for Python 3.13 (Jelle Zijlstra, PR [17290](https://github.com/python/mypy/pull/17290))
55+
* stubgen: preserve enum value initialisers (Shantanu, PR [17125](https://github.com/python/mypy/pull/17125))
56+
57+
58+
#### Changes to mypyc
59+
* [mypyc] Sync pythoncapi_compat.h (Jukka Lehtosalo, PR [17390](https://github.com/python/mypy/pull/17390))
60+
* [mypyc] Support Python 3.12 type alias syntax (PEP 695) (Jukka Lehtosalo, PR [17384](https://github.com/python/mypy/pull/17384))
61+
* [mypyc] Support new syntax for generic functions and classes (PEP 695) (Jukka Lehtosalo, PR [17357](https://github.com/python/mypy/pull/17357))
62+
* [mypyc] Fix ParamSpec (Shantanu, PR [17309](https://github.com/python/mypy/pull/17309))
63+
* [mypyc] Inline fast paths of integer unboxing operations (Jukka Lehtosalo, PR [17266](https://github.com/python/mypy/pull/17266))
64+
* [mypyc] Inline tagged integer arithmetic and bitwise operations (Jukka Lehtosalo, PR [17265](https://github.com/python/mypy/pull/17265))
65+
* [mypyc] Allow specifying primitives as pure (Jukka Lehtosalo, PR [17263](https://github.com/python/mypy/pull/17263))
66+
67+
68+
#### Changes to error reporting
69+
* Do not report plugin-generated methods with `explicit-override` (sobolevn, PR [17433](https://github.com/python/mypy/pull/17433))
70+
* Fix explicit type for partial (Ivan Levkivskyi, PR [17424](https://github.com/python/mypy/pull/17424))
71+
* Re-work overload overlap logic (Ivan Levkivskyi, PR [17392](https://github.com/python/mypy/pull/17392))
72+
* Use namespaces for function type variables (Ivan Levkivskyi, PR [17311](https://github.com/python/mypy/pull/17311))
73+
* Fix false positive for Final local scope variable in Protocol (GiorgosPapoutsakis, PR [17308](https://github.com/python/mypy/pull/17308))
74+
* Use Never in more messages, use ambiguous in join (Shantanu, PR [17304](https://github.com/python/mypy/pull/17304))
75+
* Log full path to config file in verbose output (dexterkennedy, PR [17180](https://github.com/python/mypy/pull/17180))
76+
* Added [prop-decorator] code for unsupported property decorators (#14461) (Christopher Barber, PR [16571](https://github.com/python/mypy/pull/16571))
77+
* Suppress second error message with `:=` and `[truthy-bool]` (Nikita Sobolev, PR [15941](https://github.com/python/mypy/pull/15941))
78+
* Error for assignment of functional Enum to variable of different name (Shantanu, PR [16805](https://github.com/python/mypy/pull/16805))
79+
* Add Error format support, and JSON output option (Tushar Sadhwani, PR [11396](https://github.com/python/mypy/pull/11396))
80+
81+
82+
#### Fixes for crashes
83+
* Fix daemon crash on invalid type in TypedDict (Ivan Levkivskyi, PR [17495](https://github.com/python/mypy/pull/17495))
84+
* Some cleanup in partial plugin (Ivan Levkivskyi, PR [17423](https://github.com/python/mypy/pull/17423))
85+
* Fix crash when overriding with unpacked TypedDict (Ivan Levkivskyi, PR [17359](https://github.com/python/mypy/pull/17359))
86+
* Fix crash on TypedDict unpacking for ParamSpec (Ivan Levkivskyi, PR [17358](https://github.com/python/mypy/pull/17358))
87+
* Fix crash involving recursive union of tuples (Ivan Levkivskyi, PR [17353](https://github.com/python/mypy/pull/17353))
88+
* Fix crash on invalid callable property override (Ivan Levkivskyi, PR [17352](https://github.com/python/mypy/pull/17352))
89+
* Fix crash on unpacking self in NamedTuple (Ivan Levkivskyi, PR [17351](https://github.com/python/mypy/pull/17351))
90+
* Fix crash on recursive alias with an optional type (Ivan Levkivskyi, PR [17350](https://github.com/python/mypy/pull/17350))
91+
* Fix type comments crash inside generic definitions (Bénédikt Tran, PR [16849](https://github.com/python/mypy/pull/16849))
92+
93+
94+
#### Changes to documentation
95+
* Mention --enable-incomplete-feature=NewGenericSyntax (Shantanu, PR [17462](https://github.com/python/mypy/pull/17462))
96+
* Use inline config in the optional error codes docs (Shantanu, PR [17374](https://github.com/python/mypy/pull/17374))
97+
* docs: Use lower-case generics (Seo Sanghyeon, PR [17176](https://github.com/python/mypy/pull/17176))
98+
* Add documentation for show-error-code-links (GiorgosPapoutsakis, PR [17144](https://github.com/python/mypy/pull/17144))
99+
* Update CONTRIBUTING.md to include commands for Windows (GiorgosPapoutsakis, PR [17142](https://github.com/python/mypy/pull/17142))
100+
101+
102+
#### Other notable contributions
103+
* Fix ParamSpec inference against TypeVarTuple (Ivan Levkivskyi, PR [17431](https://github.com/python/mypy/pull/17431))
104+
* Always allow lambda calls (Ivan Levkivskyi, PR [17430](https://github.com/python/mypy/pull/17430))
105+
* Fix error reporting on cached run after uninstallation of third party library (Shantanu, PR [17420](https://github.com/python/mypy/pull/17420))
106+
* Fix isinstance checks with PEP 604 unions containing None (Shantanu, PR [17415](https://github.com/python/mypy/pull/17415))
107+
* Use (simplified) unions instead of joins for tuple fallbacks (Ivan Levkivskyi, PR [17408](https://github.com/python/mypy/pull/17408))
108+
* Fix self-referential upper bound in new-style type variables (Ivan Levkivskyi, PR [17407](https://github.com/python/mypy/pull/17407))
109+
* Consider overlap between instances and callables (Ivan Levkivskyi, PR [17389](https://github.com/python/mypy/pull/17389))
110+
* Support `enum.member` for python3.11+ (Nikita Sobolev, PR [17382](https://github.com/python/mypy/pull/17382))
111+
* Allow new-style self-types in classmethods (Ivan Levkivskyi, PR [17381](https://github.com/python/mypy/pull/17381))
112+
* Support `enum.nonmember` for python3.11+ (Nikita Sobolev, PR [17376](https://github.com/python/mypy/pull/17376))
113+
* Fix isinstance with type aliases to PEP 604 unions (Shantanu, PR [17371](https://github.com/python/mypy/pull/17371))
114+
* Properly handle unpacks in overlap checks (Ivan Levkivskyi, PR [17356](https://github.com/python/mypy/pull/17356))
115+
* Fix type application for classes with generic constructors (Ivan Levkivskyi, PR [17354](https://github.com/python/mypy/pull/17354))
116+
* Use polymorphic inference in unification (Ivan Levkivskyi, PR [17348](https://github.com/python/mypy/pull/17348))
117+
* Update 'typing_extensions' to >=4.6.0 to fix python 3.12 error (Ben Brown, PR [17312](https://github.com/python/mypy/pull/17312))
118+
* Avoid does not return error in lambda (Shantanu, PR [17294](https://github.com/python/mypy/pull/17294))
119+
* Fix for bug with descriptors in non-strict-optional (Max Murin, PR [17293](https://github.com/python/mypy/pull/17293))
120+
* Don’t leak unreachability from lambda body to surrounding scope (Anders Kaseorg, PR [17287](https://github.com/python/mypy/pull/17287))
121+
* Validate more about overrides on untyped methods (Steven Troxler, PR [17276](https://github.com/python/mypy/pull/17276))
122+
* Fix case involving non-ASCII chars on Windows (Alexander Leopold Shon, PR [17275](https://github.com/python/mypy/pull/17275))
123+
* Support namedtuple.__replace__ in Python 3.13 (Shantanu, PR [17259](https://github.com/python/mypy/pull/17259))
124+
* Fix for type narrowing of negative integer literals (gilesgc, PR [17256](https://github.com/python/mypy/pull/17256))
125+
* Support rename=True in collections.namedtuple (Jelle Zijlstra, PR [17247](https://github.com/python/mypy/pull/17247))
126+
* [dmypy] sort list of files for update by extension (Valentin Stanciu, PR [17245](https://github.com/python/mypy/pull/17245))
127+
* fix #16935 fix type of tuple[X,Y] expression (urnest, PR [17235](https://github.com/python/mypy/pull/17235))
128+
* Do not forget that a `TypedDict` was wrapped in `Unpack` after a `name-defined` error occurred. (Christoph Tyralla, PR [17226](https://github.com/python/mypy/pull/17226))
129+
* fix: annotated argument's `var` node type is explicit, not inferred (bzoracler, PR [17217](https://github.com/python/mypy/pull/17217))
130+
* Enum private attributes are not enum members (Ali Hamdan, PR [17182](https://github.com/python/mypy/pull/17182))
131+
* Fix Literal strings containing pipe characters (Jelle Zijlstra, PR [17148](https://github.com/python/mypy/pull/17148))
132+
* Add support for __spec__ (Shantanu, PR [14739](https://github.com/python/mypy/pull/14739))
133+
134+
135+
#### Typeshed Updates
136+
137+
Please see [git log](https://github.com/python/typeshed/commits/main?after=6dda799d8ad1d89e0f8aad7ac41d2d34bd838ace+0&branch=main&path=stdlib) for full list of standard library typeshed stub changes.
138+
139+
140+
#### Acknowledgements
141+
Thanks to all mypy contributors who contributed to this release:
142+
143+
- Alex Waygood
144+
- Alexander Leopold Shon
145+
- Ali Hamdan
146+
- Anders Kaseorg
147+
- Ben Brown
148+
- Bénédikt Tran
149+
- bzoracler
150+
- Christoph Tyralla
151+
- Christopher Barber
152+
- dexterkennedy
153+
- gilesgc
154+
- GiorgosPapoutsakis
155+
- Ivan Levkivskyi
156+
- Jelle Zijlstra
157+
- Jukka Lehtosalo
158+
- Marc Mueller
159+
- Matthieu Devlin
160+
- Michael R. Crusoe
161+
- Nikita Sobolev
162+
- Seo Sanghyeon
163+
- Shantanu
164+
- sobolevn
165+
- Steven Troxler
166+
- Tadeu Manoel
167+
- Tamir Duberstein
168+
- Tushar Sadhwani
169+
- urnest
170+
- Valentin Stanciu
171+
172+
I’d also like to thank my employer, Dropbox, for supporting mypy development.
173+
6174

7175
## Mypy 1.10
8176

0 commit comments

Comments
 (0)