Aquí hi ha 116 versions de ty, des de 14 de maig del 2025 fins a l’actual, 0.0.87. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
116 versions en 1 any · unes 82 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.0.87Darrera versió | 13 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Clamp notebook cell positions to the end of the cell (#29307)
- Fix deadlock when requests arrive before workspace configuration (#29303)
- Fix notebook cell lookups after cells with cell magics (#29308)
- Fix panic on completions past the end of a notebook's last cell (#29306)
Diagnostic improvements
- Add opt-in mismatched-sentinel-name rule (#27206)
- Deduplicate identical argument type diagnostics (#29337)
- Enable invalid-mutable-override by default (#29335)
- Improve display of distinct string literal types (#29206)
- Respect suppression of attribute override diagnostics (#29327)
Core type checking
- Check overrides of receiver attribute declarations (#28557)
- Infer the default for definitely absent keys in closed TypedDict.get calls (#29136)
- Leave room for later positional arguments when unpacking a variable-length argument (#29293)
- Preserve minimum lengths of unpacked tuple unions (#29331)
- Specialize bare generic class name with type[...] type context (#29248)
Performance
- Avoid constructing nominal complements (#29292)
- Optimize system path equality (#29340)
Contributors
- @charliermarsh
- @AlexWaygood
- @ibraheemdev
- @zsol
- @Amirshox
- @carljm |
| 0.0.86 | 9 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Infer empty collection branches from nonempty literals (#29131)
- Invalidate dependency metadata when environments change (#29126)
- Preserve final attribute restrictions on composite types (#29135)
- Preserve recursive structure in Annotated values (#29058)
- Specialize inherited dataclass field converters (#29192)
LSP server
- Show documentation for annotation operators on hover (#29185)
Core type checking
- Check attribute and property override types (#28556)
- Narrow tuple unions through truthiness and type checks (#29125)
- Preserve literal types when consuming dictionary literals (#29145)
- Preserve non-boolean comparison results for intersections (#28045)
- Preserve receiver specializations when calling unions of bound methods (#29015)
- Represent uninhabited truthiness explicitly (#28843)
- Solve validity type context through constraint sets (#28909)
Performance
- Avoid recursion guards for non-generic nominal targets (#29202)
- Check exact exclusions before intersection positives (#29195)
Memory usage improvements
- Share constraints in retained sequent maps (#28966)
Other changes
- Update the default Python version to 3.15 (#28792)
- Update to Unicode 17 (#21229, #28784)
- Always show fixes in the CLI (#27810)
Contributors
- @gorewilliams
- @carljm
- @AlexWaygood
- @ibraheemdev
- @zsol
- @charliermarsh |
| 0.0.85 | 6 d’octubre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPreview features
- Refresh uv project metadata when uv files change (#28529)
Bug fixes
- Avoid recursive lambda class decorator panics (#28984)
- Compare observable notebook state for equality (#28874)
- Detect recursive alias cycles through intersections (#28916)
- Fix anchoring of include and exclude patterns after the project's root changed (#28995)
- Fix stack overflow when inferring dynamic class metaclasses (#28917)
- Normalize recursive dataclass transform metadata (#28920)
- Normalize recursive TypedDicts during cycle recovery (#28918)
- Preserve cycle markers in ParamSpec specialization (#29024)
CLI
- Prefer existing @ paths over response files in Ruff and ty (#28877)
LSP server
- Add namespace package support to import completions. (#28202)
- Avoid stale I/O diagnostics when closing deleted files (#28988)
- Contain rendered code within Markdown fences (#28869)
- Refresh Python settings when virtual environments change (#28650)
Diagnostic improvements
- Add opt-in truthiness-test-of-none-union rule (#28889)
- Avoid disjoint-cast diagnostics in situations where the value could have been inferred as being compatible with the casted type if it had only been inferred with the right type context (#28851)
- Bound nested callable signature display (#29049)
- Explain outdated uv versions in metadata errors (#28959)
- Improve display of string literal types that include unicode characters or double quotes (#29089)
- Improve uv metadata diagnostics (#28990)
- Preserve constrained type-variable failure diagnostics (#28768)
- Preserve generic inference errors during diagnostic recovery (#28811)
- Report deprecated overloads in decorator applications (#28999)
Core type checking
- Bound methods without a receiver are not callable (#28981)
- Fix member lookup on union-bounded type variables (#29018)
- Fix type variable inference for final class objects (#29097)
- Freshen ParamSpec identities consistently (#28826)
- Honor generic property setters in protocol compatibility (#28562)
- Infer nominal generic specializations from bounded type variables (#28812)
- Inherit annotations for unannotated subclass defaults (#28575)
- Keep unresolved TypeIs targets provisional (#29066)
- Limit wildcard exports using literal __all__ (#28972)
- Narrow later match cases after always-true guards (#28960)
- Pass generic context to call inference solver (#29065)
- Preserve captured variables in ParamSpec comparisons (#28827)
- Preserve intersection receivers in implicit dunder calls (#28833)
- Preserve literal unpacking during call analysis (#28821)
- Preserve recursive type context during constructor inference (#28903)
- Preserve tuple shapes when slicing NewTypes (#29091)
- Preserve tuple subclass identity during type expansion (#29090)
- Promote bounded type variables to declared constraints (#28814)
- Propagate outer type context through cast calls (#28855)
- Recognize bare TypeVarTuples in materialization checks (#28815)
- Retain individual overload argument expansion outcomes (#28825)
- Specialize instance members once (#29043)
- Specialize Self bounds through generic type aliases (#28890)
- Support slots_default in dataclass_transform (#28885)
- Sync vendored typeshed stubs (#29032). Typeshed diff
- Sync vendored typeshed stubs (#29042). Typeshed diff
- Validate call arguments once after inference (#28824)
- Validate union operands involving None (#28931)
Performance
- Avoid expanding recursive protocol materializations (#29026)
- Avoid repeated work in nested match patterns (#28926)
- Cache the flattened module list (#28932)
- Index nonlocal bindings when sweeping snapshots (#28935)
- Skip descendant searches for leaf modules (#28845)
- Skip independent constraint-pair derivation (#28950)
- Skip storing default definition states (#28934)
Memory usage improvements
- Avoid caching empty sequent maps (#28949)
- Avoid retaining docstring literal types (#28944)
- Compact bound-method receivers (#28969)
- Move ParamSpec signature metadata to e |
| 0.0.84 | 24 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix stale diagnostics from the LSP server after toggling showSyntaxErrors (#28759)
LSP server
- Complete string keys from dictionary initializers (#28820)
- Support LSP requests against closed documents (#28595)
- Select projects for external files using import search paths (#28594)
- Use workspace editor settings for external files (#28639)
Performance
- Avoid repeated subtyping checks for materialized recursive protocols (#28774)
- Skip reading notebooks when discovering scripts (#28781)
Core type checking
- Avoid incorrect simplification of TypeIs materializations (#28817)
- Fix disjointness of generic class types (#28787)
- Fix staticmethod shadowing through generic receivers and unions (#28766)
- Infer callable signatures from bounded type variables (#28599)
- Infer constant membership in inline list and set literals (e.g. "foo" in ["foo"] is now inferred as Literal[True]) (#28676)
- Infer through optional generic containers in the legacy solver (#28791)
- Preserve call narrowing during cyclic inference (#28708)
- Preserve intersections of type guard return types (#28796)
- Use subtyping for constraint-set implication (#28657)
Configuration
- Disable invalid-legacy-positional-parameter by default (#28834)
Other changes
- Only consider reachable definitions when determining whether a condition should be exempted from redundant-condition(-strict) due to the condition being defined relative to sys.version_info, sys.platform, os.name or typing.TYPE_CHECKING (#28788)
Contributors
- @ibraheemdev
- @zsol
- @charliermarsh
- @lerebear
- @MichaReiser
- @ewdurbin
- @carljm
- @sharkdp |
| 0.0.83 | 21 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix hangs from repeated partial application (#28754)
- Preserve PEP 695 bindings across nested classes (#28723)
LSP server
- Include required imports in every inlay hint (#28724)
- Preserve fast name filtering for normalized Unicode source (#28701)
- Refresh diagnostics after workspace configuration changes (#28755)
Diagnostic improvements
- Expand unreachable-code annotations for redundant conditions (#28674)
- Improve diagnostics for async generator stubs (#28692)
- Improve primary diagnostic annotations for redundant-condition(-strict) diagnostics (#28666)
- Point misplaced tuple ellipsis diagnostics at each ellipsis (#28709)
Other changes
- Add rules that detect suspicious uses of Callable, Iterable, Iterator or Generator types in a boolean context (#28554)
- Allow slots to override abstract properties (#28698)
- Avoid leaking Unknown from unconstrained collection use-sites (#28659)
- Diagnose unguarded cycles in implicit and PEP 613 aliases (#28704)
- Eagerly bind unused Self receivers (#28662)
- Generalize receiver binding for wrapped callables (#28725)
- More faithful representation of bound methods (#28410)
- Only classify evidence bounds for constrained type variables (#28700)
- Preserve inferred bindings during annotation cycles (#28717)
- Preserve quoted aliases during cycle recovery (#28710)
- Reject class-scoped type variables in init receivers (#28706)
- Reject unsafe TypedDict updates from hidden fields (#28711)
- Respect fixed caller type variables when selecting constraints (#28652)
- Reuse cached type alias inference for diagnostics (#28696)
- Simplify unions of disjoint exclusions (#28684)
- Update typing conformance suite (#28718)
Contributors
- @charliermarsh
- @AlexWaygood
- @sharkdp
- @carljm
- @ibraheemdev
- @zaniebot
- @MichaReiser |
| 0.0.82 | 17 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPreview features
- Ignore Python version from uv metadata (#28646)
- Watch script dependencies in CLI watch mode (#28125)
CLI
- Only skip uv workspace metadata for a single script (#28581)
- Support dependency lints with --config-file (#28573)
LSP server
- Filter string literal completions by typed text (#28612)
- Find member references across files (#28669)
- Find parameter references across files (#28670)
- Preserve valid LSP settings when configuration resolution fails (#28653)
- Reuse identifier matcher in LSP operations (#28663)
- Watch script dependencies in the language server (#28522)
Diagnostic improvements
- Add an autofix for unused awaitables (#28668)
- Add annotations for unreachable code caused by boolean operands (#28521)
- Add subdiagnostics to redundant-condition rules warning about reachability implications (#28263)
- Clarify diagnostics for unimplemented abstract members (#28538)
- Extend unreachable-code annotations to while, assert, and match statements (#28290)
Core type checking
- Allow experimental intersection syntax in PEP 695 aliases (#28513)
- Bound aliased intersection expansion during inference (#28546)
- Check declared variance against final method bindings (#28155)
- Fix recursive protocol checks for decorated methods (#28293)
- Freshen constructor-owned Self with class type variables (#28592)
- Improve disjointness of functools.partial types (#28660)
- Include constraint-set assignability in more checks (#28642)
- Infer conditional literals from peers in unspecialized contexts (#28633)
- Infer generic elements from gradual tuples (#28637)
- Introduce Recursive types and fully support recursive implicit type aliases (#28425)
- Narrow type context during tuple inference (#28658)
- Preserve field metadata after overload resolution (#28635)
- Preserve gradual class assignability in constraint-set checks (#28638)
- Preserve gradual tuple lengths during callable inference (#28588)
- Preserve tuple shapes during concatenation (#28617)
- Reject abstract class instantiation (#28167)
- Respect frozen=False overrides on Pydantic subclasses (#28515)
- Support type[A & B] (#27124)
- Sync vendored typeshed stubs (#28597). Typeshed diff
- Treat imports as bindings instead of declarations (#27325)
Performance
- Compact reachable binding and declaration histories (#28349)
- Compare bound-method receivers before signatures (#28384)
- Deduplicate intermediate intersection branches (#28649)
- Optimize fuel management in the constraint solver (#28568)
- Skip inferring concrete methods during abstract-method discovery (#28613)
- Skip legacy namespace parsing for __init__ files without pkg (#28665)
Memory usage improvements
- Avoid storing constraint nodes twice (#28375)
Contributors
- @mtshiba
- @zsol
- @AlexWaygood
- @charliermarsh
- @woodruffw
- @carljm
- @MichaReiser
- @sharkdp
- @ibraheemdev |
| 0.0.81 | 15 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Escape glob characters in anchored directory paths (#28518)
- Ignore divergent markers when detecting descriptors (#28514)
CLI
- Anchor default exclude patterns at the project root (#28463)
Core type checking
- Avoid rebinding extracted method calls (#28469)
- Default-specialize class objects in meta-protocol checks (#28265)
- Fix MRO ordering for generic bases (#28172)
- Fix assignability of bounded typevars to intersection types (#28479)
- Fix variadic partial signature reduction (#28586)
- Handle gradual metaclass ancestry and conflicts (#28474)
- Preserve recursive metadata in union transformations (#28497)
- Preserve runtime comparison semantics when narrowing tagged unions (#28053)
- Preserve wrapped signatures in nominal descriptor checks (#28466)
- Reject reassignment of enum members (#28462)
- Report override conflicts introduced by new bases (#28530)
- Resolve dependencies within correlated inference alternatives (#28252)
- Respect instance dictionary storage for slotted classes (#27749)
- Validate explicitly overridden constructor signatures (#28115)
Performance
- Avoid redundant superclass member inference (#28587)
- Reuse rendered union elements when displaying types (#28494)
Memory usage improvements
- Reduce retained AST memory by shrinking expressions (#28335)
- Share strings in dependency metadata (#28141)
Contributors
- @sharkdp
- @ibraheemdev
- @MichaReiser
- @zsol
- @zanieb
- @charliermarsh
- @mtshiba
- @carljm |
| 0.0.80 | 9 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix --force-exclude for directories with an excluded ancestor (#28451)
- Preserve metaclass candidates after conflicts (#28461)
LSP server
- Give existing autofixes descriptive titles (#28456)
- Prevent LSP hangs during inlay hint bursts (#28390)
Diagnostic improvements
- Preserve redundant-condition diagnostics with unreachable operands (#28374)
Core type checking
- Check captured receivers when calling wrapped classmethods (#28467)
- Fix cached classmethods on generic classes (#28207)
- Fix disjointness of type guards and boolean literals (#28363)
- Infer tuple variance from the full tuple spec (#28446)
- Infer tuple variance more precisely (#28426)
- Preserve callable identity across specialized types (#28409)
- Preserve callback type context through ParamSpec forwarding (#28439)
- Preserve wrapped functions in precise functools.partial relations (#28460)
- Respect descriptor protocol for __set__ itself (#28408)
- Respect type-variable bounds in argument context (#28448)
- Unwrap union alternatives in overload implementations (#28468)
Performance
- Distribute len inference over unions (#28470)
- Fast-path concrete literal intersections (#28348)
Memory usage improvements
- Avoid excess capacity in multi-binding tables (#28412)
- Share equivalent place tables within a file (#28319)
- Share names in synthesized constructor parameters (#28398)
Contributors
- @sharkdp
- @charliermarsh
- @ibraheemdev
- @AlexWaygood
- @MichaReiser |
| 0.0.79 | 7 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid dict keyword-call panics when typing is shadowed (#28292)
- Discover configs in models derived from legacy generic classes (#28397)
- Normalize recursive collection-use constraints (#28332)
- Recover cycles when constructing known class instances (#28289)
CLI
- Embed archive checksums in the shell installer (#4458)
Diagnostic improvements
- Add Literal fixes for diagnostics flagging invalid type annotations (#28185)
- Add await fixes for redundant conditions (#28169)
- Add assert_never fixes for redundant final elif branches (#28178)
- Add defensive assertion fallback for redundant elif fixes (#28179)
- Add rules to detect always-truthy and always-falsy conditions (#28034)
- Preserve deprecations on decorated callables (#28256)
- Require a direct dependency for reveal_type backport fixes (#28177)
- Suggest variable-length tuple annotations for redundant conditions (#28168)
Core type checking
- Align TypeIs and isinstance narrowing (#28193)
- Avoid falling back to Unknown when collecting type context constraints (#28297)
- Ensure f is identity(f) evaluates to Literal[True] (#28360)
- Fix callable specialization with union-valued ParamSpec (#28085)
- Infer variance through recursive protocols (#28077)
- Narrow types with ordered length comparisons (#28264)
- Preserve gradual type context during generic call inference (#28091)
- Preserve nominal subtyping for top-materialized protocols (#28271)
- Preserve outer type variables during ParamSpec inference (#28306)
- Preserve protocol intersections when narrowing gradual types (#28391)
- Promote literals in nested (non-covariant) positions (#28389)
- Reject missing attributes on type[] aliases (#28267)
- Solve formal unions using constraint-sets (#28312)
- Sync vendored typeshed stubs (#28331). Typeshed diff
Performance
- Avoid unnecessary work when building specializations (#28369)
- Bypass materialization queries for simple types (#28367)
- Cache exception suppression for context managers (#28376)
- Intern statement call predicates (#28373)
- Lazily compute argument-context specializations (#28378)
- Pre-size packed AST index chunks (#28372)
- Reduce repeated work in use-def merges (#28365)
- Skip decorator flags query for undecorated methods (#28338)
Memory usage improvements
- Avoid caching simple type specializations (#28333)
- Box cached MRO error details (#28351)
- Reuse generic aliases as MRO query keys (#28350)
- Reuse interned bound method signatures (#28346)
- Reuse stored function signatures without caching duplicates (#28347)
- Share retained use-def tables across scopes (#28313)
- Store single narrowing operations inline (#28345)
- Store uncommon signature metadata out of line (#28339)
Other changes
- Declare support for Python 3.15 (#4476)
Contributors
- @carljm
- @sharkdp
- @charliemarsh-oai
- @zsol
- @charliermarsh
- @ibraheemdev
- @AlexWaygood |
| 0.0.78 | 2 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Defer decorator-call diagnostics to avoid recursive-default cycles (#28226)
- Make cyclic intersection simplification deterministic (#28156)
- Stabilize cyclic terminal-call reachability (#28216)
Preview features
- Refresh uv workspace metadata when dependencies change (#28224)
Diagnostics
- Add a new disjoint-cast rule (#28129)
- Report deprecated property accessors on intersections (#28250)
- Report deprecations for implicit constructor calls (#28251)
- Report deprecations for overloads, operators, and properties (#28134)
- Respect overload selection in deprecation diagnostics (#28148)
Core type checking
- Fix negative narrowing for protocols with gradual members (#28198)
- Preserve ParamSpec bindings inferred against type context (#28084)
- Preserve generic protocol materialization relations (#28246)
- Preserve uncertain branches during quantification (#28211)
- Respect type variables in top/bottom materializations of invariant generics (#28072)
- Sync vendored typeshed stubs (#28217). Typeshed diff
- Treat captured bound-method receivers covariantly (#28180)
- Unsound intersection simplification for generic iterables (#28068)
- Validate type variable scopes in constructors and aliases (#28130)
- lambda functions are always truthy (#28254)
Performance
- Optimize materialized recursive protocol comparisons (#28079)
- Optimize recursive protocol checks for nested type variables (#28257)
Contributors
- @charliermarsh
- @sharkdp
- @zsol
- @AlexWaygood
- @ibraheemdev
- @carljm |
| 0.0.77 | 1 de setembre del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Bound recursive protocol traversal in generic intersections (#28215)
- Preserve recursion guards across nested type operations (#28150)
- Preserve syntax and comments when removing redundant casts (#28145)
- Stabilize recursive receiver inference (#28042)
- Stabilize condition truthiness during cyclic inference (#28212)
Core type checking
- Preserve generic receivers in implicit __init_subclass__ calls (#28138)
- Preserve specialization for inherited TypedDict methods (#28111)
- Propagate deletions through nested loop headers (#28044)
Performance
- Avoid repeated inference for literal union call results (#28196)
Contributors
- @charliermarsh
- @carljm |
| 0.0.76 | 31 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPreview features
- Add a missing-direct-dependency rule (#28001)
- Cancel superseded queued uv requests (#28108)
- Check direct dependencies in PEP 723 scripts (#28136)
- Fix Goto definition in script dependencies (#27747)
- Move script environment initialization to the CLI and LSP (#28038)
- Refresh uv project metadata in the background (#27933)
- Synchronize PEP 723 script environments in the language server (#27619)
- Warn when uv metadata cannot support dependency checks (#28133)
Bug fixes
- Avoid panics on incomplete protocol type parameter lists (#28088)
- Fix auto-completion panic involving bare declarations (#28191)
- Guard recursive meta-type expansion (#28143)
- Preserve parentheses when removing redundant casts (#28092)
LSP server
- Add "Find references" support for pytest fixtures (#28075)
- Highlight PEP 723 script metadata as TOML (#27746)
- Synchronize saved script metadata on open (#27873)
Core type checking
- Apply mixin specialization when validating enum members (#28101)
- Bind Self through generic type aliases (#28117)
- Infer lambda parameters through callable type aliases (#28109)
- Intersection simplifications with subtype-related generic specializations (#26880)
- Invalidate member narrowing across loop iterations (#28009)
- Narrow functional enum members in == and match (#28103)
- Only treat recursive types with unbounded specializations as fallback cycles (#27538)
- Preserve Final variance in stubs (#28119)
- Preserve inferred types for unknown class-decorator results (#28067)
- Preserve list literal positions in starred unpacking (#28061)
- Preserve short-circuit reachability for direct conditions (#28082)
- Preserve type variables in bounded generic defaults (#28122)
- Reject circular type alias definitions (#28140)
- Reject class access to generic instance attributes (#28123)
- Use the subclass receiver when checking method overrides (#28124)
- Validate declared variance in method signatures (#28116)
Performance
- Avoid cubic narrowing with repeated assignments and context managers (#27787)
- Avoid repeated traversal of shared alias arguments (#28147)
- Reject impossible eager protocol comparisons early (#28081)
Contributors
- @AlexWaygood
- @MichaReiser
- @charliermarsh
- @BitWeaverDev
- @gorewilliams
- @zsol
- @malkin0xb8
- @sharkdp
- @mtshiba
- @carljm
- @lerebear
- @jamtat |
| 0.0.75 | 26 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPreview features
- Initialize PEP 723 script environments in the CLI (#27544)
- Refresh PEP 723 script environments in watch mode (#27617)
- Run PEP 723 script synchronization on bounded workers (#27615)
Bug fixes
- Specialize Self bounds of inherited methods (#27990)
LSP server
- Add "Go to Definition" support for pytest fixtures (#27444)
Documentation
- Fix documented Python package build command (#4384)
- Link untyped-call tracking issue in migration guide (#4382)
Library support
- Resolve imported pytest fixture exposures (#27539)
- Resolve installed core pytest fixture providers (#27770)
- Resolve pytest fixtures through conftest (#27540)
Diagnostics
- Add more autofixes (#28029)
- Add a dedicated missing-slot diagnostic (#28039)
- Explain missing storage for declared slotted attributes (#27969)
- Improve diagnostic spans for unpacked variable assignments (#28041)
Core type checking
- Account for known subclasses in equality inference (#28005)
- Expand ParamSpec signatures inferred from bound receivers (#28020)
- Fix Self binding in ParamSpec protocols (#28016)
- Fix TypedDict variance inference (#28052)
- Fix unsound narrowing through branch-assigned conditions (#28006)
- Ignore inconsistent binding decorators on overloads (#28036)
- Infer yield from send/return types from the iterator returned by __iter__ (#27987)
- Infer tuple type parameters from union arguments (#28062)
- Infer variance through nonrecursive protocol references (#28065)
- Preserve bounds of non-literal metaclasses (#28046)
- Preserve correlated generic-call inference (#28043)
- Preserve invariant materialization constraints (#28047)
- Recover bare TypeVarTuples in tuple annotations (#27950)
- Reject fixed tuples for non-inferable TypeVarTuples (#27943)
- Reject incompatible constructor context for variadic packs (#27966)
- Support mixed gradual tuple assignability with TypeVarTuple (#27957)
- Support tagged union with multiple tags per type (#27984)
- Sync vendored typeshed stubs (#28035). Typeshed diff
- Treat typing.Union as a class on Python 3.14+ (#28003)
- Validate generic protocol variance (#27531)
- collections.abc.Callable is an instance of type (#27991)
Contributors
- @sharkdp
- @jelle-openai
- @marcelo-souzaf
- @AlexWaygood
- @krzkaczor
- @carljm
- @charliermarsh
- @lerebear
- @MichaReiser |
| 0.0.74 | 22 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid duplicate bindings in multi-target assignments (#27938)
- Avoid panic on unpacked kwargs in string annotations (#27963)
- Fix stack overflow in recursive TypedDict dictionary compatibility (#27951)
- Handle assignment expressions in string annotations (#27921)
- Handle dynamic classes in string annotations (#27883)
- Preserve string annotation context in lambda defaults and TypedDict types (#27914)
- Skip invalid subscript arguments in string annotations (#27917)
- Skip invalid subscript operands in string annotations (#27882)
LSP server
- Add untrustedWorkspace option to the LSP (#27828)
- Add executable discovery to the server command (#27806)
- Handle file-valued workspace folders from Zed (#27836)
- Skip scripts with an invalid PEP 723 configuration (#27505)
- Support pull diagnostics for notebook cells (#27778)
Documentation
- Update mypy/pyright comparison table (#4165)
Diagnostics
- Add an opt-in unsound-assignment rule for variables (#27874)
- Fix variadic signature display (#27869)
- Highlight declarations in invalid-assignment diagnostics (#27872)
- Improve LiteralString suggestions in string annotations (#27931)
- Use invalid-type-form for non-generic class annotations (#27889)
Core type checking
- Add bounded constraint solution projections (#27949)
- Fix invariant gradual tuple materialization ranges (#27946)
- Guard recursive constructor bindings by receiver (#27958)
- Preserve all alternatives in bounded intersections (#27898)
- Preserve keyword safety for unpacked callables (#27517)
- Preserve source protocol members and classify finite aliases (#27772)
- Preserve type-variable order when reloading constraints (#27904)
- Propagate narrowing through statically known branches (#27752)
- Recognize ABC metaclass methods on protocols (#27897)
- Support __slots__ (#27730)
Performance
- Lazily infer function parameter default types (#27857)
- Optimize inherited recursive protocol comparisons (#27922)
- Traverse shared constraint source-order nodes once (#27947)
Contributors
- @carljm
- @lerebear
- @charliermarsh
- @dhruvmanila
- @AlexWaygood
- @MichaReiser
- @jelle-openai |
| 0.0.73 | 19 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Do not prefer unsafe fixes in the language server (#27822)
- Fix signature help in trailing whitespace (#27784)
Library support
- Preserve variadic generics in functools.partial (#27774)
Diagnostics
- Add an opt-in rule flagging function decorators that transform a non-dynamic type into a dynamic type (#27829)
- Disambiguate same-named types in several diagnostics (#27814)
- Show error spans for errors originating in script metadata (#26693)
Core type checking
- Avoid bypassing solver during literal promotion (#27763)
- Expand nested union aliases when finding a TypedDict or callable (#27740)
- Implement intersection meta-type projection (#27660)
- Infer generic protocols from class objects (#27812)
- Model exception-suppressing context managers (#27219)
- Preserve TypeAliasType runtime origin (#27813)
- Preserve class objects in lazy protocol checks (#27815)
- Preserve declared types in exception handlers (#27817)
- Preserve explicit globals after conditional rebinding (#27786)
- Preserve property subclass types and accessors (#27833)
- Preserve required stub fields in generated constructors (#27765)
- Preserve static upper bounds of gradual solutions (#27664)
- Prevent unrelated quantified constraints from destabilizing recursive queries (#27737)
- Separate generic constraint accumulation from legacy projection (#27743)
- Simplify generic protocol inference (#27819)
- Specialize inherited members of unspecialized generic classes (#27658)
- Specialize type variables determined by bound receivers (#27732)
- Support unpacking tuple type aliases (#27825)
- Sync vendored typeshed stubs (#27771). Typeshed diff
Performance
- Cache py.typed contents (#27805)
- Deduplicate exception checkpoints across equivalent branches (#27703)
Contributors
- @charliermarsh
- @AlexWaygood
- @MichaReiser
- @augustelalande
- @carljm
- @woodruffw
- @dhruvmanila
- @ibraheemdev
- @zaniebot |
| 0.0.72 | 14 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPreview features
- Check PEP 723 scripts in isolation (#27462)
Library support
- Pydantic: Accept documented boolean and fractional inputs (#27754)
- Pydantic: Accept enum members for lax string and integer fields (#27751)
Diagnostics
- Improve assignability hints for protocols and TypedDict types (#27717)
Core type checking
- Avoid treating augmented assignments as attribute definitions (#27633)
- Diagnose invalid module-level __getattr__ calls (#27507)
- Fix overload argument expansion with unpacked positional arguments (#27744)
- Fix specialization of generic TypedDict aliases (#27760)
- Ignore generic declaration metadata in staticness checks (#27692)
- Preserve tuple types containing Never (#27580)
- Report deprecated unary operations (#27584)
- Respect variance when inferring structural and callable types (#27707)
- Support TypeVarTuple in call binding (#26886)
- Treat generator-expression exceptions as eagerly evaluated (#27735)
Performance
- Avoid exponential narrowing of gradual string-literal unions (#27742)
Contributors
- @AlexWaygood
- @Andrej730
- @charliermarsh
- @MichaReiser
- @dhruvmanila
- @carljm |
| 0.0.71 | 13 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLibrary support
- Respect third-party keyword-only fields before Python 3.10 (#27699)
Diagnostics
- Diagnose invalid __getattribute__ calls (#27506)
- Validate boolean conversion in comprehension filters (#27641)
- Validate unpacked callable argument shapes (#27516)
Core type checking
- Avoid introducing boolean literals when narrowing integers (#27698)
- Fix truthiness inference for subclassable known classes (#27638)
- Handle class objects that may be descriptors (#26687)
- Infer type variables through nominal type[...] parameters (#27689)
- Model exception flow with operation checkpoints (#27471)
- Preserve constrained TypeVar types when slicing (#27645)
- Preserve enum attributes on Self and bounded type variables (#27644)
- Preserve enum exhaustiveness with custom _missing_ methods (#27700)
- Preserve literal-string origin in comparison narrowing (#27582)
- Resolve generic type aliases subscripted inside type[] (#27663)
- Restrict equality impossibility to static bounds (#27655)
Performance
- Avoid deriving sequents for type variables with concrete bounds (#27587)
Contributors
- @dcreager
- @augustelalande
- @charliermarsh
- @carljm
- @AlexWaygood
- @ibraheemdev |
| 0.0.70 | 10 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Enable and downrank auto-import completions from stub-only modules (#27433)
- Fix signature help at end of file (#27622)
- Normalize type labels in structured docstrings (#26923)
- Preserve typing-only completion ranking in TYPE_CHECKING blocks (#27549)
CLI
- Avoid deadlock when scheduling watch checks (#27605)
Diagnostics
- Add an opt-in unsound-return-statement lint (#27561)
- Add an opt-in unsound-yield lint (#27593)
- Diagnose invalid __getattr__ calls (#27502)
- Diagnose invalid descriptor __get__ calls (#27400)
Core type checking
- Consider object members in protocol comparisons (#27532)
- Exclude quantified constraints from semantic type walks (#27613)
- Expand Generator aliases when evaluating return, send, and yield types (#27577)
- Infer precise TypedDict key-membership truthiness (#27579)
- Infer variance through type[T] (#27534)
- Preserve contextual inference for declarations in loops (#27594)
- Recognize overlapping NewType types and their underlying values (#27522)
- Require ClassVar declarations for protocol members (#27530)
- Stabilize recursive gradual type alias materialization (#27563)
- Support Annotated inside type[...] (#27629)
- Validate augmented assignment stores (#27545)
Contributors
- @AlexWaygood
- @carljm
- @charliermarsh
- @MichaReiser
- @lerebear |
| 0.0.69 | 6 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióCore type checking
- isinstance narrowing for generic classes is now more gradual by default (#27308)
This new behavior is more similar to what other major type checkers do. For example:
def f(xs: object):
if isinstance(xs, list):
reveal_type(xs) # now: `list[Unknown]`, before: `Top[list[Unknown]]`
Note: you might consider enabling analysis.strict-generic-narrowing
if you prefer the strictly correct behavior.
Contributors
- @sharkdp |
| 0.0.68 | 6 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióDiagnostics
- Preserve property getter call errors (#27509)
- Simplify numeric tower displays (e.g., float over int | float) (#27406)
- Suggest closing open TypedDict types for Mapping compatibility (#27512)
Core type checking
- Avoid double inference of Unpack operands in Union (#27525)
- Fix panic from mismatched OR-pattern bindings (#27533)
Contributors
- @AlexWaygood
- @charliermarsh
- @carljm |
| 0.0.67 | 5 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Fix unused hints for OR-pattern captures (#27438)
- Index match-pattern bindings as symbols (#27260)
- Retain typing-only symbols in explicit completions (#27435)
Diagnostics
- Preserve called types in intersection diagnostics (#27475)
- Suppress unimported-reveal diagnostics in stub files and if TYPE_CHECKING blocks (#27508)
Configuration
- Remove deprecated src.root setting in favor of environment.root (#27456)
Core type checking
- Check property compatibility when matching class objects to protocols (#27402)
- Fix constructor calls on narrowed type-variable intersections (#27493)
- Fix specialization cycle with deferred TypeVar defaults (#27453)
- Infer generic TypedDicts from unpacked TypedDicts (#27439)
- Infer generic TypedDicts through synthesized constructor signatures (#27436)
- Normalize unpacked callable signatures for assignability (#27450)
- Preserve class type parameters through generic decorators (#27442)
- Preserve generic class type variables in constructor inference (#27340)
- Preserve return constraints for object-variadic callables (#27431)
- Preserve return constraints for top callables (#27446)
- Recover generic constructor types from failing overloads (#27460)
- Reject Self with incompatible explicit receiver annotations (#27454)
- Reject unhashable objects for Hashable protocols (#27441)
- Reject unsupported dataclass_transform parameters (#27458)
- Restore bottom callable subtyping for gradual prefixes (#27519)
- Top-materialize is_dataclass type guard (#27455)
- Validate constructor calls on unbounded type variables (#27449)
Performance
- Avoid exponential slowdown copying narrowed TypedDict unions (#27492)
Contributors
- @Punisheroot
- @dhruvmanila
- @AlexWaygood
- @sharkdp
- @MichaReiser
- @carljm
- @charliermarsh |
| 0.0.66 | 4 d’agost del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Index with-statement targets as symbols (#27256)
- Trigger signature help after completing callable with parentheses (#27084)
Library support
- Pydantic: Recognize models installed on extra search paths (#27429)
Diagnostics
- Detect __aenter__ and __aexit__ that do not return awaitables (#27414)
- Diagnose dataclass fields after inherited defaults (#27327)
- Emit diagnostic when specializing a non-generic class (#26883)
- Improve error context for incompatible callable signatures (#27422)
- Preserve forwarded expanded-variadic diagnostic sources (#27266)
Core type checking
- Avoid over-materializing user-defined TypeIs return types (#26864)
- Fix enum class container assignability (#27318)
- Hide stub-only helpers from implicit builtin lookup (#27423)
- Move Unknown out of the experimental ty_extensions API (#27430)
- Preserve TypeVarTuple context during Generic recovery (#27381)
- Preserve exact numeric types in covariant collections (#27311)
- Reject ClassVar and Final qualifiers in NamedTuple fields (#27380)
- Reject out-of-scope ParamSpec components (#27378)
- Reject specializing non-generic subclasses (#27377)
- Respect bounds and constraints in generic materializations (#27228)
- Sync vendored typeshed stubs (#27401). Typeshed diff
Contributors
- @dhruvmanila
- @carljm
- @Punisheroot
- @AlexWaygood
- @cheparity
- @BitWeaverDev
- @charliermarsh
- @ribru17
- @sharkdp |
| 0.0.65 | 29 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Support comprehension walruses in IDE features (#26476)
Library support
- Pydantic: Allow mutation of private attributes on frozen models (#27257)
- Pydantic: Synthesize __replace__ for models (#27220)
Diagnostics
- Correct ParamSpec forwarded-argument diagnostic locations (#27263)
- Recover forwarded callable object and constructor sources (#27264)
- Recover forwarded functools.partial diagnostic sources (#27265)
Core type checking
- Fix gradual class assignability with generic receivers (#27223)
- Lazily materialize protocol attributes (#27267)
- Narrow tagged unions through all type kinds (#27226)
- Prefer static constrained TypeVar solutions (#27057)
- Preserve frozen-dataclass setter delegation (#27217)
- Preserve inference when filtering constructor overloads (#27254)
- Reject frozen-dataclass field deletion through subclasses (#27001)
- Stabilize recursive type-constraint ordering (#27176)
- Support materialized class type expressions (#27258)
Performance
- Avoid quadratic inference for large literal unions (#27178)
- Cache protocol receiver binding (#27301)
Contributors
- @thejchap
- @benedikt-bartscher
- @carljm
- @charliermarsh |
| 0.0.64 | 27 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix identity narrowing for NewTypes (#26439)
- Make reachability analysis idempotent (#27163)
LSP server
- Fix ParamSpec declaration hover and type navigation (#27183)
- Implement LSP textDocument/implementation request (#25410)
- Introduce shared primitives for parsing backticks in docstrings (#26928)
- Render NumPy docstrings as structured Markdown (#25925)
CLI
- Add --exclude-scripts and --include-scripts (#27169)
- Discover uv workspace roots (#25551)
Diagnostics
- Add a lint rule for combined abstract and final decorators (#26932)
- Change --add-ignore to add space after the colon for ty: ignore (#27120)
- Fix missing-override-decorator suggestion before Python 3.12 (#27166)
- Reuse full call diagnostics for implicit setter calls (#27115)
Configuration
- Allow unresolved unused venv home paths (#27162)
- Simplify script metadata query (#27121)
Core type checking
- Decorate only overload implementation signatures (#27147)
- Don't consider known-instance types, generic aliases or non-singleton special-form types to be single-valued (#27137)
- Improve identity comparison inference for singleton types (#27126)
- Improve tuple membership and rich comparison inference (#27164)
- Model walrus bindings from comprehensions (#26466)
- Narrow tagged unions using identity comparisons (#27130)
- Preserve Self in __new__ calls (#27003)
- Preserve receiver constraints when binding overloaded methods (#27038)
- Support generic manual PEP 695 type aliases (#27083)
- Treat bivariance as covariant (#24319)
Performance
- Avoid cycles when resolving ModuleType globals (#27182)
- Avoid expanding optional enum comparisons (#27105)
- Avoid repeated inference when copying mixed TypedDict unions (#27108)
- Improve importer performance (#27159)
- Improve union and intersection builder performance (#27167)
Contributors
- @perfloop-agent
- @carljm
- @lerebear
- @Gankra
- @TrapsterDK
- @MichaReiser
- @thejchap
- @mtshiba
- @denyszhak
- @charliermarsh
- @AlexWaygood |
| 0.0.63 | 23 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióCore type checking
- Handle generic stringified PEP 613 (typing.TypeAlias) type aliases (#27092)
- Allow equality narrowing across non-final classes (#27031)
- Allow interpolated string literals to be promoted to str (#27104)
- Fix double specialization of generic type aliases (#27058)
- Fix intersections of type and TypeForm (#27099)
- When narrowing from a match statement leads a variable x to be inferred as A & B, infer the type of x.attr as <type of A.attr> & <type of B.attr> (#27103)
Library support
- Pydantic: Stricter validation of sub-model fields in lax mode (#27091)
- Pydantic: Support special underscore parameters in BaseSettings models (#27098)
Performance
- Avoid exponential narrowing of optional dynamic match subjects (#27100)
- Avoid normalizing cached absolute file paths (#26998)
Contributors
- @sharkdp
- @charliermarsh
- @ibraheemdev
- @carljm |
| 0.0.62 | 22 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Guard recursive Protocol and TypedDict relations (#26990)
- Prevent stack overflows in recursive type relation checks (#26503)
- Recover from cancelled file indexing (#26876)
Diagnostics
- Avoid editing ignore comments with trailing reasons (#26939)
- Prefer innermost inline suppressions (#26940)
- Remove unused own-line ignore comments (#27013)
- Reuse applicable own-line suppressions in --add-ignore (#26925)
Configuration
- Respect rules and analysis in PEP 723 script metadata configurations (#26671)
Core type checking
- Accept gradual constrained TypeVar solutions (#26965)
- Avoid recursive TypeVarTuple alias expansion (#27032)
- Check inherited method conflicts via the MRO (#27019)
- Contextually infer custom __setattr__ assignments (#27015)
- Fix Callable isinstance reachability (#26970)
- Fix Just[float] protocol matching (#27053)
- Fix Self binding for classmethod __new__ constructors (#27030)
- Fix nested short-circuit flow snapshots (#26956)
- Gate TypedDict PEP 728 parameters by Python version (#26968)
- Improve match reachability inference around value-pattern branches (#26979)
- Make membership and equality narrowing consistent (#26982)
- Preserve constrained TypeVar equality narrowing (#26988)
- Preserve constrained TypeVar inequality narrowing (#26995)
- Preserve unsatisfiable generic call constraints (#26964)
- Respect bounded typevars in union inference (#27023)
- Respect metaclass __setattr__ for class attributes (#27000)
Performance
- Cache non-terminal-call reachability prefixes (#26810)
- Cache protocol Self binding (#26997)
- Cache sparse reachability checkpoints (#26811)
- Defer statement-call narrowing gates (#26793)
Contributors
- @charliermarsh
- @MichaReiser
- @carljm
- @AlexWaygood
- @mtshiba |
| 0.0.61 | 18 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid recursive protocol structural comparisons (#26721)
LSP server
- Render Google docstrings as structured Markdown (#26599)
Library support
- Pydantic: Collect field metadata through subscripted generic Annotated aliases (#26885)
Diagnostics
- Avoid extending own-line suppressions in --add-ignore (#26808)
Core type checking
- Derive descriptor setter domains for protocols (#26683)
- Enforce declared receiver TypeVar domains (#26863)
- Infer isinstance results for aliases and type variables (#26961)
- Infer isinstance results for fixed class tuples (#26935)
- Narrow inline list and set membership checks (#26955)
- Narrow tagged unions by tag truthiness (#26887)
- Narrow walrus expression values (#26949)
- Project intersections in to_instance (#26892)
- Remove inferable TypeVar artifacts recursively (#26787)
- Respect mixin receiver domains in method overrides (#26941)
- Support TypeVarTuple and Unpack (#25240)
Performance
- Deduplicate completion labels (#26890)
- Only collect expected types for files open in the editor (#25546)
- Parallelize subtype hierarchy search (#26875)
- Share heap-backed parser names with CharStr (#26594)
- Use the new incremental checker from the ignore crate (#26933)
Contributors
- @MichaReiser
- @denyszhak
- @lerebear
- @dhruvmanila
- @charliermarsh
- @BurntSushi
- @Aethryl
- @carljm
- @ibraheemdev |
| 0.0.60 | 16 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Expand transparent callable workaround with overloads and Awaitable[T] (#26761)
- Separate type-mapping caches by transformation mode (#26857)
- Avoid recursive protocol union redundancy checks (#26689)
- Handle recursive protocols in redundant-cast checks (#26708)
LSP server
- Prevent type that is written with a code span from being incorrectly re-wrapped during docstring Markdown rendering (#26723)
Library support
- Pydantic: Support populate_by_name and custom initializers (#26764)
- Pydantic: Warn about immediately discarded extra arguments (#26762)
Diagnostics
- Narrow TypeGuard keyword arguments and remove invalid-type-guard-call (#26809)
- Support own-line suppression comments (#26785)
Core type checking
- Derive descriptor setter domains for protocols (#26683)
- Handle cycles in derived constraint relations (#26814)
- Implement unified generic call inference (#26141)
- Preserve constraints from bound receivers (#26776)
- Project exact-length narrowing through TypeVars (#26852)
- Resolve PEP 695 aliases in type[...] annotations (#26842)
- Retain sequence pattern narrowing in successful match cases (#26807)
- Support class and static protocol methods (#26574)
- Support class objects satisfying instance-method protocols (#26789)
- Support type[Protocol] (#26649)
- Sync vendored typeshed stubs (#26840). Typeshed diff
- Treat transparent callable decorators consistently in class assignments (#26720)
Performance
- Compare overloaded protocol method returns pairwise (#26684)
- Extend PathBounds fast-path to support both upper and lower bounds (#26782)
- Skip Self type scans for non-generic instances (#26703)
Contributors
- @sharkdp
- @mtshiba
- @dhruvmanila
- @lerebear
- @carljm
- @charliermarsh
- @ibraheemdev
- @RasmusNygren |
| 0.0.59 | 12 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Guard descriptor classification cycles (#26690)
- Respect init=False in dataclass field-order checks (#26749)
- Avoid duplicate diagnostics for overloaded TypeIs (#26716)
Library support
- Pydantic: Support custom __init__ methods (#26699)
- Pydantic: Support field metadata in Annotated (#26650)
Core type checking
- Allow unsound equality-based narrowing for builtins (#26414)
- Bind Self in implicit dunder calls (#26711)
- Correct protocol method receiver binding (#26701)
- Exempt ParamSpec callables from the dunder descriptor heuristic (#26696)
- Remove transitive TypeVar artifacts during collection inference (#26714)
LSP server
- Avoid broad invalidation from file check eligibility (#26741)
- Correct how we expand tabs in docstrings (#26679)
- Resolve ambiguity in Google-style docstring parsing in favour of observations from popular projects (#26673)
CLI
- Avoid allocation for every stdout write (#26698)
- Buffer diagnostic output (#26702)
Performance
- Cache generic context (#26745)
- Cache known class instances (#26746)
- Reuse common TypedDict constraints through intersections (#26747)
- Use purpose-specific types for completion and module text (#26664)
Contributors
- @carljm
- @MichaReiser
- @charliermarsh
- @lerebear
- @ibraheemdev
- @sharkdp |
| 0.0.58 | 10 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix protocol matching for class variables (#26669)
- Fix reflected binary dispatch for runtime classes (#26623)
- Support cached properties in protocols (#26681)
Diagnostics
- Add assignability context to upper-bound diagnostics (#26645)
- Add blanket ignore comment rule (#26426)
- Improve protocol attribute diagnostic context (#26644)
Library support
- Pydantic: Add fields from mixin classes (#26631)
- Pydantic: Add support for validate_by_{name,alias} (#26598)
- Pydantic: Add support for validation_alias (#26629)
- Pydantic: Fix float conversion in unions (#26655)
- Pydantic: Ignore private attributes (#26630)
- Pydantic: Make BaseSettings fields optional by default (#26628)
- Pydantic: Recognize frozen models via config (#26648)
- Pydantic: Support dict model configurations (#26632)
- Pydantic: Support validation of RootModel fields (#26634)
- Pydantic: Understand ellipsis as providing no default value (#26637)
Core type checking
- Gate membership narrowing on __contains__ semantics (#25964)
- Handle callable classes in solver (#26090)
- Infer ModuleType.__doc__ as str in the presence of a docstring (#26505)
- Infer metaclass-declared attributes on class instances (#26512)
- Respect user stub overlays during module resolution (#26123)
Performance
- Avoid allocating decorated parameter names (#26666)
- Optimize TypeCollector (#26593)
Contributors
- @carljm
- @charliermarsh
- @mtshiba
- @MichaReiser
- @sharkdp
- @kaapstorm |
| 0.0.57 | 8 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Detect async generator expressions containing await (#26568)
- Preserve exhaustive gradual match patterns (#26523)
LSP server
- Fix selection range behavior for strings (#26532)
- Recognize that dedent ends doctest block when parsing docstrings for signature help (#26552)
- Render reStructuredText hyperlinks as Markdown in hover docstrings (#25907)
- Update __slots__ string when renaming an attribute (#26438)
Documentation
- Document PYTHONPATH support in module discovery (#3889)
Library support
- Add support for extra arguments in Pydantic model constructors (#26520)
- Detect Pydantic model configurations (#26573)
- Distinguish lax and strict mode for Pydantic models (#26587)
Core type checking
- Fix subtyping/assignability for @property protocol members (#25332)
- Narrow instanceof against intersections containing invalid member (#26545)
- Narrow match subjects through structural patterns (#25942)
- Preserve generic functools.partial signatures (#24583)
- Preserve generic variadic callback semantics (#26521)
- Preserve invariant materialization on generic specializations (#26578)
- Preserve literal enum member names (#26592)
Performance
- Avoid exponential invariant constraint paths (#26538)
- Batch parallel jobs when finding references (#26534)
- Build module names directly in CompactString (#26546)
- Elide default use-def state (#26398)
- Reuse owned buffers for string literals (#26547)
- Use ICF for macOS release builds (#3709)
- Use cached class literal lookup for is_subclass_of (#26585)
Contributors
- @sharkdp
- @fenghourun
- @zaniebot
- @charliermarsh
- @MichaReiser
- @shaanmajid
- @jvdillon
- @sqqueak
- @SuryanshSS1011
- @carljm
- @lerebear |
| 0.0.56 | 1 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid MRO cycle when collecting NamedTuple fields (#26464)
- Model int and str enum value normalization (#26349)
- Prefer reflected operators by runtime class (#26434, #26474)
CLI
- Exit with status 130 when interrupted (#26465)
Performance
- Avoid exponential OR-pattern reachability (#26481)
- Reduce bound typevar identity overhead (#26396)
Core type checking
- Infer generic class pattern capture types (#26479)
- Narrow exact tuples through sequence patterns (#26424)
- Recognize inherited enum member constructors (#26410)
- Respect return-context inference when filtering overloads (#26454)
- Sync vendored typeshed stubs (#26501). Typeshed diff
Contributors
- @charliermarsh
- @sharkdp |
| 0.0.55 | 27 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióLSP server
- Render full diagnostics in color (#26384)
Documentation
- Document colored diagnostic output (#3858)
Performance
- Improve vendored filesystem concurrency (#26408)
- Optimize enum comparisons in equality evaluation (#26340)
- Remove redundant semantic index shrinks (#26392)
- Use never-change durability for one-shot checks (#26359)
Core type checking
- Correct enum alias detection and scalar constructors (#26345)
- Fix structural pattern binding inference (#26411)
- Improve variable-length tuple slicing (#26151)
- Infer class and mapping pattern bindings (#25941)
- Infer empty collection constructors from later uses (#26389)
- Skip shadowed submodule bindings during import analysis (#26385)
- Sync vendored typeshed stubs (#26406). Typeshed diff
- Track literal iterable emptiness for reachability (#25222)
- Validate positional class patterns against __match_args__ (#26195)
Contributors
- @charliermarsh
- @carljm
- @AlexWaygood
- @MichaReiser
- @mtshiba
- @felixscherz |
| 0.0.54 | 25 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid duplicate configuration error output (#26375)
- Avoid stack overflows in reachability analysis (#26272)
- Fix divergent recursive tuple cycle handling in ty (#26316)
- Fix panic from relation queries during cycle recovery (#26335)
- Fix panics by reverting recursive TypeOf cycle recovery (#26339)
- Support basic usages of __class__ closure cells in methods (#26329)
LSP server
- Fix typealias token classification inconsistency (#26255)
- Implement rust-analyzer's "Click for full compiler diagnostic" feature (#26269)
Performance
- Co-locate retained definition usage state (#26019)
- Use never-change durability for immutable file inputs (#26353)
Diagnostics
- Reject undeclared protocol instance attributes (#26336)
Core type checking
- Allow replacing ordinary methods with compatible functions (#26158)
- Distinguish typing.TypedDict from typing_extensions.TypedDict (#25843)
- Don't treat non-empty ranges as single-valued (#26351)
- Handle TypeVar bounds over type[...] in attribute lookup (#26146)
- Infer definite equality comparison results (#26337)
- Infer mismatched literal comparisons (#26313)
- match statements: make class-pattern fallthrough member-aware (#26283)
- match statements: prove TypedDict structural patterns exhaustive (#26285)
- match statements: resolve positional class-pattern exhaustiveness (#26284)
- Model non-exhaustive enum member sets (enum.Flags) (#26277)
- Reduce retained definition map storage (#26348)
- Reuse equality semantics for membership compatibility (#25955)
- Sync vendored typeshed stubs to support builtins.sentinel (#26341)
- Treat non-empty range calls as non-empty for reachability (#25220)
- Use assignability for divergent constraints (#26334)
- Widen inferred class-valued instance attributes (#26338)
Contributors
- @carljm
- @sqqueak
- @AlexWaygood
- @mtshiba
- @charliermarsh
- @MichaReiser |
| 0.0.53 | 24 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid bypassing lazy constraints for Divergent (#26288)
- Avoid recursion when projecting narrowing constraints (#26276)
- Fix ParamSpec callable signature extraction for callable instances (#26279)
- Make multi-arm TypeOf cycle recovery monotonic (#26275)
LSP server
- Document all special forms in ty_extensions (#26263)
Performance
- Avoid cloning fallback condition flow snapshots (#26203)
- Avoid constructing discarded speculative diagnostics (#26251)
- Avoid path lookups when sorting same-file diagnostics (#26257)
- Cache is_never_satisfied results (#26261)
- Defer applying type context to simple standalone expressions (#26252)
Core type checking
- Infer types for names bound in match patterns (#25940)
- Preserve regular kind for callable instances (#26253)
- Simplify intersections of invariant generic types with Any specializations (#26127)
Contributors
- @charliermarsh
- @MichaReiser
- @AlexWaygood
- @sharkdp
- @ibraheemdev
- @carljm |
| 0.0.52 | 23 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid shadowing hints for attribute assignments (#26164)
- Fix dict.pop overloads to accept arbitrary keys with defaults (#26241)
- Normalize recursive TypeOf across multiple union arms (#26230)
- Normalize recursive TypeOf growth during cycle recovery (#26163)
- Normalize recursive protocol growth during cycle recovery (#26246)
- Preserve generic alias identity during cycle recovery (#26166)
- Recover from dynamic class code generator cycles (#26167)
LSP server
- Add a go-to destination for Divergent (#26162)
- Publish diagnostics for all open files after a single file is saved (#25929)
- Render Markdown for reStructuredText fields in docstrings on hover (#25903)
CLI
- Make error-on-warning the default (#26157)
Diagnostics
- Make rendering of fix diffs more concise (#26161)
Performance
- Avoid allocating disabled error context trees (#26191)
- Avoid lookup maps for small place tables (#26177)
- Avoid moving boxed use-def map builders (#26211)
- Avoid transient AST ID merge map (#26185)
- Batch signature typevar freshness scans (#26196)
- Box large semantic index builders (#26186)
- Build frozen definition maps directly (#26188)
- Compact use-def binding interner keys (#26193)
- Consume condition flow snapshots (#26189)
- Lazily allocate reachability caches (#26194)
- Remove redundant use-def state shrinking (#26206)
- Reuse the first union bindings buffer (#26225)
- Short-circuit terminal narrowing constraints (#26215)
- Solve simple constraint conjunctions directly (#25879)
- Store cycle-detector cache entries inline (#26183)
- Stream indexed AST construction (#26184)
- Suppress discarded TypedDict diagnostics (#26250)
- Use SmallVec for CycleDetector::seen (#26181)
- Use a SmallVec for seen type aliases (#26187)
Core type checking
- Raise limit for number of non-recursive union literals (#25212)
- Preserve gradual behavior for explicit Any subclasses (#26034)
- Preserve metaclasses when inheriting from intersection-typed bases (#26145)
- Recognize exhaustive matches over finite tuples (#26132)
Contributors
- @JamBalaya56562
- @AlexWaygood
- @carljm
- @Minibrams
- @lerebear
- @MichaReiser
- @charliermarsh |
| 0.0.51 | 19 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix bound TypeVar default cycle recovery (#26124)
- Support Annotated[Any, ...] as a class base (#26133)
LSP server
- Suggest keyword-only arguments between variadic parameters (#26134)
Core type checking
- Avoid assuming classes with Any or Unknown bases are descriptors (#26120)
- Infer simpler types in complex lambda cycles (#26137)
- Preserve exact class objects during identity narrowing (#26117)
Diagnostics
- Preserve unpacking diagnostics for nested assignment targets (#26121)
Performance
- Compact indexed AST node storage (#25998)
- Discard dead DNF branches in intersection building (#26144)
Documentation
- Remove broken gradual guarantee link (#3806)
Contributors
- @charliermarsh
- @ibraheemdev
- @carljm
- @MichaReiser
- @sharkdp |
| 0.0.50 | 17 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid cross-TypeVar leakage in generic inference (#26099)
- Fix panic from oscillating collection-use constraints (#26031)
- Preserve type variables in fixed tuple aliases (#26041)
- Respect ParamSpec binding contexts (#25993)
- Show bare Final as a special form on hover (#26029)
- Support options in functional dataclass calls (#25989)
LSP server
- Add context-sensitive keyword completions (#26036)
- Fix wildcard import symbol range (#25740)
- Highlight decorated methods consistently (#26003)
- Preserve narrowing after qualified TYPE_CHECKING (#26051)
- Respect client's content format preference (#25957)
- Retain all diagnostic annotations in the server (#26006)
- Track unused-binding captures across nested scopes (#25536)
Diagnostics
- Fix override diagnostics for decorated methods (#25671)
- Improve duplicate-base diagnostics (#26107)
- Reject invalid dataclass flag combinations (#25985)
- Reject legacy TypeVars in PEP 695 class bases (#25975)
- Reject legacy TypeVars in PEP 695 functions (#25979)
- Respect @no_type_check in function validation (#25994)
Performance
- Avoid rebuilding unchanged specializations (#25826)
- Avoid redundant equality intersections (#26057)
- Avoid retaining empty use-def tables (#26018)
- Compact retained definition inference extras (#25838)
- Deduplicate retained scope inference types (#25846)
- Disable LRU tracking for one-shot checks (#26106)
- Fast path collection literals with exact type contexts (#25878)
- Flatten retained declaration states (#25912)
- Improve flow snapshot performance (#26012)
- Skip stub package checks in stub-free search paths (#25963)
- Speed up large-union narrowing (#26048)
- Speed up module resolution for projects with many search paths (#25962)
- Store cumulative binding end offsets (#25913)
- Use compact frozen representation for narrowing constraints (#25990)
Core type checking
- Annotate intersection and negation types using & and ~ (#26035)
- Diagnose zero-step slices on lists (#25966)
- Full-scope bidirectional inference for non-empty collection literals (#25280)
- Improve equality-based narrowing for ==, !=, and match (#25788)
- Infer precise values for standard-library enums (#26103)
- Make equality evaluation cycle-aware (#26055)
- Narrow equality across IntEnum classes (#26079)
- Narrow tuple expression match subjects (#25874)
- Preserve literal types for loop variables over literal collections (#25083)
- Preserve negative narrowing for starred sequence patterns (#25927)
- Preserve non-final types in Hashable unions (#26039)
- Support enum literals as tagged-union discriminants (#25855)
- Sync vendored typeshed stubs (#25952). Typeshed diff
- Sync vendored typeshed stubs (#25997). Typeshed diff
- Synthesize NamedTuple __match_args__ (#25934)
- Treat assigned enum hooks conservatively (#25958)
- Validate deprecated warning categories (#26025)
Contributors
- @AlexWaygood
- @MichaReiser
- @ankddev
- @sqqueak
- @lerebear
- @sharkdp
- @denyszhak
- @ibraheemdev
- @charliermarsh |
| 0.0.49 | 12 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix site-package error when multiple versions of Python are installed in system path (#25769)
Diagnostics
- Point at attribute's binding site in `invalid-await diagnostic (#24628)
- Report redefined legacy TypeVars (#25854)
Performance
- Add dedicated TDDs for narrowing constraints (#25834)
- Avoid caching same-file raw signatures (#25761)
- Cache reachability evaluations during inference (#25696)
- Compact retained definition maps (#25737)
- Omit redundant definition inference owner keys (#25837)
Core type checking
- Preserve nominal type of enum.property instances (#25849)
- Restrict length narrowing to types that encode their length (#25840)
- Use peer context for collection literals (#25848)
Contributors
- @charliermarsh
- @anishgirianish
- @cheparity
- @carljm |
| 0.0.48 | 10 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióPerformance
- Avoid redundant constraint saturation work (#25786)
Core type checking
- Add support for TypedDict extra_items (#25591)
- Improve closed=True TypedDict precision (#25651)
- Require subtyping for transitive constraint pivots (#25778)
- Sync vendored typeshed stubs (#25828). Typeshed diff
Contributors
- @charliermarsh
- @MichaReiser |
| 0.0.47 | 10 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid panicking on encountering a recursive NamedTuple that references a recursive NewType (#25764)
- Fix out-of-bound panic in notebooks involving suppression comments (#25629)
Core type checking
- Preserve overloads through callable protocol decorators (#25806)
- Sync vendored typeshed stubs (#25779). Typeshed diff
Performance and memory-usage improvements
- Avoid caching specialization-invariant known instances (#25816)
- Avoid resolving overload sets for ordinary functions (#25817)
- Store common definition inference results inline (#25814)
- Use Box<SystemPath> etc. in Files (#25554)
Contributors
- @dhruvmanila
- @MichaReiser
- @charliermarsh |
| 0.0.46 | 9 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid crash when hovering over Callable (#25759)
Core type checking
- Support Callable() in match statement class patterns (#25541)
- Improve support for enum.property (#25681)
Contributors
- @carljm
- @charliermarsh
- @thejchap |
| 0.0.45 | 8 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid treating dynamic class attributes as instance attributes (#25678)
- Fix divergence in recursive inference due to ambiguous overload (#25548)
- Preserve literal promotion for mixed bounds (#25648)
Diagnostics
- Add missing-type-argument lint rule (#25617)
Core type checking
- Add support for narrowing on tuple match cases (#25493)
- Check implicit open TypedDict extra items (#25628)
- Create fresh copies of generic callable typevars (#24949)
- Preserve deprecation on replacement functions (#25688)
- Preserve intersection receivers during attribute lookup (#25626)
- Preserve transparent callable decorators (#25030)
Performance
- Avoid AST load for callable description names (#25728)
- Avoid caching absent class decorators and type parameters (#25689)
- Avoid caching atomic type specializations (#25663)
- Avoid caching constant constraint relations (#25656)
- Avoid caching missing implicit attributes (#25649)
- Avoid caching trivial class-header queries (#25692)
- Avoid caching trivial member lookups (#25661)
- Bypass member lookup for module imports (#25723)
- Cache constraint implication checks (#25714)
- Cache upper-bound satisfiability (#25710)
- Compact retained function type signatures (#25669)
- Compact retained use-def bindings (#25682)
- Consolidate retained narrowing constraints (#25660)
- Construct trivial constraint sets directly (#25659)
- Resolve function descriptors directly (#25675)
- Share code-generator classification across specializations (#25701)
- Share parameter lists with Arc (#25735)
- Use same-file expression inference in reachability (#25694)
Contributors
- @mtshiba
- @dhruvmanila
- @charliermarsh
- @dcreager
- @carljm
- @reginaldl |
| 0.0.44 | 5 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid treating sys.implementation.version like sys.version_info (#25608)
- Fix anchor point for override diagnostics (#25621)
LSP server
- Show type alias value on hover (#25381)
Performance
- Add caching for pattern match narrowing (#25613)
- Compact retained definition and expression identities (#25606)
- Reuse expression cache for TypedDict union inference (#25643)
- Upgrade Salsa (#25545)
Core type checking
- Enable narrowing for unions of TypedDict (#25188)
Contributors
- @lerebear
- @MichaReiser
- @carljm
- @pierrem964
- @charliermarsh
- @Hugo-Polloli |
| 0.0.43 | 4 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Don't inject Unknown from non-callable elements of intersection call (#25538)
- Don't needlessly disambiguate the same type alias (#25563)
- Fix variance inference for nested type aliases (#25567)
- Ignore rejected member annotations for synthesized bindings (#25427)
- Normalize dynamic class literals in cycle recovery (#25558)
- Register file roots for first-party search paths (#25522)
- Treat union-bound typevars like unions for possibly-missing-attribute (#25561)
LSP server
- Suppress importable completions that are already in scope (#25479)
Performance
- Avoid retaining duplicate function signatures (#25609)
- Compact retained definition inference results (#25593)
- Compact retained definition kinds (#25610)
- Compact retained definitions by node (#25498)
- Consolidate AST ID reverse lookup (#25455)
- Consolidate retained use-def definition maps (#25499)
- Omit redundant definitions-by-node entries (#25501)
- Reuse common protocol constraints for TypedDict unions (#25598)
Diagnostics
- Improve error context for not-iterable diagnostics (#24944)
Core type checking
- Detect disjointness due to incompatible generic specializations (#24822)
- Distinguish typing.Callable from collections.abc.Callable (#24954)
- Include nested global/nonlocal bindings in type inference (#25387)
- Optional lower/upper bounds in individual constraints (#25435)
- Preserve slice-bound types in subscript inference (#25446)
- Reject Self in type aliases (#25529)
- Require literal booleans for TypedDict flags (#25594)
- Support narrowing on lengths (#25347)
- Synthesize precise __len__ methods for literals (#25600)
- Use callable type context to implicitly specialize generic class (#25471)
- expand type aliases inside type context unions (#25553)
Contributors
- @carljm
- @cheparity
- @kouhe3
- @sharkdp
- @charliermarsh
- @dcreager
- @thejchap
- @oconnor663 |
| 0.0.42 | 1 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix narrowing of enum literal unions by member identity (#25520)
- Detect recursive expansion in constraint-set solving (#25442)
Core type checking
- Support tagged-union narrowing for nominal types (#24916)
- Extend Generator assignability workaround to Python 3.13+ (#25472)
- Sync vendored typeshed stubs (#25514)
Performance
- Avoid redundant work for empty collection context (#25527)
- Deduplicate retained use-def place states (#25450)
- Compact retained semantic maps (#25238)
Contributors
- @aholyoke
- @carljm
- @charliermarsh
- @sharkdp |
| 0.0.41 | 1 de juny del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid panic for deferred dataclass field annotations (#25444)
- Avoid panic from cycle in function decorator inference (#25475)
- Ignore rejected assignments for synthesized bindings (#25340)
- Infer bool for not applied to dynamic values (#25445)
- Use diagnostic message as tie-breaker when sorting (#25424)
LSP server
- Add call hierarchy support (#25338)
- Add function parentheses completion (#25305)
- Display docs for matching parameter when hovering over the name of an argument passed by keyword (#25283)
- Document completeFunctionParentheses editor setting (#3513)
Diagnostics
- Introduce opt-in missing-override-decorator rule (#25111)
- Improve diagnostics for syntax errors in forward annotations (#25158)
- Improve diagnostic for failed assignment to a Callable type (#25308)
Core type checking
- Narrow bound method overloads by receiver (#24707)
- Add disjointness for protocol method members (#25315)
- Avoid treating metaclass declarations as populated values (#25432)
- Use TypeForm in ty_extensions (#25421)
Performance
- Avoid storing redundant reachability indexes (#25453)
- Compact retained semantic arrays (#25454)
- Remove excess capacity from more Salsa cached collections (#25411)
- Use compact sets for more immutable fields (#25476)
- Use ThinVec for sparse kwargs bindings (#25457)
Contributors
- @sharkdp
- @charliermarsh
- @lerebear
- @AlexWaygood
- @MichaReiser
- @mhuen
- @jelle-openai |
| 0.0.40 | 27 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Accept complete enum-literal alias unions as enums (#25341)
- Fix diagnostics in ignored folders after adding new files (#25236)
- Show LiteralString when hovering over an inline of a literal string (#25373)
LSP server
- Follow aliases when resolving stub mappings (#25328)
- Treat Python notebook text documents as Python sources (#25393)
- Recover incomplete list comprehension elements (#25326)
Diagnostics
- Add help message to invalid-generic-class variance diagnostic (#25385)
Core type checking
- Ignore and reject annotations on non-name targets (#25324)
- Infer class attributes assigned by metaclass initialization (#25342)
- Reject inconsistent generic bases in dynamic classes (#25413)
- Resolve enum names for all unions arms in literal enum subsets (#25379)
- Support typing.TypeForm (#25334)
- Use constraint sets as pending state in SpecializationBuilder (#24540)
Contributors
- @anuraaga
- @dcreager
- @charliermarsh
- @MichaReiser
- @Dev-X25874 |
| 0.0.39 | 22 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid panicking on __new__ assignments to classes (#25282)
- Preserve declaration order when synthesizing class fields (#25249)
- Respect dict-compatible fallbacks in TypedDict unions (#25242)
- Retain recursively-defined state in binary expressions (#25277)
LSP server
- Add Quick Fix to remove redundant cast (#25211)
- Classify property declaration semantic tokens (#25322)
- Escape HTML syntax in docstring rendering (#25247)
- Prefer symbols from standard library over those of the same name from third party libraries for import completions. (#25108)
- Support type aliases in document symbols (#25302)
Diagnostics
- Add error context for extra callable parameters (#25269)
Performance
- Avoid exponential blow-up in fall-through narrowing (#25278)
- Speed up include filtering for projects with many literal include patterns (#25266)
Core type checking
- Allow enum member accesses on self (#25077)
- Emit a diagnostic for subclassing with order=True (#21704)
- Full-scope bidirectional inference for unconstrained container literals (#25279)
- Infer dict(TypedDict) as dict[str, object] (#24852)
- Refine Callable class-decorator fallback for unknown results (#25250)
- Reject incompatible explicit variance in generic base classes (#25327)
- Support multi-inference through type aliases (#25245)
- Sync vendored typeshed stubs (#25271, #25172)
Contributors
- @ibraheemdev
- @MatthewMckee4
- @sqqueak
- @lerebear
- @sharkdp
- @dhimasardinata
- @MichaReiser
- @charliermarsh |
| 0.0.38 | 20 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix panic in enum literal during cycle recovery (#25237)
- Fix panic from lazy NewType base expansion during cycle recovery (#25234)
- Fix class-body global lookup before class binding (#25224)
- Handle aliased dict fallbacks in TypedDict unions (#25241)
- Ignore _generate_next_value_ with custom construction hooks (#25210)
LSP server
- Fix find references for except handlers (#25231)
- Preserve delimiters when folding expressions (#24999)
- Use incremental file walk on .gitignore changes (#25183)
Core type checking
- Add first-class support for enum complements (#24961)
- Allow known non-field writes on frozen dataclass subclasses (#25087)
- Ignore generic specialization in layout compatibility checks (#25178)
- Preserve short-circuit bindings in all condition consumers (#25160)
- Support class decorators (#25091)
- Support custom _generate_next_value_ methods in enums (#25196)
Contributors
- @MatthewMckee4
- @MichaReiser
- @charliermarsh
- @lerebear
- @thejchap |
| 0.0.37 | 16 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid unsound not in narrowing (#25161)
- Fix async iteration over narrowed typevars (#25155)
- Fix panic in double-inference for single starred positional TypedDict (#25176)
- Fix panic in disjoint base check (#25187)
- Fix panic in recursive binary inference (#25189)
- Fix panic in cyclic __new__ (#25185)
- Fix panic in reveal_protocol, reveal_mro, etc. with keyword arguments (#25179)
- Fix panic in imported overload definition (#25168)
LSP server
- Don't show argument inlay for case-insensitive matches or prefix/suffixes (#25174)
- Reduce CPU usage of the LSP when switching between large changesets (#25142)
Core type checking
- Avoid enforcing __new__ with custom metaclasses (#25180)
- Make overload public type reachability-aware (#25171)
- Only specialized types of generic class instances should influence variance (#25124)
- Preserve ParamSpec argument context through wrapper calls (#24934)
- Support partially specialized type context for collection literals (#24506)
Contributors
- @RasmusNygren
- @MichaReiser
- @charliermarsh
- @ibraheemdev |
| 0.0.36 | 15 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix Go To-Definition for self-imported submodules (#25106)
- Fix ClassVar[Self] assignment checks for class objects (#24657)
- Fix attribute access on Callable-bounded TypeVars (#24793)
- Fix panic from TypedDict schema cycle with Self fields (#25094)
- Fix panic from accessing args[0] for static_assert (#25149)
- Fix panic from non-name walrus target access (#25121)
- Fix singleton classification for runtime typing objects (#25099)
- Guard self-referential TypeOf recursion in generic callables (#24668)
- Preserve lexical ParamSpec scope for returned Callable annotations (#24909)
- Preserve walrus bindings through negated short-circuit conditions (#25163)
- Run full iteration analysis on narrowed typevars (#25143)
LSP server
- Classify TypeVar semantic tokens as type parameters (#24891)
- Emit folding ranges for an entire block (#25113)
- Respect the includeDeclaration request parameter (#24960)
- Support TypedDict key completions in incomplete, anonymous contexts (#25147)
Performance
- Bound loop-header analysis for large loops (#24972)
- Convert inference hash maps to boxed slices on finish (#25102)
Core type checking
- Add support for sentinel values (PEP 661) (#25082)
- Hoist path assignment implication checks (#25107)
- Preserve TypedDict keys through dict unpacking (#24523)
- Treat custom enum __new__ values as dynamic (#25136)
Contributors
- @RasmusNygren
- @charliermarsh
- @JelleZijlstra
- @Minibrams
- @lerebear
- @denyszhak
- @MichaReiser |
| 0.0.35 | 10 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Allow ParamSpec specialization through unioned generic classes (#24826)
- Fix cross-file find-references for keyword arguments (#25043)
- Fix comparison between negative and positive literal integers (#25023)
- Reject dataclass decorator parameters based on supported Python version (#25029)
LSP server
- Adjust start of block folding range to preserve visible header for character-precise LSP clients. (#24917)
- Emit folding ranges from the language server for multi-line block headers. (#24978)
- Skip global search for references if identifier is not externally visible (#25033)
- Speed-up find-references by using multithreading for cross-file searches (#25042)
CLI
- Include severity in JUnit diagnostics (#25080)
Core type checking
- Check non-generic overload implementations (#24936)
- Expand support for narrowing within walruses (#24968)
- Filter overloads based on return type for ParamSpec mapping (#24769)
- Improve support for recursive types (#24773)
- Include TypedDict type context when inferring mixed constructors (#25039)
- Include TypedDict type context when inferring string keys (#25037)
- Preserve NewType and TypeAliasType in implicit aliases (#25072)
- Provide type cntext for generator expression yields (#25069)
- Provide type context for boolean operands (#25070)
- Selectively promote a union of homogeneous fixed-length tuples to a single variadic tuple (#24705)
- Support narrowing on __class__ checks (#24997)
- Use more precise exception types when catching a union (#25076)
Diagnostics
- Include error context for overload consistency diagnostics (#24950)
Performance
- Cache results in desperate module resolution (#24977)
- Lazily initialize builder when transforming a union type (#24929)
- Project reachability constraints before narrowing (#24982)
- Skip parameter accumulation for object variadics (#24976)
Contributors
- @MichaReiser
- @mtshiba
- @dylwil3
- @lerebear
- @carljm
- @charliermarsh
- @dhruvmanila |
| 0.0.34 | 1 de maig del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid panic in recursive protocol signature comparisons (#24665)
- Avoid panics for syntax error targets in invalid unpacking assignments (#24663)
- Fix unbounded type growth in nested-typevar substitutions (#24803)
- Prevent string annotation tokens from leaking across notebook cells (#24919)
- Support reference finding in stringified annotations (#24956)
LSP server
- Add hover support for PEP 695 type aliases (#24926)
- Offer string literal completion suggestions based on expected type (#24555)
- Support Go-to Definition, Go-To Declaration, and Find References for TypedDict and NamedTuple initializers (#24897)
- Support Annotated metadata in semantic tokens (#24890)
Core type checking
- Add support for functools.partial (#24582)
- Fix ParamSpec defaults and alias variance (#24479)
- Fix TypeIs assignability with gradual types (#24928)
- Infer dict(**TypedDict) in TypedDict context (#24709)
- Support infer_variance for legacy TypeVar (#24930)
- Support variance keywords in ParamSpec (#24927)
- Sync vendored typeshed stubs (#24952). Typeshed diff
- Unpack Union of TypedDict in various sites (#24958)
Diagnostics
- Add missing error context node for protocol to protocol assignability (#24905)
- Show a diagnostic for unsupported inferred Python version (#24581)
Performance
- Lazily build TypeVar accumulations (#24782)
Contributors
- @sharkdp
- @MichaReiser
- @lerebear
- @MatthewMckee4
- @charliermarsh
- @mtshiba
- @Minibrams
- @denyszhak |
| 0.0.33 | 28 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBreaking changes
- ty now prefers the declared type of an annotated assignment in more situations (#24802).
Consider this example:
from some_library import untyped_function
threshold: int | None = 0
result: str = untyped_function()
ty previously favored the inferred type of the right hand side expression when threshold and result were used. This is useful for threshold, as it allows something like threshold += 1 to work without an error: we know that threshold could later become None, but right now, we see that it is an int. However, for result, the inferred type is Unknown. This is not a useful type and it can lead to false negatives. Starting with this release, ty will therefore prefer
the declared type if the inferred and declared types are mutually assignable. In the above example, threshold will still be inferred as int (or rather Literal[1]), but result will now be inferred as str. If you previously added casts to work around this behavior, you should be able to remove them after upgrading.
Bug fixes
- Fix reporting of annotation-only locals as unused (#24811)
- Fix project and workspace selection (#24824)
- Fix go-to definition for generic classes (#24714)
- Fix receiver coloring for aliased decorators (#24884)
LSP server
- Add support for go-to definition in literal enum member inlay hints (#24792)
- Add support for "baking" keyword argument inlay hints into the source code (#24667)
- Don't allow inlay hint edits when introducing a non global scope symbol (#24797)
- Omit semantic highlighting for unresolved symbols (#24718)
Core type checking
- Support narrowing with aliased conditional expressions (#24302)
- Model short-circuiting control flow in Boolean expressions (#24458)
- Handle finally blocks where all try/except blocks are terminal (#24882)
- Detect invalid ClassVar vs instance-attribute overrides (#24767)
- Emit diagnostic for invalid uses of Unpack[...] (#24868)
- Infer lambda parameter types with Callable type context (#24317)
- Support ** unpacking of TypedDict in dict-literal assignments (#24703)
- Support Unpack[TypedDict] in **kwargs signatures (#24653)
- Treat [*xs] as an irrefutable pattern when matching on Sequence (#24787)
- Improve generics solving for unions in invariant positions (#24698)
- Improve generics solving for unions when matching against protocols (#24837)
Diagnostics
- Add error context to invalid-return-type diagnostics, invalid-yield diagnostics, attribute assignment diagnostics (#24770, #24771)
- Add error context for invalid TypedDict assignments (#24790)
- Add error context for invalid intersection type assignments (#24772)
- Improve TypedDict to dict assignment error diagnostics (#24768)
- Add contextual secondary annotations in more places (#24696)
- Include full type in invalid-key diagnostics for unions of TypedDicts (#24693)
- Emit more specific diagnostics for "possibly unbound" errors from context manager dunder methods invoked on a union. (#24662)
- Remove duplicate invalid-type-form diagnostics for PEP-613 type alias values (#24760)
- Improve diagnostics for implicit calls to a possibly unbound unary operator (#24816)
- Improve diagnostics for possibly-unbound errors from implicit dunder calls on unions (#24676)
Performance
- Optimize signature checking based on number of arguments (#24674)
- Defer union of parameter types (#24756)
- Skip checks for gradual vararg calls (#24748)
Other changes
- Fix notifications about watched changes for entities outside any workspace (#24775)
Contributors
- @MatthewMckee4
- @lerebear
- @tonyxwz
- @sharkdp
- @felixscherz
- @MichaReiser
- @tamird
- @ibraheemdev
- @AlexWaygood
- @denyszhak
- @charliermarsh
- @mtshiba
- @EliteTK
- @carljm |
| 0.0.32 | 20 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix panic when __get__ uses Concatenate self-type and wraps a __call__ (#24692)
- Avoid panicking on overloaded Callable type context (#24661)
- Expand class bases in per-base lint checks (#24695, #24699)
- Fix stack overflow for binary operator inference involving recursive types (#24551)
LSP server
- Dim out unreachable code in IDEs (#24580)
- Do not suggest argument completion when typing the value of a keyword argument (#24669)
- Retrieve the docstring from the overload implementation if an @overload-decorated function has no docstring (#23920)
Core type checking
- Allow if statements in TypedDict bodies (#24702)
- Disallow @disjoint_base on TypedDicts and Protocols (#24671)
- Do not consider a subclass of a @dataclass_transform-decorated class to have dataclass-like semantics if it has type in its MRO (#24679)
- Reject using properties with Never setters or deleters (#24510)
- Sync vendored typeshed stubs (#24646). Typeshed diff
Diagnostics
- Show error context for assignability diagnostics (#24309)
- Use partially qualified names when reporting diagnostics regarding bad calls to methods (#24560)
- Reduce source code context window to zero (#24689)
- Merge same-file annotations if there is only a single line separating them (#24694)
Performance
- Memoize binary operator return types (#24700)
- Gate protocol compatibility on member count (#24684)
Contributors
- @JelleZijlstra
- @kc0506
- @denyszhak
- @carljm
- @dcreager
- @AlexWaygood
- @dylwil3
- @charliermarsh
- @sharkdp
- @ibraheemdev |
| 0.0.31 | 15 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid panic from double inference for namedtuple(typename=T, field_names=x, **{}) (#24641)
- Avoid panic from double inference with missing functional Enum(...) names (#24638)
- Avoid panic from double inference with functional Enum(value=...) (#24639)
- Fix cases where invalid-key fix doesn't converge, and override-of-final-method produces invalid syntax (#24649)
- Fix unnecessary ty:ignore comments inserted by --add-ignore for diagnostics starting on the same line (#24651)
CLI
- Add --fix mode to enable auto-fix for diagnostics (#24097)
Performance
- Avoid excessive memory usage for dataclasses with many fields (#24620)
Core type checking
- Check inherited NamedTuple field conflicts (#24542)
- Error when duplicate keywords are provided to TypedDict constructors (#24449)
- Respect mixed positional and keyword arguments in TypedDict constructor (#24448)
- Respect subclass shadowing for inherited NamedTuple fields (#24640)
- Skip EnumMeta.__call__ for enum constructor signatures (#24513)
Contributors
- @sharkdp
- @Glyphack
- @MichaReiser
- @charliermarsh |
| 0.0.30 | 14 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióAs of v0.0.30, ty no longer unions Unknown into most inferred types of unannotated attributes. For example:
class Foo:
def __init__(self) -> None:
self.value = 1
reveal_type(Foo().value) # revealed: int
Foo().value = "x" # error: [invalid-assignment]
In previous versions, reveal_type(Foo().value) would have included Unknown, so the assignment to "x" would not have been flagged. Since this can affect inferred attribute types throughout a codebase, upgrading may lead to both new and resolved diagnostics. Initializers of None and other non-literal singleton types remain exceptions. See #24531 for details.
Bug fixes
- Disallow bare ParamSpec in Concatenate prefixes (#24474)
- Ensure '/' parameter appears before '*' when rendering Callable types (#24497)
- Ensure nested conditional blocks inherit TYPE_CHECKING state from outer blocks (#24470)
- Fix bad diagnostic range for incorrect implicit __init_subclass__ calls (#24541)
- Fix incorrect assignability of type[T] to a metaclass (#24515)
- Fix stack overflows from recursive types (#24413)
- Server: fix signature help for ParamSpec-specialized class calls (#24399)
- Use TypedDict field types as type context to inform the inference of arguments passed to TypedDict constructors (#24422)
LSP server
- Adjust semantic tokens implementation to ensure that type alias values have "type form" syntax highlighting in IDEs (#24478)
- Completions: rank symbols from typing and collections higher than third party re-exports (#23643)
- Ignore unsupported editor-selected Python versions (#24498)
- Improve TypedDict constructor support in the LSP by synthesizing __init__ (#24476, #24522, #24535)
- Return all attribute definitions for goto definition, rather than just the last definition in the given scope (#24332)
- Show info subdiagnostics in LSP diagnostic messages (#24328)
- Use the context of the kind of object a parameter is expected to receive to inform syntax highlighting of arguments passed to call expressions (#23949)
Diagnostics
- Hide "Rule xyz is enabled"-style hints unless verbose mode was specified (#24469)
- Improve consistency of pedantic lints complaining about badly named types (#24575)
- Point to the first reachable declaration, rather than the first declaration, in declaration-based diagnostics (#24564)
Core type checking
- Add support for functional Enum(...) syntax (#23602, #24570, #24571)
- Allow Final variable assignments in __post_init__ (#24529)
- Allow partially stringified type[...] annotations, e.g. type["MyClass"] (#24518)
- Emit a diagnostic when attempting to inherit from a class with __init_subclass__ = None (#24543)
- Fix TypeGuard and TypeIs narrowing for unbound method calls (#24612)
- Fix assignability of intersections with bounded TypeVars (#24502)
- Fix excess subscript argument inference for non-generic types so that list[int][0] leads to 1 diagnostic, rather than 2 (#24354)
- Inherit dataclass_transform metadata from metaclass bases (#24615)
- Lazily evaluate declaration reachability in field and enum filters (#24451)
- Normalize explicit None accessors in manual property construction (#24492)
- Reject deleting Final attributes (#24508)
- Respect non-required keys in TypedDict unpacking (#24446)
- Respect property deleters in attribute deletion checks (#24500)
- Stop special-casing str constructor (#24514)
- Stop unioning Unknown into types of un-annotated attributes (#24531)
- Support super() in metaclass methods (#24483)
- Tighten up a few edge cases in Concatenate type-expression parsing (#24172)
- Use basic blocks for determining if a node is in an if TYPE_CHECKING block (#24394)
Contributors
- @charliermarsh
- @Glyphack
- @MichaReiser
- @sharkdp
- @carljm
- @YilunAllenChen
- @zanieb
- @AlexWaygood
- @thejchap |
| 0.0.29 | 5 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid special-casing for dataclasses.field if it's not in field_specifiers (#24397)
- Reject unsupported environment.python-version values in configuration files (#24402)
- Respect supported lower bounds from requires-python (#24401)
Core type checking
- Add support for types.new_class (#23144)
- Fix PEP 695 type aliases in with statement (#24395)
- Respect __new__ and metaclass __call__ return types (#24357)
- Treat enum attributes with type annotations as members (#23776)
Contributors
- @charliermarsh
- @carljm |
| 0.0.28 | 2 d’abril del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Mark loop header assignments as used to avoid false positives in "unused variable" diagnostics (#24336)
LSP server
- Show constructor signature of classes when hovering over them (#24257)
Core type checking
- Avoid emitting cascading diagnostics when parsing invalid type expressions (#24326)
- Handle most "deep" mutual TypeVar constraints (#24079)
- Improve consistency and quality of diagnostics relating to invalid type forms (#24325)
- Improve robustness of various type-qualifier-related checks (#24251)
- Infer the extra_items keyword argument to class-based TypedDicts as an annotation expression (#24362)
- Use bidirectional inference to fix false positives on operations such as x: list[int | None] = [None] * 2 (#24197)
- Sync vendored typeshed stubs (#24340). Typeshed diff
- Tighten up validation of subscripts and attributes in type expressions (#24329)
- Use infer_type_expression for parsing parameter annotations and return-type annotations (#24353)
- Use infer_type_expression for validating PEP-613 type aliases (#24370)
- Validate TypedDict fields when subclassing (#24338)
- Validate type qualifiers in functional TypedDict fields and the extra_items keyword to functional TypedDicts (#24360)
- Improve diagnostics for invalid functional TypedDicts (#24345)
Contributors
- @zsol
- @dcreager
- @charliermarsh
- @oconnor663
- @AlexWaygood
- @Glyphack |
| 0.0.27 | 31 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix panic on debug builds when attempting to provide autocomplete suggestions for list[int]<CURSOR>() (#24167)
- Fix instance-attribute lookup in methods of protocol classes (#24213)
- Fix nested global and nonlocal lookups through forwarding scopes (#24279)
- Fix panic on list[Annotated[()]] (#24303)
- Fix stack overflow on type A = TypeIs[Callable[[], A]] (#24245)
- Use _cls as the name of the first argument for synthesized collections.namedtuple constructor methods (#24333)
LSP server
- Fix semantic token classification for properties accessed on instances (#24065)
- Grey out unused bindings in the editor (#23305)
Core type checking
- Add bidirectional type context for TypedDict get() defaults (#24231)
- Add bidirectional type context for TypedDict pop() defaults (#24229)
- Add support for functional TypedDict (#24174, #24331, #24295)
- Ban type qualifiers in PEP-695 type aliases (#24242)
- Enforce Final attribute assignment rules for annotated and augmented writes (#23880)
- Improve support for Callable type context (#23888)
- Infer lambda expressions with Callable type context (#22633)
- Don't incorrectly infer the type of a method as being a singleton type when it's accessed off an instance (#24039)
- Propagate type context through await expressions (#24256)
- Resolve union-likes in emitting union attribute errors (#24263)
- Show the user where the variable was declared as Final when emitting a diagnostic about a Final variable being reassigned (#24194)
Contributors
- @carljm
- @mvanhorn
- @oconnor663
- @ibraheemdev
- @zanieb
- @denyszhak
- @Glyphack
- @charliermarsh
- @AlexWaygood |
| 0.0.26 | 26 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Prevent "too many cycle iteration" panics in more situations (#24061)
- Fix false positives and false negatives when unpacking a union of tuples into a function call (#23298)
Core type checking
- Add support for typing.Concatenate (#23689)
- Validate the return type of generator functions (#24026)
- Support dataclass field converters (#23088)
- Disallow Self in metaclass and static methods (#23231)
- Improve call inference for keyword-only dict() (#24103)
- Respect non-explicitly defined dataclass_transform params (#24170)
- Unconditionally silence diagnostics in unreachable code (#24179)
- Respect terminal-function-call narrowing in global scope (#23245)
Performance
- Fix performance regression for narrowing on a larger Literal type(#24185)
Contributors
- @sharkdp
- @Glyphack
- @charliermarsh
- @mtshiba
- @dhruvmanila
- @carljm
- @choucavalier |
| 0.0.25 | 24 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBreaking changes
- Support type:ignore[ty:code] suppressions (#24096)
Bug fixes
- Avoid eager TypedDict diagnostics in TypedDict | dict unions (#24151)
- Fix Salsa panic propagation (#24141)
- Fix folding ranges of comments separated by statements (#24132)
- Fix loop-header reachability cycles in conditional unpacking (#24006)
- Fix subtyping of intersections containing NewTypes of unions vs. unions (#24087)
- Fix untracked reads in Salsa queries that can lead to backdating panics (#24051)
- Prevent tainted loop bindings in cycle normalization (#24143)
- Simplify an intersection of N & ~T to Never if B & ~T would simplify to Never, where B is the concrete base type of a NewType N (#24086)
LSP
- Preserve blank lines between comments and imports in add-import action (#24066)
Type checking
- Add diagnostic hint for invalid assignments involving invariant generics (#24032)
- Add precisely-typed overloads for TypedDict update (#24101)
- Disallow read-only fields in TypedDict updates (#24128)
- Expand bounded typevars to their upper bounds when evaluating truthiness comparisons between intersections and literal types (#24082)
- Emit reveal_type diagnostics in unreachable code (#24070)
- Improve isinstance() reachability analysis (#24077)
- Improve keyword argument narrowing for nested dictionaries (#24010)
- Infer yield expression types (#23796)
- Reduce diagnostic range for invalid-metaclass (#24145)
- Support narrowing for extended walrus targets (#24129)
- Unions/intersections of gradual types should be assignable to Never (#24056) |
| 0.0.24 | 19 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Ensure TypedDict subscripts for unknown keys return Unknown (#23926)
- Fix overflow with recursive TypeIs (#23784)
- Fix variance of frozen dataclass-transform models (#23931)
LSP server
- Improve semantic token classification for attribute access on union types (#23841)
Core type checking
- Improve performance and correctness by avoiding inferring intersection types for call arguments as a result of bidirectional inference (#23933)
- Narrow keyword arguments when unpacking dictionary instances (#23436)
- Discover /usr/local/lib dist-packages on Debian/Ubuntu (#23797)
- Sync vendored typeshed stubs (#23963). Typeshed diff |
| 0.0.23 | 13 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix false-positive diagnostics for PEP-604 union annotations on attribute targets on Python 3.9 when from __future__ import annotations is active (#23915)
- dataclass_transform: Respect kw_only overwrites in dataclasses (#23930)
- Fix too-many-cycle panics when inferring loop variables with Literal types (#23875)
Server
- Fix folding range classification of lines starting with # (#23831)
- Fix folding ranges for notebooks (#23830)
Core type checking
- Split errors for possibly missing submodules into a new possibly-missing-submodule error code (enabled by default), and make possibly-missing-attribute ignored by default (#23918)
- Improve handling of bidirectional inference when (#23844)
- Fix inference of conditionally defined properties (#23925)
Improvements to diagnostics
- Clarify in diagnostics that from __future__ import annotations only stringifies type annotations (#23928)
Performance improvements
- Avoid duplicated work during multi-inference (#23923)
Contributors
- @ibraheemdev
- @sharkdp
- @oconnor663
- @mtshiba
- @MichaReiser
- @carljm
- @AlexWaygood |
| 0.0.22 | 12 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix issue where variables could be inferred as Divergent if they were assigned using tuple unpacking in loops (#23812)
- Allow error = "all" in a root pyproject.toml file to be overridden using tool.ty.overrides in a subdirectory's pyproject.toml file (#23712)
- Only unsoundly upcast type[] types to their constructor Callable type during assignability checks, not during redundancy/subtyping checks (#23834, #23901)
- Fix stack overflow that could occur with certain recursive protocols (#23870)
LSP server
- Improve syntax highlighting by fixing semantic token classification for generic class members in annotations (#23811)
CLI
- Add ty explain <RULE> CLI command (#23766)
Core type checking
- Add validation for type parameters with defaults after TypeVarTuple parameters (#23807)
- Allow subtypes of LiteralString to be narrowed using equality checks (#23794)
- Detect invalid partially stringified PEP-604 unions (#23285)
- Disambiguate duplicate-looking overloaded callables in union display (#23907)
- Don't promote module-literal types to types.ModuleType (#23786)
- Improve type context support for __setitem__ dunder calls (#23800)
- Infer t | {"foo": int} as TD if t is an instance of a TypedDict td with a foo: int key (#23806)
- Narrow T to T & str rather than str if T is a constrained TypeVar with str as one of its constraints (#23850)
- Promote None to None | Unknown in invariant contexts (#23790)
- Reject type[Callable] in type annotations (#23753)
- Support enum member access through enum instances and members (#23772)
- Eagerly narrow the type associated with keys of heterogeneous dict literals even when a dict literal appears as a subexpression inside a list or tuple literals (#23569)
- Ensure that T & ~S is always inferred as a subtype of U during generic inference if T is understood as a subtype of U (#23728)
- Optimize and improve cycle recovery by preventing "tainted" unions in cycle normalization (#23563)
Installer
- Prefer downloading releases from Astral's mirror over GitHub (#2980)
Contributors
- @charliermarsh
- @MichaReiser
- @mtshiba
- @AlexWaygood
- @ibraheemdev
- @ntBre
- @oconnor663
- @zsol |
| 0.0.21 | 6 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Avoid stack overflow with recursive typevar (#23652)
- Fix panic on incomplete except handlers (#23708)
- Allow unions of different-length iterables in *args unpacking into optional positional parameters (#23124)
- Don't replace Any attributes with object after isinstance narrowing (#23725)
LSP server
- Exclude decorators from class/def code folding (#23543)
- Fix handling of non-Python text documents (#23704)
Configuration
- Add all selector to ty.json schema (#23721)
- Fix precedence of all selector in TOML configurations (#23723)
- Make all selector case-sensitive (#23713)
Type checking
- Add invalid-enum-member-annotation lint rule (#23648)
- Add a diagnostic for an unused awaitable (#23650)
- Add a diagnostic if a TypeVar is used to specialize a ParamSpec, or vice versa (#23738)
- Add more type-variable default validation (#23639)
- Add unbound type variable detection in annotations (#23641)
- Apply narrowing to walrus values (#23687)
- Do not union Unknown into unannotated container types (#23718)
- Avoid inferring generics with negative intersections (#23750)
- More precise types for name and value of an enum (#23683)
- Better preserve user-provided union order in inferred specializations (#23715)
- Support narrowing in ternary expressions (#23726)
- Validate bare ParamSpec usage in type annotations, and support stringified ParamSpecs as the first argument to Callable (#23625)
Contributors
- @charliermarsh
- @zsol
- @Gankra
- @MichaReiser
- @AlexWaygood
- @rizzip
- @iksuddle
- @dcreager
- @BurntSushi
- @carljm
- @oconnor663 |
| 0.0.20 | 2 de març del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-03-02.
Bug fixes
- Disallow negative narrowing for isinstance() or issubclass() checks involving type[] types (#23598)
- Fix binary operations between an instance of a NewType of float and an instance of Any/Unknown (#23620)
- Fix bug where ty would think that a Callable with a variadic positional parameter could be a subtype of a Callable with a positional-or-keyword parameter (#23610)
- Fix inference of t.__mro__ if t is an instance of type[Any] (#23632)
- Fix overloaded callable assignability for unary Callable targets (#23277)
- Limit recursion depth when displaying self-referential function types (#23647)
- Ensure that python -m ty works even when ty was installed into an ephemeral virtual environment (#2852)
LSP server
- Add support for the LSP protocol's "type hierarchy" feature (#23566)
Type checking
- Add more ParamSpec validation for P.args and P.kwargs (#23640)
- Ban nested Required/NotRequired, and ban them both outside of TypedDict fields (#23627)
- Detect inconsistent generic base class specializations that appear in the same MRO (#23615)
- Detect invalid uses of @final on non-methods (#23604)
- Add partial support and validation for Unpack when used with tuple types (#23651)
- Recurse into tuples and nested tuples when applying special-cased validation of arguments passed to isinstance() and issubclass() (#23607)
- Reject ellipsis literals in odd places in type/annotation expressions (#23611)
- Reject functions with PEP-695 type parameters that shadow type parameters from enclosing scopes (#23619)
- Reject generic metaclasses parameterized by type variables (#23628)
- Treat dataclass_transform dataclasses as neither frozen nor non-frozen (#23366)
- Validate that type variable defaults don't reference later type parameters or type parameters out of scope (#23623)
Typeshed
- Sync vendored typeshed stubs (#23642). Typeshed diff
Contributors
- @Hugo-Polloli
- @zanieb
- @sharkdp
- @mtshiba
- @carljm
- @charliermarsh
- @sinon
- @BurntSushi
- @oconnor663
- @AlexWaygood
- @zsol
Install ty 0.0.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.20/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.20/ty-installer.ps1 | iex"
Download ty 0.0.20
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
────── |
| 0.0.19 | 26 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-02-26.
Bug fixes
- Fix panic in diagnostic rendering when attempting to render a code frame pointing to leading whitespace (#23458)
- Fix panics and incorrect inference stemming from incorrectly considering overloads in another file as being associated with a function in the file being checked (#21977)
- Fix panic when attempting to narrow the type of a dictionary key that was assigned using a multi-target assignment, e.g. x = y = {"a": 1} (#23523)
- Fix infinite hang on mutually recursive TypeAliasType definitions (#23397)
LSP server
- Fix inlay hints for starred unpacking targets (#23454)
Core type checking
- Fix assignability, subtyping and equivalence checks relating to typing.Generator prior to Python 3.13 (#23386)
- Understand that a scope's control flow terminates after await foo() if foo returns typing.Awaitable[typing.Never] or similar (#23479)
- Implement stricter handling of calls to instances of type[T] types (#23472)
- Support basic type narrowing for case {...}: patterns in match statements (#23462)
- Fix bugs that could manifest in incorrect overload evaluation, false-positive complaints regarding assert_type calls or false-positive redundant-cast diagnostics by reimplementing the equivalence type relation as mutual subtyping of top and bottom materializations (#23428)
- Fix equality and __contains__ narrowing with PEP-695 type aliases (#23545)
- Support _value_ annotations on enum classes (#22228)
Install ty 0.0.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.19/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.19/ty-installer.ps1 | iex"
Download ty 0.0.19
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux |
| 0.0.18 | 20 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-02-20.
Bug fixes
- Support classes dynamically created via type(...) with cyclic bases (#22792)
- Fix incorrect types inferred when unpacking mixed tuples (#23437)
- Fix stack overflow for self-referential TypeOf in annotations (#23407)
- Fix several server panics that could occur when computing semantic tokens for the current file (#23403), #23398, #23401)
LSP server
- Add code folding support (#23393)
- Add warning message when running ty server interactively (#23416)
- Exclude test-related symbols from non-first-party packages in auto-import completions (#23252)
- Fix bug where diagnostics could disappear after opening an external file (#23447)
- Remove spurious destination for Go-To Definition on variables defined in a loop (#23391)
- Use the fully qualified name when "baking" an inlay hint into the source code if the scope already contains a variable with the same name as the unqualified name (#23265)
- Resolve TypeVars in call_signature_details parameter types (#23149)
CLI
- Add --output-format to ty version (#23387)
Configuration
- Add replace-imports-with-any option (#23122)
- Support shellexpand for configuration paths (#23274)
Type checking
- Add a new diagnostic to detect invalid class patterns in match statements (#22939)
- Allow Self in ClassVar type annotations (#23362)
- Consider synthesized methods and ClassVar-qualified declarations when determining whether an abstract method has been overridden in a subclass (#23381)
- Add a diagnostic when combining Final and ClassVar (#23365)
- Fix return type of assert_never (#23389)
- Fix assert_type diagnostic messages (#23342)
- Ban PEP-613 type alias values from containing type-qualifier special forms (#23444)
- Infer LiteralString for f"{literal_str_a} {literal_str_b}" (#23346)
- Infer precise types for bit-shift operations on integer literals (#23301)
- Make [abstract-method-in-final-class] diagnostics less verbose for classes with many abstract methods (#23379)
- Improve diagnostics for abstract @final classes (#23376)
- Only perform literal promotion for implicitly inferred literals (#23107)
- Parenthesize callable types when they appear in the return annotation of other callable types (#23327)
- Consider a call to a generic function returning Never to terminate control flow (#23419)
- Support calls to intersection types (#22469)
- Validate annotated assignments to attributes on self (#23388)
- Treat a bytes-literal type as a subtype of Sequence[<constituent integers in the bytestring>] (#23329)
- Allow a string-literal argument to match against an Iterable parameter in type variable inference. (#23326)
- Support narrowing from a Callable type returning a TypeGuard type (#23280)
Performance
- Consider all code paths as being ambiguously reachable in cases with pathologically large control-flow graphs (#23399)
Typeshed
- Sync vendored typeshed stubs (#23279, Typeshed diff)
Contributors
- @toby-bro
- @Hugo-Polloli
- @MatthewMckee4
- @BurntSushi
- @ibraheemdev
- @knutwannheden
- @Glyphack
- @charliermarsh
- @AlexWaygood
- @abhijeetbodas2001
- @carljm
- @sharkdp
Install ty 0.0.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.18/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.18/ty-installer.ps1 | iex"
Download ty 0.0.18
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zi |
| 0.0.17 | 13 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-02-13.
Bug fixes
- Avoid Literal promotion for constrained TypeVars with Literal bounds (#23209)
- Fix false positives in TypeVar shadowing checks (#23222)
Core type checking
- Support generic protocols (#21902)
- Perform control-flow analysis in loops (#22794)
- Support typing.Self in attribute annotations (#23108)
- Support type narrowing in situations with calls to NoReturn functions (#23109)
- Support type narrowing and reachability analysis based on os.name checks (#23230)
- Detect overrides of Final class variables in subclasses (#23180)
- Fix bound method access on None (#23246)
- Fix method calls on subclasses of Any (#23248)
- Disallow type variables within PEP-695 type variable bounds and constraints (#22982)
- Emit error for attribute access on union where some elements lack the attribute (#23042)
- Emit error for invalid typevar defaults (#23194)
- Improve display of ParamSpecs in some situations (#23211)
LSP server
- Add hover and go-to-declaration support for subscript literals (#22837)
- Assign lower completion ranking to deprecated names in auto import (#23188)
- Improve spans of references to submodules imported in an __init__.py (#21795)
- Include conditional symbols (like datetime.UTC) in auto-import in more cases (#23249)
- Support auto-import for symbols in inlay hints (#22111)
- Include overload declarations in find-references (#23215)
Performance
- Avoid UnionBuilder overhead when creating a new union from the filtered elements of an existing union (#22352)
Other changes
- Allow discovering dependencies in system Python environments (#22994)
- Apply workspace settings to virtual files (#23228)
- Add support for --output-format=junit (#22125)
- Use a smaller diagnostic range for inconsistent-mro diagnostics (#23213)
Contributors
- @carljm
- @BurntSushi
- @charliermarsh
- @Glyphack
- @cetanu
- @AlexWaygood
- @joelostblom
- @Gankra
- @mtshiba
- @MatthewMckee4
- @Hugo-Polloli
- @sharkdp
- @alex
- @dcreager
- @oconnor663
Install ty 0.0.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.17/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.17/ty-installer.ps1 | iex"
Download ty 0.0.17
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼─────── |
| 0.0.16 | 10 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-02-10.
Bug fixes
- Allow stringified argument in PEP-613 alias to Optional (#23200)
- Fix fuzzer panic on slice expression in unclosed comprehension (#23146)
- Fix combinatorial explosion due to fixed-length tuple expansion in overload matching (#23190)
- Respect @no_type_check when combined with other decorators (#23177)
- Fix diagnostic location for an incorrect sub-call to a specialized ParamSpec (#23036)
LSP server
- Assign lower completions ranking to deprecated functions and classes (#23089)
- Change goto-def for class constructors to always go to class definition (#23071)
- Ensure diagnostic mode is consistent across projects inside the LSP server (#23121)
- Don't include the class Foo in autocomplete suggestions when the user is typing out Foo's bases (#23141)
- Fix parameter references across files via keyword args (#23012)
- Fix wrong inlay hints for overloaded function arguments (#23179)
- Support diagnostics in newly created files inside neovim (#23095)
- Exclude already-included classes when providing completion suggestions for class bases (#23085)
CLI
- Add support for TY_OUTPUT_FORMAT environment variable (#23123)
- Fall back to python3 found in $PATH if no environment is found (#22843)
Type checking
- Add inconsistent-mro autofix to move Generic[] to the end of the bases list (#22998)
- Add precise return-type inference for struct.unpack (#22562, #23130)
- Disallow TypeVars within ClassVars (#23184)
- Emit diagnostic on unbound call to abstract @classmethod or @staticmethod (#23182)
- Fix false-positive diagnostics when providing the total= keyword to TypedDict classes that had PEP-695 type parameters (#23114)
- Narrow both left- and right-hand operands where possible (#23084)
- Narrow chained operators (#23093)
- Narrow equality subscripts on either operand (#23104)
- Recognize __dataclass_transform__ to support SQLModel (#23070)
- Relax the attribute narrowing condition to support deeper-nested attribute type narrowing (#22440)
- Support constrained TypeVar compatibility across function boundaries (#23103)
- Support comparison methods (__gt__, etc.) where a parameter is annotated with a Literal type (#23100)
- Support partially specialized type context (#22748)
- Use type context when inferring constructor argument types (#23139)
- Validate TypedDict constructor calls for generic aliases and type[...] targets (#23113)
Performance
- Conservative narrowing places optimization (#22734)
Contributors
- @rbange
- @rayzeller
- @charliermarsh
- @11happy
- @figsoda
- @mtshiba
- @ibraheemdev
- @ngnpope
- @sakgoyal
- @oconnor663
- @ericmarkmartin
- @Hugo-Polloli
- @Glyphack
- @sharkdp
- @carljm
- @BurntSushi
Install ty 0.0.16
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.16/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.16/ty-installer.ps1 | iex"
Download ty 0.0.16
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unkn |
| 0.0.15 | 5 de febrer del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-02-04.
Bug fixes
- Add support for resolving imports of packages installed into Debian/Ubuntu dist-packages directories (#22466)
- Avoid not-iterable false positives when iterating over an instance of an intersection type with only negated elements (#22089)
- Fix support for stringized annotations in very large files (#22913)
- Don't emit Liskov diagnostics for methods with mangled names (#23062)
- Enforce that a Final symbol cannot be reassigned even after a conditional binding (#22986)
- Fix TypedDict construction from existing TypedDict values (#22904)
- Fix Self resolution for classes nested within methods (#22964)
- Fix bidirectional inference with PEP 695 union type aliases (#22988)
- Fix edge-case bugs when narrowing tagged unions in match statements (#22870)
- Fix false-positive diagnostics when iterating over an instance of an intersection that includes a TypeVar of which the upper bound is a union where the union includes a non-iterable type (#22117)
- Fix lookup of __contains__ to respect descriptors (#23056)
- Fix narrowing of nonlocal variables with conditional assignments (#22966)
- Fix several bugs that could affect NewTypes of NewTypes of float (#22997)
- Fix several type narrowing bugs involving PEP-695 type aliases (#22894)
- Fix spurious query cycles in decorated functions with parameter defaults, for improved performance and improved determinism (#23014)
- Fix unary and comparison operators for TypeVars with union bounds (#22925)
- Understand functions as method descriptors even if they are decorated with a decorator annotated as returning a PEP-695 alias to a Callable type (#22902)
- dataclass_transform: Fix visibility of field specifiers when models are nested inside methods (#23069)
LSP server
- Fix hover showing Unknown for bare Final instance attributes (#23003)
- Improve support for goto-type, goto-declaration, hover, and highlighting of string annotations (#22878)
- Include setters and deleters when renaming properties (#22999)
- Show type qualifiers like Final in on-hover hints (#23005)
Configuration
- Add new unused-type-ignore-comment rule (#22790)
- Add a mechanism to ignore/warn/select all rules (#22832)
- Support multiple workspace folders in a single ty LSP server instance (#22953)
- Only add ./src as a search path if ./src/__init__.py(i) does not exist (#22851)
Type checking
- Add a diagnostic detecting if a variable is declared as Final but never has any bindings (#23001)
- Add a diagnostic detecting overridden comparison dunder methods on order=True dataclasses (#22689)
- Add a hint to invalid-argument-type and invalid-assignment diagnostics if a variable is annotated with a type from the numbers module (#22931, #22938)
- Add diagnostic hint on unresolved-reference to suggest using "list" instead of "List" (#22827)
- Add new diagnostic for invalid dataclass field orders (#19825)
- Allow a subclass method with a positional-only parameter to override a superclass method without that parameter if the parameter in the subclass method has a default value (#23037)
- Allow self-referential imports outside the global scope (#22963)
- Ban ... in odd places inside tuple specializations (#22889)
- Ban Required, NotRequired and ReadOnly in parameter annotations (#22888)
- Ban legacy TypeVar bounds or constraints from containing type variables (#22949)
- Ban multiple unpacked variadic tuples in a tuple specialization (#22884)
- Detect generic Callables in the return type of function signatures (#22954)
- Detect invalid isinstance() and issubclass() calls against TypedDict classes (#22887)
- Detect invalid issubclass() calls against Protocol classes with non-method members (#22896)
- Detect invalid attempts to subclass Protocol[] and Generic[] simultaneously (#22948)
- Emit a diagnostic on incorrect applications of the legacy convention for specifying positional-only parameters (#22943)
- Emit an error if a TypeVarTuple is used to subscript Generic or Protocol without being |
| 0.0.14 | 27 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-26.
Bug fixes
- Consider keyword arguments when unpacking a variadic argument (#22796)
- Fix binary operator false-positive for constrained TypeVars (#22782)
- Fix docstring rendering for literal blocks after doctests (#22676)
- Fix false-positive unsupported-operator for "symmetric" TypeVars (#22756)
- Fix panic when overriding a final method using an assignment (#22831)
- Fix unary operator false-positive for constrained TypeVars (#22783)
- Fix generic functions with a generic (ParamSpec) decorator (#22544)
- Fix memo.changed_at assertion panics (#22498)
LSP server
- Look up attributes on metaclasses for Go to Definition (#22758)
- Suppress type inlay hints for leading-underscore assignments (#22855)
Configuration
- Add allowed-unresolved-imports setting (#22800)
Other changes
- Add assert-type-unspellable-subtype diagnostic, for failed assert_type() where the actual type is a subtype of the named type that can't be spelled in a type expression (#22815)
- Add a new empty-body return code for functions with stub bodies that have non-None return annotations (#22846)
- Add diagnostic disambiguation for different type aliases with the same name (#22852)
- Add support for dict literals and dict() calls as default values for parameters with TypedDict types (#22161)
- Add support for subscripts on intersections (#22654)
- Avoid duplicate syntax errors for await outside functions (#22826)
- Emit an error if the same type parameter appears more than once in a Generic[] subscript (#22738)
- Emit diagnostic for unimplemented abstract method on @Final class (#22753)
- Fix GitLab Code Quality output format for empty diagnostics (#22833)
- Fix assignment in decorated method causing Unknown fallback (#22778)
- Fix false negative when using a non-runtime-checkable protocol in a match class pattern (#22836)
- Improve completion rankings for raise-from/except contexts (#22775)
- Improve invalid assignment diagnostics with type context (#22643)
- Improve support for kwarg splats in dictionary literals (#22781)
- Infer TypedDict types with >=1 required key as being always truthy (#22808)
- Point to an overload with an invalid @final decoator when emitting invalid-overload errors for invalid @final decorators (#22812)
- Require both *args and **kwargs when calling a ParamSpec callable (#22820)
- Stricter validation of TypedDict definitions (#22811)
- Support recursive and stringified annotations in functional typing.NamedTuples (#22718)
- Support solving generics involving PEP 695 type aliases (#22678)
- Use a more lenient fallback type for failed namedtuple() and NamedTuple calls (#22765)
- Use type context from augmented assignment dunder calls (#22540)
- Check that starred arguments in function calls are iterable (#22805)
Contributors
- @AlexWaygood
- @maifeeulasad
- @RasmusNygren
- @ntBre
- @Imbuzi
- @dhruvmanila
- @ibraheemdev
- @carljm
- @Hugo-Polloli
- @charliermarsh
- @MichaReiser
- @bxff
- @felixscherz
- @denyszhak
Install ty 0.0.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.14/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.14/ty-installer.ps1 | iex"
Download ty 0.0.14
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼──────────── |
| 0.0.13 | 21 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-21.
Bug fixes
- Fix --force-exclude when 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 an if TYPE_CHECKING block (#22624)
- Allow if type(x) is Y narrowing 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, Enum or Protocol classes decorated with @dataclass (#22672)
- Emit invalid-type-form diagnostics for stringified annotations where the quoted expression is invalid (#22752)
- Infer the implicit type of cls in __new__ methods (#22584)
- Make ModuleType and object attributes available on namespace packages (#22606)
- Make NamedTuple(...) and namedtuple(...) calls stricter (#22601)
- Narrow on bool and byte subscripts (#22684)
- Narrow on negative subscript indexing (#22682)
- Override __file__ to str when 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 typename and field_names by keyword argument to collections.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 of float or complex (#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 | sh
Install 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"
Download ty 0.0.13
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
───────── |
| 0.0.12 | 14 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-14.
Bug fixes
- Avoid panic that could occur when casting an object to a TypedDict or union of TypedDicts (#22509)
- Fix incorrect narrowing for if type(x) == y (#22531)
- Fix stack overflow with recursive type aliases containing tuple types (#22543)
- functools.total_ordering: ensure the signatures of generated methods reflect the signature of the user-provided method (#22496)
- Support dataclass_transform as a function call (#22378)
- Use the top materialization of classes for if type(x) is y narrowing. For example, if type(x) is tuple will cause the type of x to be intersected with tuple[object, ...] rather than tuple[Unknown, ...]. (#22553)
- Avoid emitting Liskov violations with respect to a grandparent class if such violations could not be fixed without introducing Liskov violations with respect to a parent class (#22484)
- Fix interaction between classmethod, contextmanager, and Self (#22407)
- Check contravariant type variable bounds contravariantly in specialization inference (#22488)
- Fix false positive for bounded type parameters with NewType (#22542)
Type checking
- Add support for dynamic type() classes (#22291, #22499, #22537, #22480)
- Add support for functional namedtuple creation (#22327, #22573, #22575, #22574)
- Add a diagnostic for non-decorator uses of final (#22555)
- Add diagnostic to catch generic enums (#22482)
- Add diagnostics for __init_subclass__ argument mismatch (#22185)
- Add diagnostics to validate TypeIs and TypeGuard definitions (#22300)
- Apply type narrowing to walrus targets (#22369)
- Detect invalid @total_ordering applications in non-decorator contexts (#22486)
- Fix @Todo type for starred expressions (#22503)
- Improve disambiguation of types in diagnostics (#22547)
- Include type parameters in the display for generic Callable types (#22435)
- Infer type[Unknown] for calls to type() when overload evaluation is ambiguous (#22569)
- Support assignment to unions of TypedDicts (#22294)
- Use the key and value parameter types as type context for __setitem__ dunder calls (#22148)
- Narrow the right-hand side of ==, !=, is and is not conditions when the left-hand side is not narrowable (#22511)
LSP server
- Fix __file__ type in completions to show str instead of str | None when the inferred type is str (#22510)
- Improve rendering of ReST directives in docstrings (#22512)
Contributors
- @eclbg
- @RasmusNygren
- @carljm
- @drbh
- @AryanBagade
- @bxff
- @ibraheemdev
- @charliermarsh
- @AlexWaygood
Install ty 0.0.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.12/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.12/ty-installer.ps1 | iex"
Download ty 0.0.12
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum |
| 0.0.11 | 9 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-09.
Bug fixes
- Fix super() with TypeVar-annotated self and cls parameter (#22208)
- Only consider fully static pivots when deriving transitive constraints (#22444)
LSP server
- Don't show diagnostics for excluded files (#22455)
- Fix goto definition for relative imports in third-party files (#22457)
- Improve completion ranking based on origin and exact match (#22460)
- Rank top-level module symbols above most other symbols (#22465)
Configuration
- Enable unused-type-ignore-comment by default (#22474)
Performance
- Improve UnionBuilder performance by changing Type::is_subtype_of calls to Type::is_redundant_with (#22337)
- Optimize union building for unions with many enum-literal members (#22363)-
Other changes
- Declare support for Python 3.14 (#2407)
- Remove dark-mode handling from PyPI-uploaded README (#2422)
Contributors
- @dhruvmanila
- @AlexWaygood
- @charliermarsh
- @BurntSushi
- @MichaReiser
- @dcreager
Install ty 0.0.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.11/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.11/ty-installer.ps1 | iex"
Download ty 0.0.11
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
───────────────────── |
| 0.0.10 | 7 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-07.
Bug fixes
- Fix stack overflow due to too small stack size (#22433)
- Fix stale semantic tokens after opening the same document with new content (#22414)
- Fix handling of ParamSpec in overloaded functions (#22416)
- Fix comparisons and arithmetic with NewTypes of float (#22105)
- Fix several issues with unannotated function return types (#22425)
- Fix handling of subclasses in Callables (#22411)
LSP server
- Add support for explicit markdown code fences in docstring rendering (#22373, #22408)
- Offer completions for T when a value has type Unknown | T (#22436)
- Sort keyword argument completions higher (#22297)
Core type checking
- Add support for @total_ordering (#22181, #22183)
- Better simplification of intersections of tuples (#22094)
- Support comparisons between variable-length tuples (#21824)
- Emit diagnostics for method definitions and other invalid statements in TypedDict class bodies (#22351)
- Improve type-narrowing in calls to len() (#22330)
CLI
- Add --add-ignore CLI option (#21696)
Configuration
- include = ["myscript"] will now check myscript even though it doesn't have a Python extension (#22243)
Performance
- Optimize intersections with a single negated element (#22344)
- Optimize negated types (#22402)
Documentation
- Link to Callable __name__ FAQ directly from unresolved-attribute diagnostic (#22437)
Contributors
- @dhruvmanila
- @charliermarsh
- @oconnor663
- @BurntSushi
- @RasmusNygren
- @carljm
- @Gankra
- @MichaReiser
- @AlexWaygood
Install ty 0.0.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.10/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.10/ty-installer.ps1 | iex"
Download ty 0.0.10
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────── |
| 0.0.9 | 5 de gener del 2026 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2026-01-05.
Bug fixes
- Emit a diagnostic if a class decorator is not a callable accepting a type (#22375)
- Fix exhaustiveness inference for unions that include enums (#22290)
Core type checking
- Support typing.TypeGuard (#20974)
- Treat __setattr__ as fallback-only (#22014)
- Don't expand type aliases via type mappings unless necessary. This means that the displayed signature of a bound methods will no longer eagerly expand type aliases into their aliased types (#22241)
- Narrow TypedDict unions with not in (#22349)
- Don't including property in subclasses properties (#22088)
- Narrow tagged unions of TypedDicts in match statements (#22299)
- Teach bidirectional inference about subtyping. This allows x to be inferred as list[int] for x: Iterable[int] = [42] (#21930)
- Support narrowing for tagged unions of tuples where one element of the tuple is a Literal type (#22303)
LSP server
- Add autocomplete suggestions for keyword arguments in class statements (#22110)
- Avoid showing misleading inlay hint for unpacked tuple arguments (#22286)
Other changes
- Sync vendored typeshed stubs (#22302, #22321, #22324). Typeshed diff
Contributors
- @RasmusNygren
- @ericmarkmartin
- @AlexWaygood
- @ibraheemdev
- @charliermarsh
- @felixscherz
- @MatthewMckee4
- @mtshiba
Install ty 0.0.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.9/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.9/ty-installer.ps1 | iex"
Download ty 0.0.9
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────── |
| 0.0.8 | 29 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-29.
Breaking changes
- Rename non-subscriptable rule to not-subscriptable (#22193)
Core type checking
- Promote float and complex when promoting literals (#22215)
- Callable type of a type object is not function-like (#22226)
- Fix and simplify callable type materializations (#22213)
LSP server
- Add option to disable syntax errors (#22217)
- Fix completion in decorators with missing declaration (#22177)
- Better completions context detection when typing in decorator positions (#22224)
- Limit the returned completions to reduce lag (#22240)
Diagnostics
- Improve wording of unsupported-base sub-diagnostic (#22194)
- Preserve the invalid assignment diagnostic message when implicitly shadowing a definition (#22219)
Other changes
- Update docker image to use alpine 3.23 and trixie (#2217)
Contributors
- @RasmusNygren
- @samypr100
- @silamon
- @carljm
- @MichaReiser
- @MatthewMckee4
Install ty 0.0.8
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.8/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.8/ty-installer.ps1 | iex"
Download ty 0.0.8
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
─────────────────────────────────────────────┴────────────── |
| 0.0.7 | 24 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-24.
Bug fixes
- Fix classification of modules in import x as y for semantic syntax highlighting (#22175)
- Fix module resolution on network drives (#22173)
- Render the entire diagnostic message in all output formats (#22164)
Other changes
- Add a dedicated diagnostic for TypedDict deletions (#22123)
- Check __delitem__ instead of __getitem__ for del x[k] (#22121)
- Fix @staticmethod combined with other decorators incorrectly binding self (#22128)
- Fix implementation of Top[Callable[..., object]] (#22145)
- Improve diagnostic when callable is used in a type expression instead of collections.abc.Callable or typing.Callable (#22180)
- Improve diagnostic when a user tries to access a function attribute on a Callable type (#22182)
- Include the specialization of a generic TypedDict as part of its display (#22174)
- Support tuple narrowing based on member checks (#22167)
- Synthesize __delitem__ for TypedDict to allow deleting non-required keys (#22122)
Contributors
- @MichaReiser
- @ntBre
- @AlexWaygood
- @charliermarsh
Install ty 0.0.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.7/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.7/ty-installer.ps1 | iex"
Download ty 0.0.7
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─ |
| 0.0.6 | 23 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-23.
Bug fixes
- FIx panic from unexpanded type aliases in implicit tuple aliases (#22015)
- Support type[T] where T is a type alias to a union of types (#22115)
- Support == narrowing for tuples in unions with disjoint types (#22129)
- Respect debug text interpolation in f-strings (#22151)
- Fix panic from unstable union-type ordering in fixed-point iteration (#22070)
LSP server
- Add ty.configuration and ty.configurationFile options (#22053)
- Add diagnosticMode: off to disable diagnostics while retaining Go To Definition, etc. (#22073)
- Set flag to avoid type[T@f] being inserted when you double-click on the inlay (#22139)
- Use Markdown for completions documentation if the LSP client supports it (#21752)
CLI
- Abort printing diagnostics when pressing Ctrl+C (#22083)
Configuration
- Add respect-type-ignore-comments configuration option (#22137)
- Support custom builtins via __builtins__.pyi (#22021)
Other changes
- Bind self with instance in __get__ (#22155)
- Support type inference between protocol instances (#22120)
- Synthesize a precise _fields attribute for NamedTuples (#22163)
- Synthesize a precise _replace method for NamedTuples (#22153)
- Narrow "tagged unions" of TypedDicts (#22104)
Contributors
- @mtshiba
- @charliermarsh
- @Wizzerinus
- @oconnor663
- @MichaReiser
- @ibraheemdev
- @MatthewMckee4
Install ty 0.0.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.6/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.6/ty-installer.ps1 | iex"
Download ty 0.0.6
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_6 |
| 0.0.5 | 20 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-20.
Bug fixes
- Fix debug-mode server panic when a user typed a class definition by ensuring class arguments are visited in source order for semantic tokens (#22063)
LSP server
- Classify docstrings in semantic tokens during syntax highlighting (#22031)
CLI
- Add --force-exclude option (#22076)
- Only clear output between two successful checks (#22078)
Other changes
- Add support for dict(...) calls in TypedDict contexts (#22113)
- Speedup bidirectional type-checking involving large unions by avoiding narrowing on non-generic calls (#22102)
- Simplify inferred types by avoiding storing multi-inference attempts (#22062, #22103)
- Improve union builder performance (#22048)
- Only prefer declared types in non-covariant positions (#22068)
- Respect intersections in iterations (#21965)
- Sync vendored typeshed stubs (#22091). Typeshed diff
- Understand that the type of X on an enum class will be int if X is defined using enum.nonmember in the class definition (#22025)
Contributors
- @charliermarsh
- @ibraheemdev
- @RasmusNygren
- @Hugo-Polloli
- @carljm
- @Gankra
- @MichaReiser
Install ty 0.0.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.5/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.5/ty-installer.ps1 | iex"
Download ty 0.0.5
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────── |
| 0.0.4 | 19 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-18.
LSP server
- Add support for attribute docstrings (#22036)
- Correctly encode multiline tokens for clients not supporting multiline tokens (#22033)
- Autocompletions: Don't suggest keyword statements when only expressions are valid (#22002)
- Fix goto-declaration on the right-hand side of from module import submodule (#22042)
- Fix some configuration panics in the LSP (#22040)
- Gracefully handle client requests that can't be deserialized (#22051)
Other changes
- Improve performance for large match statements (#22045)
- Disable possibly-missing-imports by default (#22041)
- Implement disjointness for TypedDicts, significantly speeding up checking of code that uses pydantic (#22044)
Contributors
- @oconnor663
- @MichaReiser
- @Gankra
- @RasmusNygren
- @charliermarsh
Install ty 0.0.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.4/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.4/ty-installer.ps1 | iex"
Download ty 0.0.4
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
─────────────────────────────────────────────┴────────────────────────────┴───────────── |
| 0.0.3 | 18 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-17.
LSP server
- Improve rendering of signatures in hovers (#22007)
Core type checking
- Apply narrowing to len calls based on argument size (#22026)
- Don't add identical lower/upper bounds multiple times when inferring specializations (#22030)
- Improve unsupported-base and invalid-super-argument diagnostics to avoid extremely long lines when encountering verbose types (#22022)
- Improve disambiguation of types in many cases (#22019)
- Respect deferred values in keyword arguments etc. for .pyi files (#22029)
- Handle field specifier functions that accept **kwargs and recognize metaclass-based transformers as instances of DataclassInstance (#22018)
Contributors
- @charliermarsh
- @sharkdp
- @Gankra
- @zanieb
- @AlexWaygood
- @dcreager
Install ty 0.0.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.3/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.3/ty-installer.ps1 | iex"
Download ty 0.0.3
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
─────────────────────────────────────────────┴────────────────────────────┴───────────── |
| 0.0.2 | 16 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-16.
LSP server
- Improve display of completions to show actual insertion text (#21988)
- Improve highlighting of special type syntax in hovers (#22005)
- Improve syntax highlighting of constants (#22006)
Core type checking
- Infer precise types for isinstance(…) calls involving type variables (#21999)
- Infer TypeVar specializations for Callable types (#21551)
- Propagate classmethod-ness through decorators returning Callables (#21958)
- Improve rendering of default values for function args (#22010)
- Don't use implicit superclass annotation when converting a class constructor into a Callable (#22011)
Other
- Type checking performance improvement (#22000)
Contributors
- @sharkdp
- @carljm
- @Gankra
- @BurntSushi
- @dcreager
- @MichaReiser |
| 0.0.1-alpha.35 | 16 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-16.
Bug fixes
- Fix panic for stringified comprehensions and boolean expressions in type expression (#21967)
- Avoid stack overflow when determining inferable typevars (#21971)
- Fix false-positive invalid-method-override diagnostic on method that uses Callable with a ParamSpec (#21934)
- Disallow explicit specialization of type variables themselves (#21938)
- Fix hover type on named expression ("walrus expression") targets (#21952)
LSP server
- Add "qualify ..." code fix for undefined references (#21968)
- Add new goto-definition targets on inlay hints (#21950)
- Remove invalid statement-keyword completions in for-statements (#21979)
Core type checking
- Add support for __qualname__ and other implicit class attributes (#21966)
- Emit a diagnostic when a frozen dataclass inherits a non-frozen dataclass and vice versa (#21962)
- Emit a diagnostic when a type variable with a default is followed by one without a default (#21787)
- Improve diagnostics for unsupported binary operations and unsupported augmented assignments (#21947)
- Improve check enforcing that an overloaded function must have an implementation (#21978)
- Use unqualified names for displays of TypeAliasTypes and unbound ParamSpecs/TypeVars (#21960)
Performance
- Speed up ty on Linux by using jemalloc (#21975)
Contributors
- @11happy
- @dhruvmanila
- @AlexWaygood
- @mtshiba
- @MichaReiser
- @Gankra
- @silamon
- @dcreager
- @charliermarsh
- @RasmusNygren
- @carljm
Install ty 0.0.1-alpha.35
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.35/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.35/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.35
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty- |
| 0.0.1-alpha.34 | 12 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-12.
Bug fixes
- Improve solving of a type variable with an upper bound when that type variable appears as one element in a union type (#21893)
- Accurately emulate runtime semantics for kw_only=True dataclasses such that only fields declared in the immediate class body are understood as being keyword-only (#21820)
- Avoid inferring types for invalid binary expressions in string annotations (#21911)
- Fix logic used to determine whether two @final instance types are disjoint (#21769)
- Fix logic used to determine whether two @final type[] types are disjoint (#21770)
- Fix false-positive diagnostics that could arise when analysing cyclic types (#21910), (#21909)
LSP server
- Fix outdated version in publish diagnostics after didChange (#21943)
- Fix workspace symbols to return members too (#21926)
- Adjust scope completions to use all reachable symbols (#21872)
- Classify cls as class parameter for semantic highlighting (#21944)
- Don't show on-hover tooltips for expressions with no inferred type (#21924)
- Ignore __all__ for document and workspace symbol requests (#21928)
- Recognize __all__ += submodule.__all__ in auto-import (#21918)
- Stabilize rename (#21940)
Other changes
- Support checking files without extensions (#21867)
- Improve performance and semantics by deferring inference of all parameter and return-type annotations (#21906)
- Improve resolution of absolute imports in tests (#21817)
- Infer the implicit type of the cls parameter in @classmethod method bodies (#21685)
- Support the implicit type of the cls parameter in signatures of @classmethod methods (#21771)
- Uniformly use "not supported" in diagnostics (#21916)
- Implement the equivalence relation for TypedDicts (#21784)
- Ensure that the type of the class object C is always considered assignable to type[C[Unknown]] if C is a generic class (#21883)
- Improve bad specialization results and error messages (#21840)
- Support NewTypes of float and complex (#21886)
Contributors
- @charliermarsh
- @oconnor663
- @MichaReiser
- @BurntSushi
- @lucach
- @ibraheemdev
- @mtshiba
- @dcreager
- @sharkdp
- @carljm
- @Gankra
Install ty 0.0.1-alpha.34
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.34/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.34/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.34
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────── |
| 0.0.1-alpha.33 | 9 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-09.
Bug fixes
- Fix assignability problem between tuple[Any, ...] and tuple[int, *tuple[int, ...]] (#21803)
- Avoid diagnostic when typing_extensions.ParamSpec uses a default parameter (#21839)
- Avoid crash for invalid Annotated subscript (#21837)
- Avoid crash for invalid Final subscript (#21828)
- Fix overload filtering to prefer more precise match when *args: Any is involved (#21859)
- Handle various invalid explicit specializations for ParamSpec (#21821)
- Fix stack overflow with recursive generic protocols (depth limit) (#21858)
LSP server
- Add autocomplete suggestions for parameters in function calls (#21796)
- Don't create a related diagnostic for the primary annotation of sub-diagnostics (#21845)
- Stabilize auto-import (#21851)
- Suppress inlay hints when assigning a trivial initializer call (#21848)
- Use concise message for LSP clients not supporting related diagnostic information (#21850)
- Fix add-import action for reveal_type (#21668)
Core type checking
- Infer type variables within generic unions (#21862)
- Type inference for @asynccontextmanager (#21876)
- Make Python-version subdiagnostics less verbose (#21849)
Contributors
- @BurntSushi
- @dhruvmanila
- @AlexWaygood
- @carljm
- @Gankra
- @charliermarsh
- @RasmusNygren
- @sharkdp
- @MichaReiser
Install ty 0.0.1-alpha.33
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.33/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.33/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.33
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown- |
| 0.0.1-alpha.32 | 5 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-05.
LSP server
- Provide auto-import completion suggestions for modules in more situations (#21799)
- Always register the ty server as a rename provider if the LSP client doesn't support dynamic registration (#21789)
- Support auto-import of re-exported symbols in completion suggestions (#21779)
- Support renaming import aliases (#21792)
Core type checking
- Support ParamSpec (#21445)
- Improve the accuracy of the inferred Callable supertype of generic classes (#21798)
- Increase the limit on the number of elements in a non-recursively defined literal union (#21683)
- Fix panics on mutually recursive generic protocols by normalizing the bounds/constraints of cyclic type variables (#21800)
Other changes
- Minor improvements to assert_type diagnostics (#21811)
- Fix a panic in recursive + generic type aliases (#21718)
- Fix a panic when instantiating a type variable with invalid constraints (#21663)
Contributors
- @BurntSushi
- @dhruvmanila
- @MichaReiser
- @mtshiba
- @dcreager
- @carljm
- @AlexWaygood
Install ty 0.0.1-alpha.32
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.32/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.32/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.32
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼─────────── |
| 0.0.1-alpha.31 | 4 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-04.
Bug fixes
- Fix incorrect possibly-missing-attribute diagnostics for asyncio imports on Python 3.14 (#21776)
- Fix panic for recursive type aliases (#21778)
Core type checking
- Try ancestor pyproject.toml directories as search-paths if module resolution fails (#21745)
- Sync vendored typeshed stubs (#21715) Typeshed diff
LSP server
- Don't send publish diagnostics for clients supporting pull diagnostics (#21772)
- Fix crash when hovering over string annotations with unknown symbols (#21782)
Diagnostics
- Add subdiagnostic hint if the user wrote X = Any rather than X: Any (#21777)
- Improve the display of various special-form types (#21775)
Contributors
- @sharkdp
- @AlexWaygood
- @MichaReiser
- @Gankra
Install ty 0.0.1-alpha.31
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.31/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.31/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.31
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
─────────────────────────────────────────────┴────────────────────────────┴───────────── |
| 0.0.1-alpha.30 | 3 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-12-03.
Bug fixes
- Fix exhaustiveness checking for match statements over unions of generic instance types (#21726)
- Don't introduce invalid syntax when autofixing override-of-final-method (#21699)
- Suppress false positives when dataclasses.dataclass(...)(cls) is called imperatively (#21729)
- Fix false positives for class F(Generic[*Ts]): ... (#21723)
- Don't confuse multiple occurrences of typing.Self when binding bound methods (#21754)
- Fix subtyping between type[T] and a union type, where T is a type variable in scope (#21740)
- Fix subtyping between type[T] and U, where T is a type variable in scope and U is a type variable not in scope (#21766)
- Fix false positives for type[tuple[...]] (#21652)
Memory usage improvements
- Significantly reduce memory usage (especially when ty is used as an LSP server) by enabling least-recently-used (LRU) cache eviction for module ASTs (#21749)
LSP server
- Add code action to ignore diagnostic on the current line (#21595)
- Exclude typing_extensions from autocomplete suggestions unless it's really available (#21731)
- Fix auto-import code action to handle pre-existing imports (#21733)
- Fix "find all references" for types defined in stub files (#21732)
- Fix "find all references" for symbols defined via aliased imports (#21736)
Improvements to handling of type aliases
- Default-specialize generic type aliases when they appear unspecialized in type expressions (#21765)
- Infer a type alias as being a generic type alias if it includes a type variable in its definition, even in cases where the value subscripted with the type variable is inferred as having a dynamic type such as Any or Unknown (#21730)
New NamedTuple diagnostics
- Detect NamedTuple classes that have field names starting with underscores, which is banned at runtime (#21697)
- Add a diagnostic detecting overrides of prohibited NamedTuple attributes (#21717)
- Detect illegal uses of super() in methods of NamedTuple classes (#21700)
Improvements to existing diagnostics
- Improve diagnostics for unsupported comparison operations (#21737)
- For invalid-type-arguments diagnostics, show the user where the type variable was defined (#21727)
- Extend invalid-explicit-override to also cover properties decorated with @override that do not override anything (#21756)
- Improve @override, @final and Liskov checks in cases where there are multiple reachable definitions (#21767)
Contributors
- @MichaReiser
- @charliermarsh
- @dcreager
- @carljm
- @AlexWaygood
- @BurntSushi
- @ibraheemdev
- @woodruffw
- @sharkdp
Install ty 0.0.1-alpha.30
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.30/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.30/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.30
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────── |
| 0.0.1-alpha.29 | 28 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-11-28.
Bug Fix
- Fix multiple panics due to recursive type definitions (#20566)
Type inference
- Support type[T] where T is a type variable (#21650)
- More precise inference for a failed specialization of a generic type (#21651)
- Detect invalid overrides of methods that are marked as typing.final (#21646)
- Fix subtyping of type[Any] / type[T] and protocols (#21678)
- Added generics support for implicit and explicit (typing.TypeAlias) type aliases (#21553)
LSP server
- Add import ... code action for unresolved references (#21629)
- Include all members on type in autocompletion suggestions for type[] types (#21670)
- Mark comprehension targets as definitions in semantic highlighting (#21636)
- Add IDE autofixes for two "Did you mean...?" suggestions (#21667)
- Prettier rendering of code:: lang in docstrings (#21665)
- Support go-to for patterns and typevars (#21671)
Diagnostics
- Add subdiagnostic hint if a variable with type Never is used in a type expression (#21660)
- Improve diagnostic messages for invalid type arguments during explicit specialization (#21635)
Contributors
- @lucach
- @carljm
- @ibraheemdev
- @Gankra
- @AlexWaygood
- @mtshiba
- @oconnor663
- @sharkdp
Install ty 0.0.1-alpha.29
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.29/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.29/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.29
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼─────── |
| 0.0.1-alpha.28 | 26 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-11-25.
Bug fixes
- Fix panic for unclosed string literal in type annotation position (#21592)
LSP server
- Improve go-to-definition and add go-to-definition for inlay hints
(#21545,
#21546,
#21544,
#21616,
#21548)
- Implement go-to-type for inlay type hints (#21533)
- Add "remove unused ignore comment" code action (#21582)
- Don't suggest completions that aren't subclasses of BaseException after raise (#21571)
- Implement double click to insert inlay hint (#21600)
- Fix edge cases for autocomplete suppressions in variable bindings (#21576)
- Implement docstring rendering to markdown (#21550)
- Support string annotations (#21577)
- Improve import detection for completions and support from ...<CURSOR> completions (#21547)
- Improve handling of hover/goto on imports (#21572)
- Don't allow edits of some more invalid syntax types in inlay hints (#21621)
- Resolve applicable overloads for hover on an overloaded function call (#21417)
- Consistently add the DEFINITION modifier when computing semantic tokens (#21521)
- Suppress autocomplete suggestions during variable binding (#21549)
CLI
- Exit with code 2 if there's any IO error (#21508)
Other changes
- Add hint about resolved Python version when a user attempts to import a member added on a newer version (#21615)
- Attach subdiagnostics to unresolved-import errors for relative imports as well as absolute imports (#21554)
- Avoid expression re-inference for diagnostics (#21267)
- Check method definitions on subclasses for Liskov violations (#21436)
- Eagerly evaluate types.UnionType elements as type expressions (#21531)
- Extend Liskov checks to also cover classmethods and staticmethods (#21598)
- Fix rendering of unused suppression diagnostic (#21580)
- Implement typing.override (#21627)
- Improve concise diagnostics for invalid exceptions when a user catches a tuple of objects (#21578)
- Improve debug messages when imports fail (#21555)
- Improve diagnostics when NotImplemented is called (#21523)
- Improve diagnostics when a submodule is not available as an attribute on a module-literal type (#21561)
- Improve several "Did you mean?" suggestions (#21597)
- Narrow type context during literal promotion in generic class constructors (#21574)
- Retain the function-like-ness of Callable types when binding self (#21614)
- Substitute for typing.Self when checking protocol members (#21569)
- Switch the error code from unresolved-attribute to possibly-missing-attribute for submodules that may not be available (#21618)
- Implement TypedDict structural assignment (#21467)
- Make implicit submodule imports re-exported (#21573)
- Support PEP 613 typing.TypeAlias type aliases (#21394)
- Support generic aliases in type[...], like type[C[int]] (#21552)
- Tighten up handling of subscripts in type expressions (#21503)
Contributors
- @Gankra
- @MatthewMckee4
- @AlexWaygood
- @RasmusNygren
- @dcreager
- @BurntSushi
- @carljm
- @MichaReiser
- @sharkdp
- @oconnor663
- @lucach
- @ibraheemdev
Install ty 0.0.1-alpha.28
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.28/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.28/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.28
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼── |
| 0.0.1-alpha.27 | 18 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-11-18.
Bug fixes
- Fix panic for cyclic star imports (#21428)
- Fix crashes when using a homebrew Python install (#21405)
- Fix incorrect inference of enum.auto() for enums with non-int mixins, and imprecise inference of enum.auto() for single-member enums (#20541)
- Fix global symbol lookup from eagerly executed scopes such as comprehensions and classes (#21317)
- Fix false positive for instance attributes that are declared as Final in the class body but have their value assigned in the class's __init__ method (#21158)
- Use the return type of __get__ for descriptor lookups even when __get__ is called with incorrect arguments (#21424)
- Consider parameters being declared global a syntax error (#21312)
Type inference
- Support typing.NewType (#21157)
- Support Callable in implicit type aliases (#21496)
- Support typing.Union in implicit type aliases (#21363)
- Precise inference for generator expressions (#21437)
- Support storing attributes in comprehension scopes (#20856)
- Support isinstance() and issubclass() narrowing when the second argument is a typing.py stdlib alias (#21391)
- Support type[…] and Type[…] in implicit type aliases (#21421)
- Support attribute-expression TYPE_CHECKING conditionals (#21449)
- Support class-arguments for dataclass transformers (#21457)
- Support legacy typing special forms in implicit type aliases (#21433)
- Support stringified annotations in value-position Annotated instances (#21447)
- Support all parameters of dataclass transforms (#21474)
- Support __hash__ semantics and unsafe_hash for dataclasses (#21470)
- Improve handling of version-specific features of dataclasses (#21453)
- Correctly infer the specialization of a non-invariant PEP-695 generic class that has an annotated self parameter in its __init__ method (#21325)
- Improve use of type context when inferring the result of a generic constructor call (#20933, #21442)
- Improve use of type context when inferring the result of a generic call expression (#21210)
- Improve heuristics used to decide when it is appropriate to "promote" a Literal type such as Literal[42] to its instance supertype (in this case, int) when solving type variables (#21439)
- Improve use of type context to infer conditional expressions (#21443)
- Make __getattr__ available for ModuleType instances (#21450)
- Introduce implicit local variables for from imports of submodules in __init__.py(i) (#21173)
- Make implicit submodule locals only occur in global scope of an __init__.py(i) (#21370)
- Make implicit submodule locals also occur for absolute from imports in __init__.py(i) files (#21372)
- Consider from thispackage import y a re-export of y in __init__.pyi (#21387)
- Allow PEP-604 unions in stubs and TYPE_CHECKING blocks prior to 3.10 (#21379)
- Ensure annotation/type expressions in stub files are always deferred (#21401, #21456)
- Silence false-positive diagnostics when using typing.Dict or typing.Callable as the second argument to isinstance() (#21386)
- Sync vendored typeshed stubs (#21466). Typeshed diff
LSP server
- Support for notebooks in VS Code (#21175)
- Fix goto-definition for float and complex in type annotation positions (#21388)
- Support goto-definition on call argument inlay hints (#20349)
- Add more keywords to scope-based completions (#21383)
- Add synthetic members to completions on dataclasses (#21446)
- Only suggest the import keyword in autocompletions for from <name> <CURSOR> statements (#21291)
- Suppress completion suggestions following as tokens (#21460)
- Suppress invalid suggestions in import statements (#21484)
- Suppress redundant inlay hints for function args (#21365)
- Suppress some trivial expression inlay hints (#21367)
- Suppress inlay hints for +1 and -1 (#21368)
- Improve semantic token classification for names (#21399)
- Classify parameter declarations as definitions when computing semantic tokens (#21420)
Diagnostics
- Better invalid-assignment diagnostics (#21476)
- Better concise diagnos |
| 0.0.1-alpha.26 | 10 de novembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-11-10.
Bug fixes
- Language server: For semantic tokens, fix range filtering for tokens starting at the end of the requested range (#21193)
- Fix panic due to simplifying Divergent types out of intersections types (#21253)
- Fix merging of --exclude CLI flag and src.exclude config-file setting (#21341)
Type inference
- Infer type of self for decorated methods and properties (#21123)
- Add support for properties that return Self (#21335)
- Understand legacy and PEP 695 ParamSpec (#21139)
- Type inference for comprehensions (#20962)
- Reachability and narrowing for enum methods (#21130)
- Implicit type aliases: Support for PEP 604 unions, Literals, Optional, and Annotated (#21195, #21296, #21321)
- dict is not assignable to TypedDict (#21238)
- Allow values of type None in type expressions (#21263)
- Add narrowing for isinstance() and issubclass() checks that use PEP-604 unions (#21334)
- Do not promote Literal types when solving type variables in contravariant positions (#21164, astral-sh/ruff#21171))
- Fix lookup of __new__ methods on instances (#21147)
- Fix narrowing of generic classes in class patterns for match statements (#21150)
- Improve understanding of disjointness for @final classes (#21167)
- Fix the inferred signature of the synthesized __init__ method of a non-dataclass inheriting from a generic dataclass (#21159)
- Improve exhaustiveness analysis for type variables with bounds or constraints (#21172)
- Prefer exact matches when solving constrained type variables (#21165)
- Simplify unions containing multiple type variables during inference (#21275)
- Use the declared attribute type when inferring union attribute assignments (#21170)
- Sync vendored typeshed stubs (#21178). Typeshed diff
- Use declared attribute types as type context when solving type variables (#21143)
- Don't union in the inferred type of a parameter's default value when inferring the type of an annotated parameter (#21208)
- Support subscripting typing.Literal with a type alias (#21207)
LSP server
- Don't provide completions when in a class or function definition (#21146)
- For autocompletions, favor symbols defined in the current file over auto-imported symbols (#21194) and builtin symbols (#21285)
Diagnostics
- Add diagnostics for isinstance() and issubclass() calls that use invalid PEP-604 unions for their second argument (#21343)
- Don't assume in diagnostic messages that a TypedDict key error is about subscript access (#21166)
Other changes
- Consistently wrap tokens in parser diagnostics in backticks instead of 'quotes' (#21163)
- Discover the site-packages directory from the environment that ty is installed in (#21286), improving the ergonomics of uvx ty check
- Support implicit imports of submodules in __init__.pyi (#20855)
- Use "cannot" consistently over "can not" in diagnostics (#21255)
- Resolve from foo import bar to the foo.bar submodule rather than using the __getattr__ function in foo/__init__.py (in situations where they both exist)(#21260)
Contributors
- @MatthewMckee4
- @dhruvmanila
- @sharkdp
- @Gankra
- @saada
- @zanieb
- @MichaReiser
- @ibraheemdev
- @AlexWaygood
- @lucach
- @mtshiba
- @carljm
Install ty 0.0.1-alpha.26
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.26/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.26/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.26
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────── |
| 0.0.1-alpha.25 | 29 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-10-29.
Bug fixes
- Fix bug where ty would think all types had an __mro__ attribute (#20995)
- Fix rare panic with highly cyclic TypeVar definitions (#21059)
- Fix infinite recursion with generic type aliases (#20969)
- Add missing newline before first diagnostic in CLI output (#21058)
- Make the ty server's auto-import feature skip symbols in the current module (#21100)
- Don't provide goto-definition for definitions which are not reexported in builtins (#21127)
- Avoid duplicate diagnostics during multi-inference of standalone expressions (#21056)
Type inference and diagnostics
- Use constructor parameter types as context to inform solving type variables (#21054)
- Consider __len__ when determining the truthiness of an instance of a tuple class or a @final class (#21049)
- Delegate truthiness inference of an enum Literal type to its enum-instance supertype (#21060)
- Improve invalid-argument-type diagnostics where a union type was provided (#21044)
LSP server
- Suggest type_check_only items last in completions (#20910)
- Render import <...> in completions when "label details" isn't supported (#21109)
- Update workspace diagnostic progress every 50ms (#21019)
CLI
- Add --no-progress option to suppress the rendering of a progress bar (#21063)
Contributors
- @ibraheemdev
- @MatthewMckee4
- @BurntSushi
- @mtshiba
- @AlexWaygood
- @MichaReiser
- @decorator-factory
Install ty 0.0.1-alpha.25
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.25/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.25/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.25
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────── |
| 0.0.1-alpha.24 | 23 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-10-23.
Breaking changes
- Rename unknown-rule lint to ignore-comment-unknown-rule (#20948)
Type inference and diagnostics
- Infer a type of Self for unannotated self parameters in methods (#20922)
- Prefer the declared type over the inferred type for invariant collection literals (#20927)
- Use declared variable types as bidirectional type context for solving type variables (#20796)
- Support dataclass_transform for base class models (#20783)
- Support dataclass-transform field_specifiers (#20888)
- dataclass_transform support for fields with an alias (#20961)
- Add support for legacy namespace packages (#20897)
- Add suggestion to "unknown rule" diagnostics (#20948)
- Improve error messages for "unresolved attribute" diagnostics (#20963)
- Avoid unnecessarily widening generic specializations (#20875)
- Truncate Literal type display in some situations (#20928)
Bug fixes
- Fix panic involving cyclic TypeVar default (#20967)
- Fix panic involving ever-growing default types (#20991)
- Fix panic involving infinitely expanding implicit attribute types (#20988)
- Fix autocomplete suggestions when the cursor is at the end of a file (#20993)
- Fix inconsistent highlighting of self (#20986)
- Fix out-of-order semantic token for function with regular argument after kwargs (#21013)
- Fix panic on recursive class definitions in a stub that use constrained type variables (#20955)
- Fix panic when attempting to validate the members of a protocol that inherits from a protocol in another module (#20956)
- Fix rare hang relating to multithreading (#21038)
- Fix non-deterministic overload function inference (#20966)
- Fix auto-import edits made by autocompletions for files with an existing from __future__ import (#20987)
LSP server
- Support goto-definition for binary and unary operators (#21001)
- Support goto-definition on vendored typeshed stubs (#21020)
- Provide completions on TypeVars (#20943)
- Display variance when hovering over type variables (#20900)
- Avoid sending an unnecessary "clear diagnostics" message for clients supporting pull diagnostics. (#20989)
Other changes
- Report continue and break statements outside loops as syntax errors (#20944)
Contributors
- @TaKO8Ki
- @sharkdp
- @InvalidPathException
- @AlexWaygood
- @mtshiba
- @ibraheemdev
- @Gankra
- @MichaReiser
Install ty 0.0.1-alpha.24
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.24/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.24/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.24
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux |
| 0.0.1-alpha.23 | 16 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-10-16.
Bug fixes
- Fix handling of dataclass field()s without default values (#20914)
- Fix false-positive diagnostics on super() calls (#20814, #20843)
- Fix match pattern value narrowing to use equality semantics (#20882)
- Fix "missing root" panic when handling completion requests (#20917)
- Fix overwriting of declared base class attributes through undeclared subclass members (#20764)
- Fix runaway execution time for mutually referential instance attributes (#20645)
CLI
- For unresolved-import diagnostics, limit the shown import paths to at most five, unless in verbose mode (#20912)
- Write files that are slow to type check to log output (#20836)
- Remove "pre-release software" warning (#20817)
LSP server
- Improve ranking of autocomplete suggestions (#20807)
Type inference and diagnostics
- Use return type annotations as context for bidirectional type inference (#20528)
- Use bidirectional type context for TypedDict construction (#20806)
- Add support for unpacking of heterogeneous tuples in unions (#20377)
- Add a new diagnostic for generic classes that reference typevars from an enclosing scope (#20822)
- Add hint when accessing standard library module attributes that are not available on the configured Python version (#20909)
- Treat functions, methods, and dynamic types as function-like Callables (#20842)
- Treat Callables as bound-method descriptors in special cases (#20802)
- Treat Callable dunder members as bound method descriptors (#20860)
- Sync vendored typeshed stubs (#20876). Typeshed diff
Performance improvements
- Improve performance by caching union simplification type relations (#20477)
Contributors
- @mtshiba
- @AlexWaygood
- @ericmarkmartin
- @carljm
- @ntBre
- @sharkdp
- @BurntSushi
- @Gankra
- @MichaReiser
- @dcreager
Install ty 0.0.1-alpha.23
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.23/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.23/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.23
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼── |
| 0.0.1-alpha.22 | 10 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Released on 2025-10-10.
Bug fixes
- Enforce that typing_extensions must come from a stdlib search path. This fixes a panic that could occur with a confusing backtrace if the extra-paths setting was incorrectly used to point to a virtual environment (#20715)
- Fix server panic when opening a project located at / in the file system (#20684)
- Fix panics when using --output-format=gitlab in CI environments (#20550)
- Fix stack overflows that could occur when attempting to determine if a recursive NamedTuple type was disjoint from another type (#20538)
- Fix panics in type inference when legacy TypeVars had bounds, constraints, or defaults that cyclically referred back to the TypeVar definition (directly or indirectly) (#20598)
- Fix situations where a panic during resolution of type-checker query cycles would manifest in a hang (#20577)
- When analyzing a .py file, do not error if there's also a .pyi for that module (#20461)
- Recognise that the runtime object typing.Protocol is an instance of _ProtocolMeta (#20488)
- Fix logic that attempted to determine whether a user had explicitly activated a Conda environment, which has implications for the search paths ty uses for module resolution (#20675)
- Fix false negatives when iterables with the wrong type are unpacked into a function with a *args variadic parameter (#20511)
Support for Python 3.14
- Use 3.14 as the default version (#20725, #20759, #20760)
- Annotations are deferred by default for 3.14+ (#20799)
- Fix false positives when accessing __annotate__ (Py3.14+) or __warningregistry__ as a module global (#20154)
Improvements to TypeVar solving and inference of generic types
- Improve solving of a type variable T if it appears in a union with non-TypeVars (T | None, T | str | None, etc.) (#20749)
- More precise type inference for dictionary literals (#20523)
- When solving type variables, use type context to inform whether Literal types should be promoted to instance types (#20776)
- Use annotated parameters as type context when solving type variables (#20635)
- Correctly infer the return type of method calls when the method is annotated as returning Self (#20517, #20754)
- Use type context for inference of generic function calls (#20476)
- Use C[T] instead of C[Unknown] for the upper bound of Self (#20479)
Improvements to assignability, subtyping, and union simplification
- Fix overly strict assignability implementation for intersections with negated gradual elements (#20773)
- Ensure that C[Any] is understood as a subtype of C[object] if C is a covariant generic class (#20592)
- Ensure that ~T is never considered to be assignable to T where T is a type variable (#20606)
- Improve assignability/subtyping between two protocol types (#20368)
- Simplify Any | (Any & T) to Any (#20593)
- Optimise and generalise union/intersection simplification (#20602)
- Make protocol satisfiability checks more principled when a protocol has a method member that is generic over type variables scoped to the function (#20568)
- Fix subtyping of invariant generics specialized with Any, ensuring that (for example) list[Any] is not considered a subtype of list[Any] (#20650)
Server
- Add LSP debug information command (#20379)
- Add support for inlay hints on attribute assignment (#20485)
Improvements to diagnostics
- Improve diagnostics when a positional-only parameter is passed using a keyword argument (#20495)
- Improve disambiguations of class names in diagnostics (#20603, #20756)
- Improve diagnostics for bad @overload definitions (#20745)
- Truncate type display for long unions in some situations (#20730)
- Rename "possibly unbound" diagnostics to "possibly missing" (#20492)
Improvements to enum support
- Allow multiple aliases to point to the same member (#20669)
- implement auto() for StrEnum (#20524)
Improvements to ty's @overload implementation
- Support single-starred argument for overload call (#20223)
- Filter overloads using variadic parameters (#20547)
Other typing semanti |
| 0.0.1-alpha.21 | 19 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Fix inference of constructor calls to generic classes that have explicitly annotated self parameters in their __init__ methods (#20325)
- Fix a stack overflow when computing completions for recursive types (#20354)
- Fix panic in BoundMethodType::into_callable_type() (#20369)
- Fix stack overflows in binary comparison inference (#20446)
- Fix many "too many cycle iterations" panics concerning recursive type aliases and/or recursive generics (#20359)
- Fix stack overflow involving subtype checks for recursive type aliases (#20259)
- Fix panic when inferring the type of an infinitely-nested-tuple implicit instance attribute (#20333)
Server
- Add autocomplete suggestions for unimported symbols (#20207, #20439)
- Include generated NamedTuple methods such as _make, _asdict and _replace in autocomplete suggestions (#20356)
Configuration
- Automatically add python/ to environment.root if a python/ folder exists in the root of a repository (#20263)
CLI
- Add GitHub output format (#20358)
- Add GitLab output format (#20155)
Typing semantics and features
- Add support for generic PEP-695 type aliases (#20219)
- Allow annotation expressions to be ast::Attribute nodes (#20413)
- Allow protocols to participate in nominal subtyping as well as structural subtyping (#20314)
- Attribute access on top/bottom materializations (#20221)
- Bind Self type variables to the method, not the class (#20366)
- Ensure various special-cased bound methods are understood as assignable to Callable (#20330)
- Ensure various special-cased builtin functions are understood as assignable to Callable (#20331)
- Fall back to object for attribute access on synthesized protocols (#20286)
- Fix signature of NamedTupleLike._make (#20302)
- Fix subtyping/assignability of function- and class-literal types to callback protocols (#20363)
- Implement the legacy PEP-484 convention for indicating positional-only parameters (#20248)
- Infer more precise types for collection literals (#20360)
- Make TypeIs invariant in its type argument (#20428)
- Narrow specialized generics using isinstance() (#20256)
- Proper assignability/subtyping checks for protocols with method members (#20165)
- Reduce false positives for ParamSpecs and TypeVarTuples (#20239)
- Overload evaluation: retry parameter matching for argument type expansion (#20153)
- Simplify unions of enum literals and subtypes thereof (#20324)
- Support "legacy" typing.Self in combination with PEP-695 generic contexts (#20304)
- Treat Hashable, and similar protocols, equivalently to object for subtyping/assignability (#20284)
- Treat __new__ as a static method (#20212)
- TypedDict: Add support for typing.ReadOnly (#20241)
- Detect syntax errors stemming from yield from expressions inside async functions (#20051)
- "foo".startswith is not an instance of types.MethodWrapperType (#20317)
- Eliminate definitely-impossible types from union in equality narrowing (#20164)
- Infer more precise types for the name and value properties on enum members (#20311)
- Initial support for slots=True in dataclasses (#20278)
- Improve type narrowing in situations involving nested functions (#19932)
- Support type aliases in binary comparison inference (#20445)
- Sync vendored typeshed stubs (#20394). Typeshed diff
Diagnostics
- Improve specialization-error diagnostics (#20326)
Contributors
- @thejchap
- @AlexWaygood
- @mtshiba
- @JelleZijlstra
- @ibraheemdev
- @TaKO8Ki
- @Glyphack
- @ericmarkmartin
- @Renkai
- @sharkdp
- @11happy
- @BurntSushi
- @carljm
- @dhruvmanila
- @github-actions
- @ntBre
Install ty 0.0.1-alpha.21
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.21/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.21/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.21
────────────────────────────────── |
| 0.0.1-alpha.20 | 3 de setembre del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Server: Cancel background tasks when shutdown is requested (#20039)
- Server: Close signature help after ) (#20017)
- Server: Fix incorrect docstring in call signature completion (#20021)
- Fix 'too many cycle iterations' for unions of literals (#20137)
- Fix namespace packages that behave like partial stubs (#19994)
- Fix server hang (unchanged diagnostics) when changing file on Windows (#19991)
- Apply KW_ONLY sentinel only to local fields (#19986)
- Ignore field specifiers when not specified in @dataclass_transform (#20002)
Server
- Add completion support for import and from ... import statements (#19883)
- Add type as detail to completion items (#20047)
- Ask the LSP client to watch all project search paths (#19975)
- Fix incorrect inlay hint type (#20044)
- Update goto definition, goto declaration and hover to consider constructor method (__init__) (#20014)
- Add docstrings to completions based on type (#20008)
- Fix goto targets for keyword arguments in nested function calls (#20013)
- Introduce multiline pretty printer to render function signatures across multiple lines (#19979)
Configuration
- Distinguish base conda from child conda (#19990)
Typing semantics and features
- Add support for PEP 750: t-strings (#20085)
- Add support for PEP 800: Disjoint bases (#20084)
- Add precise inference for unpacking a TypeVar if the TypeVar has an upper bound with a precise tuple spec (#19985)
- Add precise iteration and unpacking inference for string literals and bytes literals (#20023)
- Completely ignore typeshed's stub for Any (#20079)
- Enforce that an attribute on a class X must be callable in order to satisfy a member on a protocol P (#20142)
- Evaluate static truthiness of non-definitely-bound symbols to "ambiguous" (#19579)
- Fix the inferred interface of specialized generic protocols (#19866)
- Infer slightly more precise types for comprehensions (#20111)
- Disable boundness analysis for implicit instance attributes (#20128)
- Add Top[] and Bottom[] special forms (#20054)
- Preserve qualifiers when accessing attributes on unions/intersections (#20114)
- Strict validation of protocol members (#17750)
- Support __init_subclass__ (#20190)
- Unpack variadic argument type in specialization (#20130)
- Use invalid-assignment error code for invalid assignments to ClassVars (#20156)
- Use specialized parameter type for overload filter (#19964)
- __class_getitem__ is a classmethod (#20192)
- Add cycle detection for find_legacy_typevars (#20124)
- Add support for cyclic legacy generic protocols (#20125)
- Don't eagerly unpack aliases in user-authored unions (#20055)
- Don't mark entire type-alias scopes as Deferred (#20086)
- Ensure union normalization really normalizes (#20147)
- Improve cycle-detection coverage for apply_type_mapping (#20159)
- Linear variance inference for PEP-695 type parameters (#18713)
- Minor TypedDict fixes (#20146)
- Typecheck dict methods for TypedDict (#19874)
- Validate constructor call of TypedDict (#19810)
- Sync vendored typeshed stubs (#20031, #20083, #20188) Typeshed diff
Diagnostics
- Add search paths info to unresolved import diagnostics (#20040)
- Better error message for attempting to assign to a read-only property (#20150)
- Improve diagnostics for bad calls to functions (#20022)
- Improve disambiguation of types via fully qualified names (#20141)
- Print diagnostics with fully qualified name to disambiguate some cases (#19850)
Performance
- Avoid unnecessary argument type expansion (#19999)
- Limit argument expansion size for overload call evaluation (#20041)
- Optimize TDD atom ordering (#20098)
Contributors
- @carljm
- @sharkdp
- @dylwil3
- @dcreager
- @MichaReiser
- @ericmarkmartin
- @Renkai
- @JelleZijlstra
- @BurntSushi
- @AlexWaygood
- @github-actions
- @PrettyWood
- @dhruvmanila
- @Glyphack
- @Gankra
- @MatthewMckee4
- @leandrobbraga
Install ty 0.0.1-alpha.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ast |
| 0.0.1-alpha.19 | 19 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Fix false-positive diagnostics if a function parameter is annotated with type[P] where P is a protocol class (#19947)
- Fix ANSI colors in terminal output on old Windows terminals (#19984)
- Fix protocol interface inference for protocols in stub files with ClassVar members and "subprotocols" that extend other protocols (#19950)
- Fix inference of equality comparisons between enum members (#19666)
- Remove incorrect type narrowing for if type(x) is C[int] (#19926)
- Improve detection of TypeErrors resulting from protocol classes illegally inheriting from non-protocol classes (#19941). We previously detected this error, but only when the protocol class illegally inherited from a non-generic class or an unspecialized generic class. We now also detect it when the protocol class inherits from a specialized generic class.
- Fix incorrectly precise type inference in some situations involving nested scopes (#19908)
- Fix unpacking a type alias with a precise tuple spec (#19981)
NamedTuple semantics improvements
- Synthesize read-only properties for all declared members on NamedTuple classes (#19899)
- Allow any instance of a NamedTuple class to be passed to a function parameter annotated with typing.NamedTuple (#19915)
- Detect NamedTuple classes where fields without default values illegally follow fields with default values (#19945). This causes TypeError to be raised at runtime.
- Detect illegal multiple inheritance with NamedTuple (#19943). This causes TypeError to be raised at runtime.
Other typing and semantics improvements
- Add support for stubs packages with partial in their py.typed files (#19931)
- Look for site-packages directories in <sys.prefix>/lib64/ as well as <sys.prefix>/lib/ on non-Windows systems (#19978). This change fixes a number of unresolved-import false-positive diagnostics reported by Poetry users.
- Add diagnostics for invalid await expressions (#19711)
- Add else-branch narrowing for if type(a) is A when A is @final (#19925)
- Improve solving of typevars with defaults, and typing.Self (#19786)
- Support the kw_only parameter for dataclasses.dataclass() and dataclasses.field() (#19677)
- Sync vendored typeshed stubs (#19923). Typeshed diff.
Server improvements
- Improve goto/hover for definitions (#19976)
Performance improvements
- Short-circuit a server inlay hints request if all settings under ty.inlayHints are disabled (#19963)
- Speedup server tracing checks (#19965)
- Add caching to logic for inferring whether a class is a NamedTuple, a dataclass or a TypedDict (#19912)
- Speedup project file discovery (#19913)
Contributors
- @dcreager
- @MichaReiser
- @sharkdp
- @github-actions
- @mtshiba
- @theammir
- @AlexWaygood
- @thejchap
- @Gankra
- @MatthewMckee4
- @carljm
Install ty 0.0.1-alpha.19
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.19/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.19/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.19
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
── |
| 0.0.1-alpha.18 | 14 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Fix goto definition on imports (#19834)
- Support non-generic recursive type aliases that use the type statement (#19805)
- Handle cycles when finding implicit attributes (#19833)
Server
- Implement support for "rename" language server feature (#19551)
- Add ty.experimental.rename server setting (#19800)
- Add ty.inlayHints.variableTypes server setting (#19780)
- Add inlay hints for call arguments (configured by ty.inlayHints.callArgumentNames server setting) (#19269)
- Enable goto definition to jump to the runtime definition in the standard library for stdlib symbols (rather than the type definition in typeshed's stubs) (#19529)
- Support LSP client settings (#19614)
- Update goto range for attribute access to only target the attribute (#19848)
- Warn users if the server received unknown options (#19779)
- Render docstrings in hover (#19882)
- Resolve docstrings for modules (#19898)
Typing semantics and features
- Add precise inference for indexing, slicing and unpacking NamedTuple instances (#19560)
- Disallow typing.TypedDict in type expressions (#19777)
- Implement module-level __getattr__ support (#19791)
- Improve ability to solve TypeVars when they appear in unions (#19829)
- Improve subscript narrowing for collections.ChainMap, collections.Counter, collections.deque and collections.OrderedDict (#19781)
- Extend all tuple special casing to tuple subclasses (#19669)
- Use separate Rust types for bound and unbound type variables (#19796)
- Validate writes to TypedDict keys (#19782)
- typing.Self is bound by the method, not the class (#19784)
- Fix deferred name loading in PEP695 generic classes/functions (#19888)
- Improve handling of symbol-lookup edge cases involving class scopes (#19795)
Performance
- Improve performance around tuple types (#19840)
- Improve performance of subtyping and assignability checks for protocols (#19824)
- Improve multithreaded performance for large codebases (#19867)
Memory usage optimizations
- Reduce memory usage of TupleSpec and TupleType (#19872)
- Reduce size of member table (#19572)
Contributors
- @AlexWaygood
- @Gankra
- @ntbre
- @MichaReiser
- @PrettyWood
- @dhruvmanila
- @carljm
- @dcreager
- @UnboundVariable
- @sharkdp
- @oconnor663
- @MatthewMckee4
Install ty 0.0.1-alpha.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.18/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.18/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.18
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼──────────────────── |
| 0.0.1-alpha.17 | 6 d’agost del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Always refresh diagnostics after a watched files change (#19697)
- Correctly instantiate generic class that inherits __init__ from generic base class (#19693)
- Don't panic with argument that doesn't actually implement Iterable (#19602)
- Fix "peek definition" in playground (#19592)
- Fix empty spans following a line terminator and unprintable character spans in diagnostics (#19535)
- Fix incorrect diagnostic when calling __setitem__ (#19645)
- Fix lookup order of class variables before they are defined (#19743)
- Fix more false positives related to Generic or Protocol being subscripted with a ParamSpec or TypeVarTuple (#19764)
- Keep track of type qualifiers in stub declarations without right-hand side (#19756)
Server
- Add progress reporting to workspace diagnostics (#19616)
- Add stub mapping support to signature help (#19570)
- Added support for "document symbols" and "workspace symbols" (#19521)
- Fix server panic in workspace diagnostics request handler when typing (#19631)
- Implement caching for workspace and document diagnostics (#19605)
- Implement long-polling for workspace diagnostics (#19670)
- Implement streaming for workspace diagnostics (#19657)
- Implemented support for "selection range" language server feature (#19567)
CLI
- Add progress bar to --watch mode (#19729)
- Clear the terminal screen in --watch mode (#19712)
- Resolve file symlinks in src walk (#19674)
Typing semantics and features
- Support async/await, async with and yield from (#19595)
- Add support for async for loops and async iterables (#19634)
- Don't include already-bound legacy typevars in function generic context (#19558)
- Infer types for key-based access on TypedDicts (#19763)
- Improve isinstance() truthiness analysis for generic types (#19668)
- Infer type[tuple[int, str]] as the meta-type of tuple[int, str] (#19741)
- Remove false positives when subscripting Generic or Protocol with a ParamSpec or TypeVarTuple (#19749)
- Remove special casing for string-literal-in-tuple __contains__ (#19642)
- Remove special casing for tuple addition (#19636)
- Return Option<TupleType> from infer_tuple_type_expression (#19735)
- Support as-patterns in reachability analysis (#19728)
- Support __setitem__ and improve __getitem__ related diagnostics (#19578)
- Synthesize precise __getitem__ overloads for tuple subclasses (#19493)
- Track different uses of legacy typevars, including context when rendering typevars (#19604)
- Upcast heterogeneous and mixed tuples to homogeneous tuples where it's necessary to solve a TypeVar (#19635)
- Fix incorrect lazy scope narrowing (#19744)
- Synthesize __replace__ for dataclasses (#19545)
Diagnostics
- Add diagnostics for async context managers (#19704)
- Display generic function signature properly (#19544)
- Improve the Display for generic type[] types (#19667)
- Remap Jupyter notebook cell indices in ruff_db (#19698)
Documentation
- Add the ty badge (#897)
Contributors
- @mtshiba
- @MichaReiser
- @sharkdp
- @github-actions
- @UnboundVariable
- @jorenham
- @silamon
- @AlexWaygood
- @thejchap
- @ngroman
- @leandrobbraga
- @dcreager
- @ntbre
- @MatthewMckee4
Install ty 0.0.1-alpha.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.17/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.17/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.17
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
──────────────────────────────────────────── |
| 0.0.1-alpha.16 | 25 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Fix server panics when hovering over invalid syntax in Callable annotations (#19517)
- match statements: Fix narrowing and reachability of class patterns with arguments (#19512)
- Fix server panics when hovering over illegal Literal[…] annotations with inner subscript expressions (#19489)
- Pass down specialization to generic dataclass bases (#19472)
Server
- Add support for "go to definition" for attribute accesses and keyword arguments (#19417)
- Add support for "go to definition" for import statements (#19428)
- Add support for "document highlights" (#19515)
- Add partial support for "find references" (#19475)
- Prefer the runtime definition, not the stub definition, on a go-to-definition request for a class or function. Currently this is only implemented for definitions originating outside of the stdlib. (#19471)
- Add semantic token support for more identifiers (#19473)
- Avoid rechecking the entire project when a file in the editor is opened or closed (#19463)
Typing semantics and features
- Handle splatted arguments in function calls (#18996)
- Improve place lookup and narrowing in lazy scopes (#19321)
- Add exhaustiveness checking and reachability analysis for match statements (#19508)
- Improve reachability analysis for isinstance(…) branches (#19503)
- Make tuple subclass constructors sound (#19469)
- Extend tuple __len__ and __bool__ special casing to also cover tuple subclasses (#19289)
- Add support for dataclasses.field (#19553)
- Add support for dataclasses.InitVar (#19527)
- Add support for @warnings.deprecated and typing_extensions.deprecated (#19376)
- Do not consider a type T to satisfy a method member on a protocol unless the method is available on the meta-type of T (#19187)
- Implement expansion of enums into unions of literals (#19382)
- Support iterating over enums (#19486)
- Detect enums if metaclass is a subtype of EnumType / EnumMeta (#19481)
- Infer single-valuedness for enums deriving from int or str (#19510)
- Detect illegal non-enum attribute accesses in Literal annotations (#19477)
- Disallow assignment to Final class attributes (#19457)
- Handle implicit instance attributes declared Final (#19462)
- Disallow Final in function parameter- and return-type annotations (#19480)
- Disallow illegal uses of ClassVar (#19483)
- Make del x force a local resolution of x in the current scope (#19389)
- Perform type narrowing for places marked global (#19381)
- Infer correct types for attribute accesses on intersections with negative parts (#19524)
- Sync vendored typeshed stubs (typeshed diff)
Memory usage optimizations
- Reduce ty's memory usage (for example: #19409, #19435, #19414)
Contributors
- @sharkdp
- @BurntSushi
- @oconnor663
- @Gankra
- @carljm
- @AlexWaygood
- @MichaReiser
- @dcreager
- @mtshiba
- @UnboundVariable
Install ty 0.0.1-alpha.16
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.16/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.16/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.16
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────── |
| 0.0.1-alpha.15 | 18 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Avoid stale diagnostics for open-files diagnostic mode (#19273)
- Fix inconsistent semantic syntax highlighting for parameters (#19418)
- Fix checking of virtual files after re-opening from an unsaved edit (#19277)
- Show the correct ty version in the LSP server (#19284)
- Do not surface settings errors in unrelated Python files (#19206)
- Do not ignore conditionally defined dataclass fields (#19197)
- Fix panic for attribute expressions with empty value (#19069)
- Fix assignabiliy of dataclasses to Callable types (#19192)
- Fix __setattr__ call check precedence during attribute assignment (#18347)
Server
- Add definition and declaration providers (go-to-definition, go-to-declaration) (#19371)
- Add signature help provider (show signature and docstring when writing a call expression) (#19194)
- Add "kind" to completion suggestions (#19216)
- Add completions for submodules that aren't attributes of their parent (#19266)
- Filter out private type aliases from stub files when offering autocomplete suggestions (#19282)
- Handle configuration errors in the LSP more gracefully (#19262)
- Use Python version and path from VSCode Python extension (#19012)
- Publish errors in settings as LSP diagnostics (#19335)
Typing semantics and features
- Add support for nonlocal statements (#19112)
- Support empty function bodies in if TYPE_CHECKING blocks (#19372)
- Emit a diagnostic when attempting to modify a typing.Final-qualified symbol (#19178)
- Infer enum literal types when accessing enum members (#19328)
- Synthesize __setattr__ for frozen dataclasses (#19307)
- Improve equivalence for module-literal types (#19243)
- Reduce false positives for TypedDict types (#19354)
- Emit an error for global uses if there is no explicit definition in the global scope (#19344)
- Sync vendored typeshed stubs (typeshed diff)
CLI
- Add a -q/--quiet mode, -qq for silent output mode (#19233)
Contributors
- @AlexWaygood
- @github-actions
- @dhruvmanila
- @sharkdp
- @renovate
- @MatthewMckee4
- @UnboundVariable
- @oconnor663
- @zanieb
- @MichaReiser
- @charliermarsh
- @Gankra
- @thejchap
- @BurntSushi
- @mdqst
Install ty 0.0.1-alpha.15
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.15/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.15/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.15
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────── |
| 0.0.1-alpha.14 | 8 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Add cycle detection to ty's implementation of disjointness between types, fixing a possible source of stack overflows when analysing recursive types (#19139)
- Don't allow first-party code to shadow the stdlib types module (#19128).
This fixes another possible source of stack overflows.
- Fix descriptor lookups for most types that overlap with None (#19120).
This means that e.g. object().__str__() now correctly binds the self argument of the __str__
method, as the object type overlaps with None.
Server
- Filter a symbol from a stub file in autocomplete suggestions if it is an implementation detail of the stub (#19121)
- Add initial support for semantic tokens (#19108).
This feature allows editors to apply more advanced syntax highlighting. Currently, the supported tokens are: Namespace, Class, Parameter, SelfParameter,ClsParameter, Variable, Property, Function, Method, Keyword, String, Number, Decorator, BuiltinConstant and TypeParameter.
- Initial support for workspace diagnostics (#18939).
Enable this feature by setting the ty.diagnosticMode configuration setting to "workspace".
- Use Python syntax highlighting in on-hover content (#19082)
Typing semantics and features
- Understand that calls to functions returning Never / NoReturn are terminal with respect to control flow (#18333)
- Add subtyping between type[] types and Callable types (#19026)
- Support bare ClassVar annotations (#15768)
- Understand that two protocols with equivalent method members are equivalent (#18659)
- Support declared-only instance attributes such as self.x: int (#19048)
- Sync vendored typeshed stubs (#19174): typeshed diff
- Use the inferred type as the declared type for bare Final symbols (#19142)
Contributors
- @iyakushev
- @MatthewMckee4
- @zanieb
- @sharkdp
- @UnboundVariable
- @abhijeetbodas2001
- @github-actions
- @dhruvmanila
- @AlexWaygood
- @carljm
- @CodeMan62
Install ty 0.0.1-alpha.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.14/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.14/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.14
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu. |
| 0.0.1-alpha.13 | 2 de juliol del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióBug fixes
- Fix stack overflows related to mutually recursive protocols (#19003)
- Don't add incorrect subdiagnostic for unresolved-reference in staticmethods and classmethods (#18487)
- Fix rendering of long lines in diagnostic messages that are indented with tabs (#18962)
- Fix reachability of star import definitions for nonlocal lookups (#19066)
Typing semantics and features
- Support variable-length tuples in unpacking assignments (#18948)
- Allow declared-only class-level attributes to be accessed on the class (#19071)
- Infer nonlocal types as unions of all reachable bindings (#18750)
- Use all reachable bindings for instance attributes and deferred lookups (#18955)
- Improve protocol member type checking and relation handling (#18847)
- Rework disjointness of protocol instances vs types with possibly unbound attributes, preventing some false instances of Never in hasattr narrowing (#19043)
- Make tuple instantiations sound (#18987)
- Add subdiagnostic about empty bodies in more cases (#18942)
- Improve type-inference for __import__(name) and importlib.import_module(name) (#19008)
- Eagerly evaluate certain constraints when analyzing control flow (#18998, #19044, #19068)
- Update typeshed stubs (#19060): typeshed diff
Server
- Add builtins to completions (#18982)
- Support LSP go-to with vendored typeshed stubs (#19057)
Documentation
- The ty documentation is now available at docs.astral.sh/ty (#744)
Performance
- Remove ScopedExpressionId (#19019)
Contributors
- @InSyncWithFoo
- @MatthewMckee4
- @dcreager
- @mtshiba
- @BurntSushi
- @sharkdp
- @ibraheemdev
- @github-actions
- @carljm
- @AlexWaygood
- @MichaReiser
- @zanieb |
| 0.0.1-alpha.12 | 25 de juny del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Avoid duplicate diagnostic when reporting errors in unpacked assignments (#18897)
- Fix panics when "pulling types" for ClassVar or Final parameterized with >1 argument (#18824). These could cause issues when hovering over symbols in an IDE.
Improved modeling of Python runtime semantics
- Add support for @staticmethods (#18809)
- Discover implicit class attribute assignments in @classmethod-decorated methods. Recognize that assignments in the body of a @staticmethod-decorated method are never instance attributes (#18587)
- Report when a dataclass contains more than one KW_ONLY field (#18731)
Type narrowing improvements
- Ty will now perform isinstance() and issubclass() narrowing when the second argument is a union type, intersection type or TypeVar type (#18900)
- Ty now narrows types in comprehensions and generator expressions (#18934)
- Understand two NominalInstanceTypes as disjoint types if attempting to use multiple inheritance with their underlying classes would result in an instance memory layout conflict (#18864)
Other typing semantics features
- Support "mixed" tuples such as tuple[int, *tuple[str, ...]] (#18600, #18901)
- Support type inference for subscript expressions on union types (#18846)
- Introduce a new subtyping framework in which gradual types can participate, allowing for more advanced union type simplification (#18799)
- Surface the matched overload directly when reporting a diagnostic for an invalid call to an overloaded function (#18452)
Improvements to server autocompletions
- Add completions for from module import <CURSOR> (#18830)
- Enforce sort order of completions (#18917)
- Include imported sub-modules as attributes on modules for completions (#18898)
Configuration
- Anchor all src.exclude patterns, for consistency with src.include patterns (#18685)
- Change environment.root to accept multiple paths (#18913)
- Rename src.root setting to environment.root (#18760)
- Support --python=<symlink to executable> (#18827)
Contributors
- @BurntSushi
- @InSyncWithFoo
- @suneettipirneni
- @AlexWaygood
- @dhruvmanila
- @sharkdp
- @MichaReiser
- @med1844
- @dcreager
- @carljm
Install ty 0.0.1-alpha.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.12/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.12/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.12
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────── |
| 0.0.1-alpha.10 | 13 de juny del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Server
- Improve support for object.<CURSOR> completions (#18629)
Configuration
- Add file inclusion and exclusion (#18498)
- Infer the Python version from --python=<system installation> on Unix (#18550)
Bug fixes
- Delay computation of 'unbound' visibility for implicit instance attributes (#18669).
This fixes a significant performance regression in version 0.0.1-alpha.9.
Typing semantics and features
- Support the del statement; model implicit deletion of except handler names (#18593)
Release
- Include ruff/ directory in release source tarballs (#617)
Contributors
- @AlexWaygood
- @BurntSushi
- @Gankra
- @mtshiba
- @sharkdp
- @dhruvmanila
- @MichaReiser
Install ty 0.0.1-alpha.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.10/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.10/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.10
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-musl.tar.gz │x86 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-musl.tar.gz │x64 MUSL Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-arm-unknown-linux-musleabihf.tar.gz │ARMv6 MUSL Linux (Hardfloat)│checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-musleabihf.tar.gz │ARMv7 MUSL Linux │checksum
─────────────────────────────────────────────┴────────────────────────────┴───────────── |
| 0.0.1-alpha.9 | 11 de juny del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Typing semantics and features
- Add generic inference for dataclasses (#18443)
- Add support for global __debug__ constant (#18540)
- Argument type expansion for overload call evaluation (#18382)
- Exclude members starting with _abc_ from a protocol interface (#18467)
- Infer list[T] for starred target in unpacking (#18401)
- Infer list[T] when unpacking non-tuple type (#18438)
- Support type annotation for legacy typing aliases for generic classes (#18404)
- Allow using dataclasses.dataclass as a function (#18440)
- Type narrowing for attribute/subscript assignments (#18041)
Diagnostics
- Add hints to invalid-type-form for common mistakes (#18543)
- Add subdiagnostic suggestion to unresolved-reference diagnostic when variable exists on self (#18444)
- Track the origin of the environment.python setting for better error messages (#18483)
CLI
- Fix --python argument for Windows, and improve error messages for bad --python arguments (#18457)
Bug fixes
- Meta-type of type variables should be type[..] (#18439)
- Only consider a type T a subtype of a protocol P if all of P's members are fully bound on T (#18466)
- Fix false positives for legacy ParamSpecs inside Callable type expressions (#18426)
- Fix panic when pulling types for UnaryOp expressions inside Literal slices (#18536)
- Fix panic when trying to pull types for attribute expressions inside Literal type expressions (#18535)
- Fix panic when trying to pull types for subscript expressions inside Callable type expressions (#18534)
- Treat lambda functions as instances of types.FunctionType (#18431)
- Implement disjointness between Callable and SpecialForm (#18503)
Server
- Fix stale diagnostics in documents on Windows (#18544)
- Add support for object.<CURSOR> completions (#18468)
- Only provide declarations and bindings as completions (#18456)
Documentation
- Add CONDA_PREFIX to --python documentation (#18574)
- Update list of referenced environment variables (#612)
- Document how the default value for python-version is determined (#18549)
- Document the "all" option for python-platform (#18548)
Contributors
- @AlexWaygood
- @charliermarsh
- @mtshiba
- @benbaror
- @sharkdp
- @carljm
- @MichaReiser
- @lipefree
- @BurntSushi
- @DetachHead
- @MatthewMckee4
- @suneettipirneni
- @abhijeetbodas2001
- @ibraheemdev
- @dhruvmanila
Install ty 0.0.1-alpha.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.9/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.9/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.9
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
|
| 0.0.1-alpha.8 | 2 de juny del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Typing semantics and features
- Add subtyping between Callable types and class literals with __init__ (#17638)
- Implement implicit inheritance from Generic[] for PEP-695 generic classes (#18283)
- Infer the Python version from the environment if feasible (#18057)
- Support ephemeral uv virtual environments (#18335)
- Model that some Callable types should have all FunctionType attributes available (#18242)
Diagnostics
- Add diagnostic hints for a function that has a non-None return-type annotation but no return statements (#18359)
- Add hint if async context manager is used in non-async with statement (#18299)
- Improve diagnostics if the user attempts to import a stdlib module that does not exist on their configured Python version (#18403)
- Tell the user why we inferred a certain Python version when reporting version-specific syntax errors (#18295)
Bug fixes
- Fix multithreading related hangs and panics (#18238)
- Ensure Literal types are considered assignable to anything their Instance supertypes are assignable to (#18351)
- Callable types are disjoint from non-callable @final nominal instance types (#18368)
- Support callability of bound/constrained typevars (#18389)
Server
- Fix server hang after shutdown request (#18414)
- Improve completions by leveraging scopes (#18281)
- Support cancellation and retry in the server (#18273)
- Support publishing diagnostics in the server (#18309)
CLI
- Add --config-file CLI arg (#18083)
Contributors
- @AlexWaygood
- @BurntSushi
- @lipefree
- @MatthewMckee4
- @dhruvmanila
- @zanieb
- @carljm
- @thejchap
- @sharkdp
- @InSyncWithFoo
- @MichaReiser
Install ty 0.0.1-alpha.8
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.8/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.8/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.8
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unkno |
| 0.0.1-alpha.7 | 26 de maig del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Bug fixes
- Implement Python's floor-division semantics for Literal ints (#18249)
- Don't warn about a yield expression not being in a function if the yield expression is in a function (#18008)
- Fix inference of attribute writes to unions/intersections that including module-literal types (#18313)
- Fix false-positive diagnostics in binary comparison inference logic for intersection types (#18266)
- Fix instance vs callable subtyping/assignability (#18260)
- Ignore ClassVar declarations when resolving instance members (#18241)
- Fix crash when hovering over a ty_extensions.Intersection[A, B] expression in an IDE context (#18321)
- Respect MRO_NO_OBJECT_FALLBACK policy when looking up symbols on type instances (#18312)
- get_protocol_members returns a frozenset, not a tuple (#18284)
Typing semantics and features
- Support import <namespace> and from <namespace> import module (#18137)
- Support frozen dataclasses (#17974)
- Understand that the presence of a __getattribute__ method indicates arbitrary members can exist on a type (#18280)
- Add a subdiagnostic if invalid-return-type is emitted on a method with an empty body on a non-protocol subclass of a protocol class (#18243)
- Improve invalid-type-form diagnostic where a module-literal type is used in a type expression and the module has a member which would be valid in a type expression (#18244)
- Split invalid-base error code into two error codes (#18245)
- Rename call-possibly-unbound-method to possibly-unbound-implicit-call (#18017)
Configuration
- Add tests to src.root by default if a tests/ directory exists and is not a package (#18286)
- Tell the user why we inferred the Python version we inferred (#18082)
- Add support for detecting activated Conda and Pixi environments (#18267)
- Move respect-ignore-files configuration setting under src section (#18322)
Server
- Fix server panic when calling system_mut (#18252)
- Abort process if worker thread panics (#18211)
- Gracefully handle salsa cancellations and panics in background request handlers (#18254)
Contributors
- @felixscherz
- @carljm
- @j178
- @thejchap
- @brainwane
- @AlexWaygood
- @lipefree
- @InSyncWithFoo
- @brandtbucher
- @MichaReiser
- @maxmynter
- @fabridamicelli
- @sharkdp
Install ty 0.0.1-alpha.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.7/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.7/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.7
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼───────── |
| 0.0.1-alpha.6 | 20 de maig del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióRelease Notes
Server
- Add rule link to server diagnostics (#18128)
- Avoid panicking when there are multiple workspaces (#18151)
- Show related information in diagnostic (#17359)
Configuration
- Default src.root setting to ['.', '<project_name>'] if an src/ directory does not exist but a <project-name>/<project-name> directory does exist (#18141)
Typing semantics and features
- Consider a class with a dynamic element in its MRO assignable to any subtype of type (#18205)
- Ensure that a function-literal type is always considered equivalent to itself (#18227)
- Promote literals when inferring class specializations from constructors (#18102)
- Support typing.TypeAliasType (#18156)
- Infer function-call type variables in both directions (#18155)
Improvements to modeling of runtime semantics
- Integer indexing into bytes returns int (#18218)
- Emit invalid-exception-caught diagnostics even when the caught exception is not bound to a variable (#18202)
Usability improvements
- Add hint to some diagnostics that PEP 604 union syntax is only available on Python 3.10+ (#18192)
- Add note to unresolved-import diagnostic hinting to users to configure their Python environment (#18207)
- Make division-by-zero an opt-in diagnostic rather than opt-out (#18220)
Import resolution improvements
- Add support for PyPy virtual environments (#18203)
Contributors
- @dhruvmanila
- @InSyncWithFoo
- @AlexWaygood
- @MichaReiser
- @BradonZhang
- @dcreager
- @danielhollas
- @esadek
- @kiran-4444
- @Mathemmagician
- @sharkdp
- @felixscherz
- @adamaaronson
- @carljm
Install ty 0.0.1-alpha.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.6/ty-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.6/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.6
─────────────────────────────────────────────┬────────────────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-apple-darwin.tar.gz │Apple Silicon macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-apple-darwin.tar.gz │Intel macOS │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-pc-windows-msvc.zip │ARM64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-pc-windows-msvc.zip │x86 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-gnu.tar.gz │ARM64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-i686-unknown-linux-gnu.tar.gz │x86 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64-unknown-linux-gnu.tar.gz │PPC64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-powerpc64le-unknown-linux-gnu.tar.gz │PPC64LE Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-s390x-unknown-linux-gnu.tar.gz │S390x Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-x86_64-unknown-linux-gnu.tar.gz │x64 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-armv7-unknown-linux-gnueabihf.tar.gz │ARMv7 Linux │checksum
─────────────────────────────────────────────┼────────────────────────────┼─────────────
ty-aarch64-unknown-linux-musl.tar.gz │ARM64 MUSL Linux │checksum
───────────────── |
| 0.0.1-alpha.2 | 14 de maig del 2025 | — | 64 bits ZIPARM64 ZIP32 bits ZIP Notes de la versióEnhancements
- Improve diagnostics for failure to call overloaded function (#18073)
- Fix inconsistent casing in invalid-return-type diagnostic (#18084)
- Add type-expression syntax link to invalid-type-expression diagnostics (#18104)
Bug fixes
- Add cycle handling for unpacking targets (#18078)
- Do not look up __init__ on instances (#18092)
Typing
- Infer parameter specializations of explicitly implemented generic protocols (#18054)
- Check assignments to implicit global symbols are assignable to the types declared on types.ModuleType (#18077)
- Fix various generics-related TODOs (#18062)
Documentation
- Fix rule link in the configuration description (#381)
- Use https://ty.dev/rules when linking to the rules table (#18072)
- Use ty server instead of ty lsp (#360)
- Fix missing > in HTML anchor tags in CLI reference (#18096)
- Fix link to rules docs (#378)
- Fix repository in README transform script (#361) |