Flake8 - 如何通过列出每个文件从项目中排除所有文件?

Flake8 - how to exclude all files from a project by listing every file?

我在遗留 Python 代码库上设置 flake8。我的想法是以类似于此的形式明确列出所有 .py 文件的名称:

[flake8]
files_to_ignore = 
  foo.py,
  bar.py,
  spam.py

然后,当运行在项目上flake8时,它会通过,因为没有要运行的文件。然后我们修复一个文件并将其从列表中排除,这意味着它会被 linter 检查。然后对每个现有文件重复该过程。

但是,我看不出有任何方法可以通过在阅读文档时明确列出所有文件来排除所有文件。有 --exclude=<patterns> 但这将忽略所有文件(我将无法按名称过滤文件)。

我发现可以通过在空行上添加一行 # flake8: noqa 来忽略整个文件。这是我唯一的选择吗?

There is --exclude=<patterns> but this will ignore all files (I won't be able to filter files by names).

单个文件名是一种模式,一种仅匹配单个文件名的模式。 exclude 的默认值是 .svn,CVS,.bzr,.hg,.git,__pycache__,.tox,它是文字文件和目录名称的序列。

只需将您的文件名列为排除模式,因为您从列表中删除个人名称时,它们将被检查。

flake8 首先测试基本文件名(无路径),然后是每个模式的绝对路径。如果您的文件名不是唯一的(出现在文件树中的多个位置),则为文件添加前缀为 */ 的相对项目路径;所以在下面的树中

project/
├── bar
│   ├── __init__.py
│   └── example.py
├── example.py
└── foo
    ├── __init__.py
    └── example.py

模式 */project/example.py*/project/foo/example.py*/project/bar/example.py 与 3 个单独的 example.py 文件完全匹配。