【发布时间】:2021-06-03 13:13:14
【问题描述】:
我使用flake8 和一堆插件(flake8-docstrings、flake8-isort、flake8-black)。我已将它们全部预安装到 venv。
我的 repo 将通过 pre-commit 进行检查:
- 根文件夹有两个包
- 每个都有自己的
-
pyproject.toml(配置black和isort) -
setup.cfg(配置flake8和pydocstyle)
-
├── foo
│ ├── pyproject.toml
│ ├── setup.cfg
│ └── (the package)
├── bar
│ ├── pyproject.toml
│ ├── setup.cfg
│ └── (the package)
└── venv
我想通过pre-commit 为这两个包调用flake8。
这是我目前的做法:
---
repos:
- repo: local
hooks:
- id: flake8-foo
name: Run flake8 in foo package
entry: bash -c "cd foo && flake8"
language: python
- id: flake8-bar
name: Run flake8 in bar package
entry: bash -c "cd bar && flake8"
language: python
当我运行pre-commit run --all-files 并且foo 出现错误时,它会多次打印相同的输出:
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
./path/in/foo/to/file.py:49:1: D401 First line should be in imperative mood
- 有没有更好的方法来解决这个问题?
- 不,我不同意将软件包拆分到自己的存储库中
- 如何让错误消息只打印一次?
【问题讨论】:
标签: pre-commit-hook flake8 pre-commit pre-commit.com