項目簡介
ty(原名 Ruff)是 Astral 公司打造的下一代 Python 型別檢查器,採用 Rust 編寫,專為速度而生。作為 Ruff 團隊的最新力作,ty 提供了 10x-100x 於 mypy 和 Pyright 的效能表現,同時支援完整的語言伺服器協定(LSP)。
Astral 團隊同時也是熱門工具 uv 和 Ruff linter 的開發者,這次他們將焦點放在了 Python 開發者長期以來的痛點:型別檢查的速度。傳統的 mypy 雖然功能完善,但檢查大型專案時往往需要數十秒甚至數分鐘,而 ty 的增量分析引擎可以將這個時間縮短到毫秒級。
這個專案的重要性在於它直擊 Python 型別檢查的效能瓶頸。當你的程式碼庫變得龐大時,每一次存檔後等待 IDE 回應的時間都會累積。ty 的出現讓這個等待時間趨近於零。
核心功能
- 極速效能:採用 Rust 編寫,提供增量分析引擎,IDE 更新近乎即時。與 mypy 相比提速 10-100 倍。
- 豐富診斷資訊:提供上下文豐富的錯誤訊息,幫助開發者快速定位問題根源。
- 靈活配置:支援規則等級設定、檔案級別覆蓋、註解抑制。
- 進階型別系統:支援一級交集型別、先進型別窄化、複雜可達性分析。
- 完整 LSP 支援:代碼導航、自動完成、代碼操作、自動導入、內嵌提示。
- 增量分析:專為 IDE 設計的細粒度增量分析。
安裝教學
# 使用 uvx 快速運行
uvx ty check
# 使用 pip 安裝
pip install ty
# 使用 cargo 安裝
cargo install ty-cli
# 驗證安裝
ty --version
使用教學
# 基本型別檢查
ty check .
# 檢查特定檔案
ty check src/main.py
# 增量檢查(CI/CD 推薦)
ty check --changed-files
# 詳細輸出模式
ty check --verbose
# 並行檢查
ty check --jobs 4
進階技巧
# watch 模式
ty check --watch
# 排除特定目錄
ty check --exclude "tests/*"
ty 由 Astral 團隊維護,該團隊同時打造了廣受歡迎的 uv 工具和 Ruff linter。