当使用命令行和yapf运行文件时,我的标记如下:
-i --冗长的--风格的"google“
当使用上述相同的args进行预提交时,我的预提交钩子总是返回"Pass“。
这是在同一个文件中测试相同的更改,所以我希望得到类似的结果。如果我排除了--style "google"
,我的预提交钩子至少会改变我的文件的格式,但不会改变我想要它的样式。
有人能告诉我我的火箭火箭出了什么问题吗?
包含一个示例的Python文件:
def hello_world():
print("hello world")
if 5 == 5: print("goodbye world")
.预提交-config.yaml文件:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
sha: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- repo: https://github.com/google/yapf
rev: v0.31.0
hooks:
- id: yapf
name: "yapf"
在提交时,我的文件将更改,而预提交已告诉我yapf已将我的文件更改为:
def hello_world():
print("hello world")
if 5 == 5: print("goodbye world")
如果我回到同一个python文件并将.python config.yaml文件更新为以下文件:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
sha: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- repo: https://github.com/google/yapf
rev: v0.31.0
hooks:
- id: yapf
name: "yapf"
args: [--style "google" ]
运行提交将提供Pass
,而不是进行任何更改,甚至是以前的更改。
编辑1:.pre-connec.config.yaml文件更新为:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
sha: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- repo: https://github.com/google/yapf
rev: v0.31.0
hooks:
- id: yapf
name: "yapf"
args: [--style, google]
运行pre-commit run
只显示Passed
而不是重新格式化。我也尝试过使用pep8和其他任意的词来代替谷歌。这些都会导致Passed
。也许有什么东西在我的一端,风格arg被忽视,并导致所有雅普夫失败?
发布于 2022-09-28 01:23:15
这篇文章是一段时间前写的,但对于将来阅读它的其他人来说,我可以控制yapf样式,在我的父目录中使用.style.yapf预提交,如yapf文档:https://github.com/google/yapf中所概述的那样。
这是我用的.style.yapf
[style]
based_on_style = google
https://stackoverflow.com/questions/70278167
复制