Release Notes
Released on 2026-01-21.
Bug fixes
- Fix
--force-excludewhen excluding entire directories (#22595) - Fix missing syntax highlighting for aliased import names (#22675)
- Highlight interpolated-parts in t-strings (#22674)
- Fix the inferred MRO of functional namedtuple classes (#22722)
- Make special cases for subscript inference exhaustive, ensuring that the special casing for tuple subscripts is applied when a union of tuples or an alias to a tuple type is subscripted (#22035)
LSP server
- Improve completion suggestions inside class definitions (#22571)
- Improve performance of completions (#22630)
- Remove completion suggestions for redundant re-exports that share the same top-most module (#22581)
Core type checking
- Add basic support for overloads in
ParamSpec(#21946) - Allow
...as a default value for any parameter if the function is in anif TYPE_CHECKINGblock (#22624) - Allow
if type(x) is Ynarrowing for types other than class-literal types (#22729) - Avoid overload errors when detecting dataclass-on-tuple (#22687)
- Avoid reporting overload errors for successful union variants (#22688)
- Ban
NewTypes with generic bases (#22653) - Fix PEP 695 type aliases not expanding in overload resolution (#22589)
- Fix the return type for synthesized
NamedTuple.__new__methods (#22625) - Emit diagnostics for
NamedTuple,TypedDict,EnumorProtocolclasses decorated with@dataclass(#22672) - Emit
invalid-type-formdiagnostics for stringified annotations where the quoted expression is invalid (#22752) - Infer the implicit type of
clsin__new__methods (#22584) - Make
ModuleTypeandobjectattributes available on namespace packages (#22606) - Make
NamedTuple(...)andnamedtuple(...)calls stricter (#22601) - Narrow on bool and byte subscripts (#22684)
- Narrow on negative subscript indexing (#22682)
- Override
__file__tostrwhen applicable on imported modules (#22333) - Add bidirectional inference for comprehensions (#22564)
- Recognize string-literal types as subtypes of
Sequence[Literal[chars]](#22415) - Add right-hand-side narrowing for
if Foo is type(x)expressions (#22608) - Add simple syntactic validation for the right-hand side of PEP-613 type aliases (#22652)
- Add support for passing
typenameandfield_namesby keyword argument tocollections.namedtuple()calls (#22660) - Add support for starred unpacking in class bases (#22591)
- Validate constructor arguments when a class is used as a decorator (#22377)
- Validate field names for
typing.NamedTuple(...)(#22599) - Add diagnostic on overridden
__setattr__and__delattr__in frozen dataclasses (#21430) - Fix unary operators on
NewTypes offloatorcomplex(#22605)
Configuration
- Support overriding
respect-type-ignore-comments(#22615)
Diagnostics
- Don't add a subdiagnostic pointing to the TypeVar definition if the TypeVar is
Self(#22646) - Show final search path instead of "and 1 more paths" (#22776)
- Group
type[]elements together when displaying union types (#22592)
Performance
- Cache
ClassType::nearest_disjoint_base(#22065)
Other changes
- Sync vendored typeshed stubs (#22590, Typeshed diff
Contributors
- @bxff
- @jhartum
- @thejchap
- @AlexWaygood
- @charliermarsh
- @RasmusNygren
- @mswart
- @MatthewMckee4
- @11happy
- @ibraheemdev
- @sinon
- @MichaReiser
- @carljm
- @BurntSushi
- @dhruvmanila
- @oconnor663
- @zanieb
Install ty 0.0.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.13/ty-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.13/ty-installer.ps1 | iex"