You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add basic support for recursive TypeVar defaults (PEP 696) (Marc Mueller, PR [16878](https://github.com/python/mypy/pull/16878))
15
+
#### Support TypeIs (PEP 742)
19
16
20
-
#### Other Notable Changes and Fixes
21
-
- fix: incorrect returned type of access descriptors on unions of types (Matthieu Devlin, PR [16604](https://github.com/python/mypy/pull/16604))
22
-
- Fix crash when expanding invalid Unpack in a `Callable` alias (Ali Hamdan, PR [17028](https://github.com/python/mypy/pull/17028))
23
-
- Fix string formatting for string enums (roberfi, PR [16555](https://github.com/python/mypy/pull/16555))
24
-
- Narrow individual items when matching a tuple to a sequence pattern (Loïc Simon, PR [16905](https://github.com/python/mypy/pull/16905))
25
-
- Add TypeGuard and TypeIs traversing in TypeTraverserVisitor (Evgeniy Slobodkin, PR [17071](https://github.com/python/mypy/pull/17071))
26
-
- Improve error message for bound typevar in TypeAliasType (Ali Hamdan, PR [17053](https://github.com/python/mypy/pull/17053))
27
-
- Fix TypedDict init from Type with optional keys (Marc Mueller, PR [17068](https://github.com/python/mypy/pull/17068))
28
-
- Improve yield from inference for unions of generators (Shantanu, PR [16717](https://github.com/python/mypy/pull/16717))
29
-
- Support `TypeAliasType` in a class scope (Ali Hamdan, PR [17038](https://github.com/python/mypy/pull/17038))
- stubtest: correct type annotations in _Arguments (Sam Xifaras, PR [16897](https://github.com/python/mypy/pull/16897))
24
+
defis_str(s: object) -> TypeIs[str]:
25
+
returnisinstance(s, str)
26
+
27
+
deff(o: str|int) -> None:
28
+
if is_str(o):
29
+
# Type of o is 'str'
30
+
...
31
+
else:
32
+
# Type of o is 'int'
33
+
...
34
+
```
35
+
36
+
`TypeIs` will be added to the `typing` module in Python 3.13, but it
37
+
can be used on earlier Python versions by importing it from
38
+
`typing_extensions`.
39
+
40
+
This feature was contributed by Jelle Zijlstra (PR [16898](https://github.com/python/mypy/pull/16898)).
41
+
42
+
#### Support TypeVar Defaults (PEP 696)
43
+
44
+
[PEP 696](https://peps.python.org/pep-0696/) adds support for type parameter defaults.
45
+
Example:
46
+
47
+
```python
48
+
from typing import Generic
49
+
from typing_extensions import TypeVar
50
+
51
+
T = TypeVar("T", default=int)
52
+
53
+
classC(Generic[T]):
54
+
...
55
+
56
+
x: C =...
57
+
y: C[str] =...
58
+
reveal_type(x) # C[int], because of the default
59
+
reveal_type(y) # C[str]
60
+
```
61
+
62
+
TypeVar defaults will be added to the `typing` module in Python 3.13, but they
63
+
can be used with earlier Python releases by importing `TypeVar` from
64
+
`typing_extensions`.
65
+
66
+
This feature was contributed by Marc Mueller (PR [16878](https://github.com/python/mypy/pull/16878)
67
+
and PR [16925](https://github.com/python/mypy/pull/16925)).
68
+
69
+
#### Detect Additional Unsafe Uses of super()
70
+
71
+
Mypy will reject unsafe uses of `super()` more consistently, when the target has a
72
+
trivial (empty) body. Example:
73
+
74
+
```python
75
+
classProto(Protocol):
76
+
defmethod(self) -> int: ...
77
+
78
+
classSub(Proto):
79
+
defmethod(self) -> int:
80
+
returnsuper().meth() # Error (unsafe)
81
+
```
82
+
83
+
This feature was contributed by Shantanu (PR [16756](https://github.com/python/mypy/pull/16756)).
84
+
85
+
#### Stubgen Improvements
86
+
- Preserve empty tuple annotation (Ali Hamdan, PR [16907](https://github.com/python/mypy/pull/16907))
87
+
- Add support for PEP 570 positional-only parameters (Ali Hamdan, PR [16904](https://github.com/python/mypy/pull/16904))
88
+
- Replace obsolete typing aliases with builtin containers (Ali Hamdan, PR [16780](https://github.com/python/mypy/pull/16780))
89
+
- Fix generated dataclass `__init__` signature (Ali Hamdan, PR [16906](https://github.com/python/mypy/pull/16906))
53
90
54
91
#### Mypyc Improvements
55
-
-[mypyc] Refactor: add two list primitive ops (Jukka Lehtosalo, PR [17058](https://github.com/python/mypy/pull/17058))
56
-
-[mypyc] Refactor: use primitive op for initializing list item (Jukka Lehtosalo, PR [17056](https://github.com/python/mypy/pull/17056))
57
-
-[mypyc] Refactor: move tagged int related code to mypyc.lower.int_ops (Jukka Lehtosalo, PR [17052](https://github.com/python/mypy/pull/17052))
-[mypyc] Implement lowering pass and add primitives for int (in)equality (Jukka Lehtosalo, PR [17027](https://github.com/python/mypy/pull/17027))
60
-
-[mypyc] Optimize away some bool/bit registers (Jukka Lehtosalo, PR [17022](https://github.com/python/mypy/pull/17022))
61
-
-[mypyc] Provide an easier way to define IR-to-IR transforms (Jukka Lehtosalo, PR [16998](https://github.com/python/mypy/pull/16998))
62
-
-[mypyc] Remangle redefined names produced by async with (Richard Si, PR [16408](https://github.com/python/mypy/pull/16408))
63
-
-[mypyc] Optimize TYPE_CHECKING to False at Runtime (Srinivas Lade, PR [16263](https://github.com/python/mypy/pull/16263))
64
-
-[mypyc] Fix compilation of unreachable comprehensions (Richard Si, PR [15721](https://github.com/python/mypy/pull/15721))
65
-
-[mypyc] Don't crash on non-inlinable final local reads (Richard Si, PR [15719](https://github.com/python/mypy/pull/15719))
92
+
93
+
- Provide an easier way to define IR-to-IR transforms (Jukka Lehtosalo, PR [16998](https://github.com/python/mypy/pull/16998))
94
+
- Implement lowering pass and add primitives for int (in)equality (Jukka Lehtosalo, PR [17027](https://github.com/python/mypy/pull/17027))
- Docs: adding missing `mutable-override` to section title (James Braza, PR [16886](https://github.com/python/mypy/pull/16886))
104
+
- Import `TypedDict` from `typing` instead of `typing_extensions` (Riccardo Di Maio, PR [16958](https://github.com/python/mypy/pull/16958))
105
+
- Add missing `mutable-override` to section title (James Braza, PR [16886](https://github.com/python/mypy/pull/16886))
106
+
107
+
#### Error Reporting Improvements
108
+
109
+
- Improve error message for bound TypeVar in TypeAliasType (Ali Hamdan, PR [17053](https://github.com/python/mypy/pull/17053))
110
+
- Use lower-case generics more consistently in error messages (Jukka Lehtosalo, PR [17035](https://github.com/python/mypy/pull/17035))
111
+
112
+
#### Other Notable Changes and Fixes
113
+
- Fix incorrect inferred type when accessing descriptor on union type (Matthieu Devlin, PR [16604](https://github.com/python/mypy/pull/16604))
114
+
- Fix crash when expanding invalid `Unpack` in a `Callable` alias (Ali Hamdan, PR [17028](https://github.com/python/mypy/pull/17028))
115
+
- Fix false positive when string formatting with string enum (roberfi, PR [16555](https://github.com/python/mypy/pull/16555))
116
+
- Narrow individual items when matching a tuple to a sequence pattern (Loïc Simon, PR [16905](https://github.com/python/mypy/pull/16905))
117
+
- Fix false positive from type variable within TypeGuard or TypeIs (Evgeniy Slobodkin, PR [17071](https://github.com/python/mypy/pull/17071))
118
+
- Improve `yield from` inference for unions of generators (Shantanu, PR [16717](https://github.com/python/mypy/pull/16717))
119
+
- Support `TypeAliasType` in a class scope (Ali Hamdan, PR [17038](https://github.com/python/mypy/pull/17038))
- Add reverted typeshed commit that uses `ParamSpec` for `functools.wraps` (Tamir Duberstein, PR [16942](https://github.com/python/mypy/pull/16942))
122
+
- Fix type narrowing for `types.EllipsisType` (Shantanu, PR [17003](https://github.com/python/mypy/pull/17003))
123
+
- Fix single item enum match type exhaustion (Oskari Lehto, PR [16966](https://github.com/python/mypy/pull/16966))
124
+
- Improve type inference with empty collections (Marc Mueller, PR [16994](https://github.com/python/mypy/pull/16994))
125
+
- Fix override checking for decorated property (Shantanu, PR [16856](https://github.com/python/mypy/pull/16856))
126
+
- Fix narrowing on match with function subject (Edward Paget, PR [16503](https://github.com/python/mypy/pull/16503))
127
+
- Allow `+N` within `Literal[...]` (Spencer Brown, PR [16910](https://github.com/python/mypy/pull/16910))
128
+
- Experimental: Support TypedDict within `type[...]` (Marc Mueller, PR [16963](https://github.com/python/mypy/pull/16963))
129
+
- Experimtental: Fix issue with TypedDict with optional keys in `type[...]` (Marc Mueller, PR [17068](https://github.com/python/mypy/pull/17068))
73
130
74
131
#### Acknowledgements
75
132
Thanks to all mypy contributors who contributed to this release:
0 commit comments