Releases: astral-sh/ty
Releases · astral-sh/ty
0.0.1-alpha.20
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
andfrom ... 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 protocolP
(#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[]
andBottom[]
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 toClassVar
s (#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/astral-sh/ty/releases/download/0.0.1-alpha.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.1-alpha.20/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.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-... |
0.0.1-alpha.19
Release Notes
Bug fixes
- Fix false-positive diagnostics if a function parameter is annotated with
type[P]
whereP
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
TypeError
s 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 withtyping.NamedTuple
(#19915) - Detect
NamedTuple
classes where fields without default values illegally follow fields with default values (#19945). This causesTypeError
to be raised at runtime. - Detect illegal multiple inheritance with
NamedTuple
(#19943). This causesTypeError
to be raised at runtime.
Other typing and semantics improvements
- Add support for stubs packages with
partial
in theirpy.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 ofunresolved-import
false-positive diagnostics reported by Poetry users. - Add diagnostics for invalid
await
expressions (#19711) - Add
else
-branch narrowing forif type(a) is A
whenA
is@final
(#19925) - Improve solving of typevars with defaults, and
typing.Self
(#19786) - Support the
kw_only
parameter fordataclasses.dataclass()
anddataclasses.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 aTypedDict
(#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
0.0.1-alpha.18
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
andcollections.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
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
0.0.1-alpha.17
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
orProtocol
being subscripted with aParamSpec
orTypeVarTuple
(#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
andyield 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
TypedDict
s (#19763) - Improve
isinstance()
truthiness analysis for generic types (#19668) - Infer
type[tuple[int, str]]
as the meta-type oftuple[int, str]
(#19741) - Remove false positives when subscripting
Generic
orProtocol
with aParamSpec
orTypeVarTuple
(#19749) - Remove special casing for string-literal-in-tuple
__contains__
(#19642) - Remove special casing for tuple addition (#19636)
- Return
Option<TupleType>
frominfer_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 generictype[]
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 |
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](https://github... |
0.0.1-alpha.16
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
andtyping_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 ofT
(#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
orstr
(#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 ofx
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
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
0.0.1-alpha.15
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
0.0.1-alpha.14
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 theself
argument of the__str__
method, as theobject
type overlaps withNone
.
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
andTypeParameter
. - Initial support for workspace diagnostics (#18939).
Enable this feature by setting thety.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 andCallable
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
0.0.1-alpha.13
Release Notes
Bug fixes
- Fix stack overflows related to mutually recursive protocols (#19003)
- Don't add incorrect subdiagnostic for
unresolved-reference
instaticmethod
s andclassmethod
s (#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
inhasattr
narrowing (#19043) - Make tuple instantiations sound (#18987)
- Add subdiagnostic about empty bodies in more cases (#18942)
- Improve type-inference for
__import__(name)
andimportlib.import_module(name)
(#19008) - Eagerly evaluate certain constraints when analyzing control flow (#18998, #19044, #19068)
- Update typeshed stubs (#19060): typeshed diff
Server
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
Install ty 0.0.1-alpha.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.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.1-alpha.13/ty-installer.ps1 | iex"
Download ty 0.0.1-alpha.13
0.0.1-alpha.12
Release Notes
Bug fixes
- Avoid duplicate diagnostic when reporting errors in unpacked assignments (#18897)
- Fix panics when "pulling types" for
ClassVar
orFinal
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
@staticmethod
s (#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()
andissubclass()
narrowing when the second argument is a union type, intersection type orTypeVar
type (#18900) - Ty now narrows types in comprehensions and generator expressions (#18934)
- Understand two
NominalInstanceType
s 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 withsrc.include
patterns (#18685) - Change
environment.root
to accept multiple paths (#18913) - Rename
src.root
setting toenvironment.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
0.0.1-alpha.11
Release Notes
Breaking changes
- Stabilize auto-complete; remove the opt-in experimental setting (#18650)
Bug fixes
- Fix binary expression inference between Boolean literals and
bool
instances (#18663) - Fix panic that could occur when printing a class's "header" in diagnostic messages (#18670)
- Fix panic when attempting to provide autocompletions for an instance of a class that assigns attributes to
self[0]
(#18707) - Fix panics when "pulling types" for various special forms that have the wrong number of parameters. These could cause issues when hovering over symbols in an IDE. (#18642)
Typing semantics and features
- Support type narrowing for attribute and subscript expressions (#17643)
- Add partial support for
TypeIs
(#18589) - Support
dataclasses.KW_ONLY
(#18677) - Filter overloads based on
Any
/Unknown
(#18607) - Improve reachability analysis (#18621)
- Model
T: Never
as a subtype ofNever
(#18687) - Update typeshed stubs (#18679): typeshed diff
Configuration
- Allow overriding rules for specific files (#18648)
Server
- Add
python.ty.disableLanguageServices
config (#18230)
Contributors
- @dhruvmanila
- @felixscherz
- @MichaReiser
- @alpaylan
- @mtshiba
- @github-actions
- @BurntSushi
- @InSyncWithFoo
- @AlexWaygood
- @abhijeetbodas2001
- @sharkdp
- @ibraheemdev
Install ty 0.0.1-alpha.11
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ty/releases/download/0.0.1-alpha.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.1-alpha.11/ty-installer.ps1 | iex"