ty:极速 Python 类型检查器与 LSP

ty:极速 Python 类型检查器与 LSP

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

Astral 发布用 Rust 编写的 Python 类型检查器与语言服务器 ty 的 Beta 版。其增量架构使编辑器内更新极快,比 mypy、Pyright 快 10 至 60 倍,重算诊断仅需 4.7 毫秒。ty 支持交叉类型、类型收窄和优秀诊断,采用 MIT 许可。下一步将修复稳定性、补全类型规范并支持 Pydantic、Django,目标明年发布稳定版。

🔎

延伸解读

性能优势的实际意义

ty 在无缓存命令行检查中比 mypy 和 Pyright 快 10 至 60 倍,在编辑器内增量更新时差距更大:编辑 PyTorch 文件后重算诊断仅需 4.7 毫秒,而 Pyright 需 386 毫秒,Pyrefly 需 2.38 秒。这种速度意味着在大型项目中,类型检查几乎不会打断编码流程,实时反馈成为可能。

诊断系统:不只是报错

ty 的诊断系统借鉴了 Rust 编译器的设计,能跨文件收集上下文,不仅指出错误,还解释原因并给出修复建议。例如,为字典键赋无效值时,会同时显示赋值处的类型不匹配和对应的项声明。这种诊断方式对人和 AI 代理都更友好,有助于快速定位和解决问题。

Beta 版的定位与限制

ty 目前处于 Beta 阶段,Astral 已在内部项目中全面使用,并推荐有动力的用户在生产环境尝试。但稳定版计划明年发布,期间将重点修复稳定性问题、补全 Python 类型规范的长尾特性,并增加对 Pydantic、Django 等流行库的一流支持。因此,现阶段可能不适合对稳定性要求极高的关键项目。

开源与生态整合

ty 采用 MIT 许可证,由核心团队和数十位贡献者共同开发,编辑器扩展同样开源。它支持任何实现 LSP 的编辑器,并提供了 VS Code 扩展。未来,ty 还计划为 Astral 工具链提供语义能力,如死代码消除、未使用依赖检测、CVE 可达性分析等,有望提升整个 Python 生态的开发效率。

❓

Q&A

ty 是什么?它由谁开发?

ty 是 Astral 用 Rust 编写的极速 Python 类型检查器与语言服务器,是 mypy、Pyright 等工具的替代品。

ty 的速度比 mypy 和 Pyright 快多少?

在没有缓存的情况下,ty 比 mypy 和 Pyright 快 10 到 60 倍。在编辑器中,重新计算诊断信息仅需 4.7 毫秒,比 Pyright 快 80 倍,比 Pyrefly 快 500 倍。

ty 如何实现极快的编辑器内更新?

ty 的整个架构围绕“增量性”构建,当用户编辑文件或修改函数时,只重新运行必要的计算,从而实现极快的实时更新。

ty 支持哪些编辑器功能?

ty 语言服务器支持现代语言服务器的所有预期功能,包括转到定义、符号重命名、自动补全、自动导入、语义语法高亮、内联提示等,并可在任何实现 LSP 的编辑器中运行。

ty 的 Beta 版发布后,下一步计划是什么?

Beta 版发布后,优先支持早期采用者,然后致力于明年发布稳定版。Beta 到稳定版之间的工作重点包括:稳定性和错误修复、完成 Python 类型规范的长尾功能、以及为 Pydantic 和 Django 等流行第三方库提供一流支持。

ty 采用什么许可证?如何安装?

ty 采用 MIT 许可证。可以通过 uv 安装:uv tool install ty@latest,或通过 VS Code 扩展安装。

🏷️

标签

➡️

继续阅读