SuperAPI AI 工具集

ty

编程与开发

查看项目

更新于 10-15 22:15

技能介绍

用途:ty 用于对 Python 代码做类型检查,并可作为编辑器语言服务器(LSP)。适用于 pyproject.toml 中存在 [tool.ty] 或 ty.toml 的项目,以及需要为编辑器配置 Python LSP 的场景。对重度依赖 mypy 插件(Pydantic、Django、SQLAlchemy)的项目建议暂缓,ty 无插件系统,官方走框架一等支持路线。

主要能力:命令行 ty check 可检查当前目录、指定文件或目录;支持 --error/--warn/--ignore 调整规则严重级别,--python-version、--python-platform、--python 指定目标环境,--output-format 支持 full、concise、github、gitlab、junit,--watch 监听变更,--add-ignore 自动为现有错误添加忽略注释。ty explain rule 可列出或解释规则。ty server 启动 LSP,提供跳转定义、查找引用、自动补全与导入、重命名、内联提示、悬停。配置读取 ty.toml(优先)或 pyproject.toml 的 [tool.ty],可设置 environment、rules、analysis、src、terminal 及按文件 overrides。忽略注释推荐 # ty: ignore[rule-name],也兼容 # type: ignore。

用法示例:uvx ty check、uv run ty check、ty check。退出码 0 无错误、1 有类型错误、2 CLI 或配置错误。

特点:区分 Any 与 Unknown,支持交叉类型 A & B,基于 Salsa 实现细粒度增量。与 ruff 互补,ruff 负责 lint 与格式化,ty 负责类型检查与 LSP。

限制:0.0.x 版本间可能有破坏性变更,无稳定 API;无插件系统、无 strict 模式(可用 ruff ANN 规则)、无 pre-commit 钩子、不支持 TypeVarTuple/Unpack 与 TypedDict 函数式语法、忽略 PEP 723 脚本依赖、monorepo 支持有限。使用前建议核对 ty --version 与 ty check --help。