github astral-sh/ty 0.0.1-alpha.12

pre-release2 months ago

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

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
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

Don't miss a new ty release

NewReleases is sending notifications on new releases.