是否可以 运行 mypy 预提交而不使其失败?
Is it possible to run mypy pre-commit without making it fail?
我想为团队添加以下内容到 pre-commit:
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v0.720'
hooks:
- id: mypy
args: [--ignore-missing-imports]
我的团队担心这可能过于严格。为了逐步介绍,我希望这个钩子不会使提交失败,而只是为了显示问题。这可能吗?
可以,但我不建议这样做——警告噪音可能会让您的整个团队忽略整个输出和整个工具
这是你如何做这样的事情(请注意,由于 bash
它降低了可移植性——主要是因为框架有意不建议这样做)
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.720
hooks:
- id: mypy
verbose: true
entry: bash -c 'mypy "$@" || true' --
两件作品使这项工作:
verbose: true
始终生成输出——此选项实际上仅用于调试目的,但您可以始终打开它(尽管它可能很吵/烦人)
bash
+ || true
-- 忽略退出代码
免责声明:我是预提交的作者
另请注意,您可以通过设置环境变量SKIP
来temporarily disable hooks。例如:
SKIP=flake8 git commit -m 'fix thing - work in progress'
当您只想进行稍后将修复的本地“检查点”提交时,这尤其有用。
专门针对 mypy 的旁注:以这样的非阻塞方式使用 mypy 可能存在大问题。如果您允许合并带有类型错误的提交,其他人将开始在他们的提交前检查中看到这些类型错误。
当开发人员进行进一步更改时,会混淆出现的 mypy 错误是以前存在的,还是由于他们的进一步更改。这可能是 frustration/confusion 的秘诀,也是允许进一步积累类型错误的秘诀。
我认为 using mypy with an existing codebase 上的 mypy 指南是非常好的建议。
如果您只是需要暂时跳过 mypy 检查以便检查您的工作、推送 PR 以进行初步审查或其他任何操作,您可以按照上面提到的 SKIP=mypy
进行操作。
我想为团队添加以下内容到 pre-commit:
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v0.720'
hooks:
- id: mypy
args: [--ignore-missing-imports]
我的团队担心这可能过于严格。为了逐步介绍,我希望这个钩子不会使提交失败,而只是为了显示问题。这可能吗?
可以,但我不建议这样做——警告噪音可能会让您的整个团队忽略整个输出和整个工具
这是你如何做这样的事情(请注意,由于 bash
它降低了可移植性——主要是因为框架有意不建议这样做)
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.720
hooks:
- id: mypy
verbose: true
entry: bash -c 'mypy "$@" || true' --
两件作品使这项工作:
verbose: true
始终生成输出——此选项实际上仅用于调试目的,但您可以始终打开它(尽管它可能很吵/烦人)bash
+|| true
-- 忽略退出代码
免责声明:我是预提交的作者
另请注意,您可以通过设置环境变量SKIP
来temporarily disable hooks。例如:
SKIP=flake8 git commit -m 'fix thing - work in progress'
当您只想进行稍后将修复的本地“检查点”提交时,这尤其有用。
专门针对 mypy 的旁注:以这样的非阻塞方式使用 mypy 可能存在大问题。如果您允许合并带有类型错误的提交,其他人将开始在他们的提交前检查中看到这些类型错误。
当开发人员进行进一步更改时,会混淆出现的 mypy 错误是以前存在的,还是由于他们的进一步更改。这可能是 frustration/confusion 的秘诀,也是允许进一步积累类型错误的秘诀。
我认为 using mypy with an existing codebase 上的 mypy 指南是非常好的建议。
如果您只是需要暂时跳过 mypy 检查以便检查您的工作、推送 PR 以进行初步审查或其他任何操作,您可以按照上面提到的 SKIP=mypy
进行操作。