如何解决如何使用 pydocstyle 的 match-dir 标志过滤目录?
我想使用 pydocstyle 作为 pre-commit hook 检查项目的源代码文档字符串,即位于 /src 文件夹内的 .py 文件,当一个新的 git提交。为了仅检查 src 文件夹,我使用了 match-dir 选项,但是,它似乎不起作用并且有一个打开的 GitHub issue。
在 pydocstyle documentation on pre-commit hook usage 之后,我将 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)'
对于 configuration file 方法,我在项目的根目录创建了一个 .pydocstyle 文件,其内容如下:
[pydocstyle]
match_dir = ^(src)
当 pre-commit 运行并且 pydocstyle 检查项目中的所有文件时,这两种方法似乎对检查的目录没有影响。对此的任何帮助将不胜感激!
解决方法
预提交 passes filenames as positional arguments 到钩子
进行任何一次尝试,这意味着它将其称为:
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
的 exclude
/ files
来限制传递给底层工具的内容:
repos:
- repo: https://github.com/pycqa/pydocstyle
rev: 5.1.1
hooks:
- id: pydocstyle
files: ^src/
免责声明:我是 pre-commit 的作者
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。