Aquesta és una versió anterior. La versió actual és la 0.0.87. ty 0.0.87 · Data de publicació:
Fitxers d’instal·lació 0.0.30
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | ZIP → Portable | — | — | github.com | VirusTotal |
| ARM64 | ZIP → Portable | — | — | github.com | VirusTotal |
| 32 bits | ZIP → Portable | — | — | github.com | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
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