如何用 ty check --fix 自动应用可修复项?
如何用 ty check --fix 自动应用可修复项【免费下载链接】tyAn extremely fast Python type checker and language server, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/ty2/tyty 是一个用 Rust 编写的 Python 类型检查器。当你运行ty check报出一批类型诊断后其中一部分问题比如TypedDict键名拼写错误ty 已经能给出修复建议此时不需要逐条手改给check命令加上--fix参数ty 会直接把这些可自动修复的诊断对应的改动写回你的源码文件。本文围绕这条路径展开先确认哪些诊断可修复再执行ty check --fix最后用退出码验证结果。准备条件安装 ty按 安装文档 选择一种方式。最快的是不安装直接运行uvx ty check如果想固定项目版本把它加为开发依赖后用uv run调用uv add --dev ty uv run ty也可以用uv tool install tylatest全局安装。--fix参数是在 0.0.31 版本加入的见 CHANGELOG“Add--fixmode to enable auto-fix for diagnostics”。ty 目前处于 beta、采用0.0.x版本管理如果你用的是更早的版本ty check --help里不会看到--fix需要先升级。确认环境能被发现ty 需要找到你的 Python 环境来解析第三方导入它会依次查找激活的虚拟环境VIRTUAL_ENV、项目根目录或当前目录下名为.venv的虚拟环境再回退到PATH中的python3/python找不到时可以用--python显式指定解释器路径。在 uv 项目中用uv run ty check可以确保 ty 找到项目依赖。先跑一次 ty check确认哪些诊断可修复在改动任何文件之前先不带--fix跑一次ty check这会检查当前目录在项目内则是从pyproject.toml所在目录起下的所有 Python 文件。ty 的诊断包含源码片段、注解和解释并且“有时还会提供如何修复所报告问题的建议”诊断文档。例如TypedDict的键名拼错时ty 会建议正确的拼写对invalid-key这类诊断ty 附带的是可应用的修复。这一步的作用是先看清楚哪些诊断带有可自动应用的修复哪些只能提示而无法自动改。没有附带修复的诊断--fix不会动它们之后仍需手动处理或使用 suppression 注释 处理。如果只想限定范围可以把具体路径作为参数传入type-checking 文档ty check example.py执行 ty check --fix 应用可修复项注意副作用--fix会直接修改你项目中的 Python 源码文件。文档没有提供“只预览、不落盘”的--fix模式所以建议在可以用版本控制或其他方式检查差异的工作树上执行比如 git 管理的项目中先确认工作区状态这样改完可以逐行核对。确认无误后执行ty check --fixCLI 参考中对--fix的说明是 “Apply fixes to resolve errors”cli 参考。它和check其余参数一样接受路径参数因此也可以只对项目的一部分自动修复ty check --fix example.py验证结果修复写回后重新跑一次不带--fix的检查来确认剩余问题ty check判断依据用 退出码文档 中的定义退出码含义0未发现 severity 为warning或更高的违规1发现了 severity 为warning或更高的违规2无效的 CLI 选项、无效配置或 IO 错误101内部错误如果所有可修复项都被处理、且没有其他 warning 及以上的诊断退出码为0仍为1时说明还有剩余诊断回到ty check的输出里逐个查看——剩下的正是没有自动修复、需要手动改的那部分。在脚本或 CI 中还可以用文档给出的退出码开关调整判定--error-on-warning让任何 warning 级诊断都返回1--exit-zero-on-warning则让只有 error 级诊断才返回1。注意--error-on-warning不能与--exit-zero或--exit-zero-on-warning同时使用。限制与替代路径只有部分诊断带修复ty check --fix只处理“可自动修复”的那部分诊断文档没有列出完整的可修复规则清单哪些诊断带修复以ty check输出中实际给出的修复建议为准。编辑器内等价操作如果你在使用支持语言服务器的编辑器同样的修复可以通过 LSP 的textDocument/codeAction请求以 quick fix 的形式应用language server 文档、诊断文档。这适合只想改当前文件里个别位置、不想跑全项目--fix的情况。修复后持续检查改完代码后可以用ty check --watch进入增量监视模式文件变化时自动重查受影响及其依赖的文件type-checking 文档。【免费下载链接】tyAn extremely fast Python type checker and language server, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/ty2/ty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →