0

使用命令行和 yapf 运行文件时,我的标签如下:

-i --verbose --style “谷歌”

当使用与 args 相同的参数进行预提交时,我的预提交挂钩始终返回“通过”。

这是针对相同文件针对相同更改进行测试的,因此我预计会得到类似的结果。如果我 exclude --style "google",我的 pre-commit 钩子至少会改变我的文件格式,但不会改变我想要的样式。

有人可以告诉我我在 args 上做错了什么吗?

包含示例的 Python 文件:

def hello_world():
    print("hello world")




    if 5 == 5: print("goodbye world")

.pre-commit-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 文件并将我的 .pre-commit-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-commit.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 和其他任意词来代替 google。这些都导致Passed. 也许在我这边有些东西样式 arg 被忽略并导致所有 yapf 失败?

4

0 回答 0