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

时间:2019-01-22 20:31:37

标签: python lint flake8

我正在旧的Python代码库上设置flake8。我的想法是以类似于以下形式的形式显式列出所有.py文件的名称:

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

然后,在项目上运行flake8时,它将通过,因为没有文件可运行。然后,我们修复单个文件并将其从列表中排除,这意味着文件将由短绒检查。然后对每个现有文件重复该过程。

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

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

1 个答案:

答案 0 :(得分:3)

  

--exclude=<patterns>,但这将忽略所有文件(我将无法按名称过滤文件)。

单个文件名是一个模式,该模式仅与单个文件名匹配。 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文件完全匹配。