1

当进行新的 git 提交时,我想使用pydocstyle作为预提交挂钩来检查项目的源代码文档字符串,即位于/src文件夹中的 .py 文件。为了只检查src文件夹,我使用了match-dir选项,但是,它似乎不起作用,并且存在一个打开的GitHub 问题

按照关于 pre-commit hook usage 的 pydocstyle 文档,我将 pydocstyle 添加到.pre-commit-config.yaml文件中,如下所示:

repos:
- repo: https://github.com/pycqa/pydocstyle
  rev: 5.1.1
  hooks:
  - id: pydocstyle

从这里我尝试了两种方法来配置match-dir选项:作为命令行参数,以及在配置文件中。为了match-dir作为命令行参数传递,我在.pre-commit-config.yaml中使用了args键,如下所示:

repos:
- repo: https://github.com/pycqa/pydocstyle
  rev: 5.1.1
  hooks:
  - id: pydocstyle
    args:
    - --match-dir='^(src)'

对于配置文件方法,我在项目的根目录下创建了一个.pydocstyle文件,内容如下:

[pydocstyle]
match_dir = ^(src)

这两种方法似乎对运行预提交时检查的目录没有影响,并且 pydocstyle 检查项目中的所有文件。对此的任何帮助将不胜感激!

4

1 回答 1

1

预提交将文件名作为位置参数传递给钩子

采取任何一种尝试,这意味着它将其称为:

pydocstyle --match-dir=^(src) file1.py file2.py src/file1.py src/file2.py

或者

# with the configuration adjacent
pydocstyle file1.py file2.py src/file1.py src/file2.py

您会注意到pydocstyle始终运行传递给它的文件,独立于--match-dir(仅在递归时使用)

您可以使用pre-commit's exclude/files来限制传递给底层工具的内容:

repos:
- repo: https://github.com/pycqa/pydocstyle
  rev: 5.1.1
  hooks:
  - id: pydocstyle
    files: ^src/

免责声明:我是 pre-commit 的作者

于 2020-12-28T17:08:07.460 回答