Mar*_*oma 5 pre-commit mypy pre-commit.com
我想为团队添加以下内容以进行预提交:
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v0.720'
hooks:
- id: mypy
args: [--ignore-missing-imports]
Run Code Online (Sandbox Code Playgroud)
我的团队担心这可能太严格了。为了逐步介绍,我希望这个钩子不会使提交失败,而只是为了显示问题。那可能吗?
Ant*_*ile 18
你可以,但我不建议这样做——警告噪音可能会让你的整个团队忽略整个输出和整个工具
这是您将如何做这样的事情(请注意,由于bash- 主要是因为框架故意不建议这样做,所以它降低了可移植性)
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.720
hooks:
- id: mypy
verbose: true
entry: bash -c 'mypy "$@" || true' --
Run Code Online (Sandbox Code Playgroud)
两件作品使这项工作:
verbose: true 始终产生输出——此选项实际上仅用于调试目的,但您可以始终将其打开(尽管它可能很嘈杂/烦人)bash+ || true-- 忽略退出代码免责声明:我是 pre-commit 的作者
另请注意,您可以通过设置环境变量来暂时禁用挂钩SKIP。例如:
SKIP=flake8 git commit -m 'fix thing - work in progress'
Run Code Online (Sandbox Code Playgroud)
当您只想进行稍后修复的本地“检查点”提交时,这特别有用。
特别是关于 mypy 的旁注:以这样的非阻塞方式使用 mypy 可能存在一个大问题。如果您允许合并具有类型错误的提交,那么其他人将开始在其预提交检查中看到这些类型错误。
当开发人员进行进一步的更改时,令人困惑的是出现的 mypy 错误是之前存在的,还是由于他们的进一步更改而产生的。这可能会导致挫败/混乱,并且还会导致进一步的类型错误累积。
我认为关于在现有代码库中使用mypy 的 mypy 指南是非常好的建议。
如果您只是需要暂时跳过 mypy 检查,以便检查您的工作、推送 PR 进行初步审查或其他任何操作,您可以按照SKIP=mypy上面提到的方法进行操作。
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |