An extremely fast Python type checker, written in Rust.
Project description
ty
An extremely fast Python type checker and language server, written in Rust.
Type checking the home-assistant project without caching.
ty is backed by Astral, the creators of uv and Ruff.
Highlights
- 10x - 100x faster than mypy and Pyright
- Comprehensive diagnostics with rich contextual information
- Configurable rule levels, per-file overrides, suppression comments, and first-class project support
- Designed for adoption, with support for redeclarations and partially typed code
- Language server with code navigation, completions, code actions, auto-import, inlay hints, on-hover help, etc.
- Fine-grained incremental analysis designed for fast updates when editing files in an IDE
- Editor integrations for VS Code, PyCharm, Neovim and more
- Advanced typing features like first-class intersection types, advanced type narrowing, and sophisticated reachability analysis
Getting started
Run ty with uvx to get started quickly:
uvx ty check
Or, check out the ty playground to try it out in your browser.
To learn more about using ty, see the documentation.
Installation
To install ty, see the installation documentation.
To add the ty language server to your editor, see the editor integration guide.
Getting help
If you have questions or want to report a bug, please open an issue in this repository.
You may also join our Discord server.
Contributing
Development of this project takes place in the Ruff repository
at this time. Please open pull requests there for changes
to anything in the ruff submodule (which includes all of the Rust source code).
See the contributing guide for more details.
FAQ
Why is ty doing _____?
See our typing FAQ.
How do you pronounce ty?
It's pronounced as "tee - why" (/tiː waɪ/)
How should I stylize ty?
Just "ty", please.
License
ty is licensed under the MIT license (LICENSE or https://opensource.org/licenses/MIT).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in ty by you, as defined in the MIT license, shall be licensed as above, without any additional terms or conditions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ty-0.0.17.tar.gz.
File metadata
- Download URL: ty-0.0.17.tar.gz
- Upload date:
- Size: 5.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
847ed6c120913e280bf9b54d8eaa7a1049708acb8824ad234e71498e8ad09f97
|
|
| MD5 |
5f878f8ba36c167c59fbb2bf2980f369
|
|
| BLAKE2b-256 |
66c341ae6346443eedb65b96761abfab890a48ce2aa5a8a27af69c5c5d99064d
|
File details
Details for the file ty-0.0.17-py3-none-win_arm64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-win_arm64.whl
- Upload date:
- Size: 10.0 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de9810234c0c8d75073457e10a84825b9cd72e6629826b7f01c7a0b266ae25b1
|
|
| MD5 |
d903786416ac93bec4f00f29aa5089b2
|
|
| BLAKE2b-256 |
40b7f875c729c5d0079640c75bad2c7e5d43edc90f16ba242f28a11966df8f65
|
File details
Details for the file ty-0.0.17-py3-none-win_amd64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-win_amd64.whl
- Upload date:
- Size: 10.5 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
531828267527aee7a63e972f54e5eee21d9281b72baf18e5c2850c6b862add83
|
|
| MD5 |
14d3b6c15a4b5cea8285d9dc3c60da1f
|
|
| BLAKE2b-256 |
deb539be78f30b31ee9f5a585969930c7248354db90494ff5e3d0756560fb731
|
File details
Details for the file ty-0.0.17-py3-none-win32.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-win32.whl
- Upload date:
- Size: 9.7 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
305b6ed150b2740d00a817b193373d21f0767e10f94ac47abfc3b2e5a5aec809
|
|
| MD5 |
7e78cc3882c2fb971c0a0bc310f135ac
|
|
| BLAKE2b-256 |
c52d2663984ac11de6d78f74432b8b14ba64d170b45194312852b7543cf7fd56
|
File details
Details for the file ty-0.0.17-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 10.7 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c04e196809ff570559054d3e011425fd7c04161529eb551b3625654e5f2434cb
|
|
| MD5 |
0dfb2712e14d350e970603f220a02608
|
|
| BLAKE2b-256 |
7c79e2a606bd8852383ba9abfdd578f4a227bd18504145381a10a5f886b4e751
|
File details
Details for the file ty-0.0.17-py3-none-musllinux_1_2_i686.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-musllinux_1_2_i686.whl
- Upload date:
- Size: 10.2 MB
- Tags: Python 3, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b11f1da7859e0ad69e84b3c5ef9a7b055ceed376a432fad44231bdfc48061c2
|
|
| MD5 |
a847e71c22a80d37095a9fe7778f71fa
|
|
| BLAKE2b-256 |
93e006737bb80aa1a9103b8651d2eb691a7e53f1ed54111152be25f4a02745db
|
File details
Details for the file ty-0.0.17-py3-none-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 10.0 MB
- Tags: Python 3, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b226dd1e99c0d2152d218c7e440150d1a47ce3c431871f0efa073bbf899e881
|
|
| MD5 |
edac29c32bca1917e1bcc1826d6ae052
|
|
| BLAKE2b-256 |
464b98f0b3ba9aef53c1f0305519536967a4aa793a69ed72677b0a625c5313ac
|
File details
Details for the file ty-0.0.17-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 10.0 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c4e01f05ce82e5d489ab3900ca0899a56c4ccb52659453780c83e5b19e2b64c
|
|
| MD5 |
cdaa6f3f2831c3cadc90d3f38a111fed
|
|
| BLAKE2b-256 |
b30c87476004cb5228e9719b98afffad82c3ef1f84334bde8527bcacba7b18cb
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
002139e807c53002790dfefe6e2f45ab0e04012e76db3d7c8286f96ec121af8f
|
|
| MD5 |
174858bb5af715168c3654c7d7b8989f
|
|
| BLAKE2b-256 |
3e4aa2ed209ef215b62b2d3246e07e833081e07d913adf7e0448fc204be443d6
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 10.9 MB
- Tags: Python 3, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8df66b91ec84239420985ec215e7f7549bfda2ac036a3b3c065f119d1c06825a
|
|
| MD5 |
dc22fcb6d1b8a20f839f3e1a3e6f7ffe
|
|
| BLAKE2b-256 |
f2be1133c91f15a0e00d466c24f80df486d630d95d1b2af63296941f7473812f
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 11.1 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
488bce1a9bea80b851a97cd34c4d2ffcd69593d6c3f54a72ae02e5c6e47f3d0c
|
|
| MD5 |
146cfe6b6227318c9a1a090e6e326048
|
|
| BLAKE2b-256 |
75ce744b15279a11ac7138832e3a55595706b4a8a209c9f878e3ab8e571d9032
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 10.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6f5b1aba97db9af86517b911674b02f5bc310750485dc47603a105bd0e83ddd
|
|
| MD5 |
f962d2da71512c110d77238bd83773ff
|
|
| BLAKE2b-256 |
80ef22f3ed401520afac90dbdf1f9b8b7755d85b0d5c35c1cb35cf5bd11b59c2
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 10.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c20423b8744b484f93e7bf2ef8a9724bca2657873593f9f41d08bd9f83444c9
|
|
| MD5 |
b26e9ae511edb0d59e4a249bc606caaa
|
|
| BLAKE2b-256 |
2ad7493e1607d8dfe48288d8a768a2adc38ee27ef50e57f0af41ff273987cda0
|
File details
Details for the file ty-0.0.17-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 10.1 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5383814d1d7a5cc53b3b07661856bab04bb2aac7a677c8d33c55169acdaa83df
|
|
| MD5 |
b412907a475fb56a7c494a1a479d9317
|
|
| BLAKE2b-256 |
d6b8280b04e14a9c0474af574f929fba2398b5e1c123c1e7735893b4cd73d13c
|
File details
Details for the file ty-0.0.17-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f18f5fd927bc628deb9ea2df40f06b5f79c5ccf355db732025a3e8e7152801f6
|
|
| MD5 |
57e5e7a7eaeef38ebbc1f6eae982616a
|
|
| BLAKE2b-256 |
4ca543746c1ff81e784f5fc303afc61fe5bcd85d0fcf3ef65cb2cef78c7486c7
|
File details
Details for the file ty-0.0.17-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb2dbd8acd5c5a55f4af0d479523e7c7265a88542efe73ed3d696eb1ba7b6454
|
|
| MD5 |
293f34a98eecb2dcdd65e9d01d6f9a03
|
|
| BLAKE2b-256 |
0f2cf4c322d9cded56edc016b1092c14b95cf58c8a33b4787316ea752bb9418e
|
File details
Details for the file ty-0.0.17-py3-none-linux_armv6l.whl.
File metadata
- Download URL: ty-0.0.17-py3-none-linux_armv6l.whl
- Upload date:
- Size: 10.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64a9a16555cc8867d35c2647c2f1afbd3cae55f68fd95283a574d1bb04fe93e0
|
|
| MD5 |
14288b3bf6e466968819461aa55067cc
|
|
| BLAKE2b-256 |
c0010ef15c22a1c54b0f728ceff3f62d478dbf8b0dcf8ff7b80b954f79584f3e
|