如果未安装插件,如何使 flake8 失败?

How to make flake8 fail if a plugin is not installed?

我使用 flake8 + flake8-docstrings 在我的一个项目中强制执行样式指南。我的 pre-commit git 挂钩中有这一行,因此如果 flake8 发现某些东西,它就会失败:

flake8 --config=setup.cfg ./ || exit 1

但是如果我的代码在 docstring 格式方面有错误并且没有安装 flake8-docstrings,这个钩子会自动通过,即使我指定 --select=flake8-docstrings--select=non-existing-plugin.

我已经阅读了 --helpman、在线文档和 Google,看起来好像不存在这样的功能。

我说的对吗?我应该 post 功能请求吗?在我的 pre-commit 脚本中添加 cludes 是否有意义,例如 greping flake8 --help for flake8-docstrings?

目前没有这样的功能 -- 但在 flake8 5.x(下一个发布版本)中会有一个(名称待定)--require-plugins 选项

你目前最好的选择是 (1) 在 pip freeze 中搜索 flake8-docstrings (2) 在 flake8 的 --version 输出中搜索 flake8-docstrings

$ pip freeze | grep flake8-docstrings
flake8-docstrings==1.6.0
$ flake8 --version | grep flake8-docstrings
4.0.1 (flake8-docstrings: 1.6.0, pydocstyle: 6.1.1, mccabe: 0.6.1,

免责声明:我是当前的 flake8 维护者

我暂时使用 flake8 --version | grep -q 'flake8-docstrings' || exit 1

另外,我发现了一个现有的功能请求 #283。读者可能会在那里找到未来的新闻。