Astral 是高性能 Python 工具的开发者,包括 uv(包管理器)、Ruff(代码检查/格式化工具)以及 ty(类型检查器)。Astral 宣布 uv 与 ty 之间实现了实验性集成。此次集成的目标是创建一个更具凝聚力的工具链,让这些工具能够共享对项目环境和依赖项的统一理解。虽然每个工具仍可独立使用并与更广泛的生态系统互操作,但这种联合集成旨在解锁任何单一工具都无法独立提供的功能。

这张图片代表了 Astral 的 uv 和 ty 工具之间实验性集成的核心公告。
此次集成专门解决了 PEP 723 脚本带来的挑战,该标准允许 Python 脚本通过内联元数据声明依赖项和版本要求。此前,虽然 uv 可以利用这些元数据来准备环境,但 ty 缺乏原生方式来自动发现并根据这些特定要求对脚本进行检查。通过新的集成,ty 现在可以利用 uv 为这些脚本准备所需的环境。这使得即使脚本与周围项目有不同的要求时,也能实现准确的类型检查、代码导航和编辑器补全(例如悬停信息和“转到定义”)。在 VS Code 等编辑器中,ty 现在可以在后台自动调用 uv 来设置这些环境。
此外,此次更新还通过 'uv check' 命令引入了统一的诊断接口。运行 'uv check' 将自动准备项目环境、安装所需的依赖项,并执行 ty 进行类型检查。该命令还支持工作区配置,允许用户使用一致的语法检查工作区中的单个包或所有包。对于 PEP 723 脚本,可以使用 'uv check --script' 来使用脚本自身声明的依赖项进行验证。虽然目前该集成仍处于实验阶段,且需要特定版本的 uv (0.12.3+) 和 ty (0.0.76+),但 Astral 计划扩展这些功能,包括通过 Ruff 进行代码检查,以及结合 uv 的依赖知识与 ty 的代码分析来检测诸如未使用的依赖项等问题的新检查。