Flake8:忽略整个文件的特定警告


75

目前,“忽略错误”文档列出了一种忽略特定行的特定错误的方法:

example = lambda: 'example'  # noqa: E731

...以及忽略整个文件的所有错误的方法:

# flake8: noqa

from foo import unused
function_that_doesnt_exist()
x = 1+       2

...以及通过配置或命令行选项通过两种方式在整个项目中全局禁用特定错误的方法。

但是,如果我想忽略整个单个文件中的特定错误,例如,要禁用有关桶文件中未使用的导入的警告,该文件只会导入一堆类,以便其他包中的代码可以从中导入它们转?文档似乎并未暗示任何语法。可能吗?__init__.py


4
对于您的特定示例,官方推荐的方法(IIRC)是给出__all__列出导入内容的显式声明。
Ash Ash '18

Answers:


78

从Flake8 3.7.0开始,您可以使用--per-file-ignores选项执行此操作。

命令行示例

flake8 --per-file-ignores='project/__init__.py:F401 setup.py:E121'

或在您的配置文件中

per-file-ignores =
    project/__init__.py:F401
    setup.py:E121
    other_project/*:W9

请参阅此处的文档:http : //flake8.pycqa.org/en/latest/user/options.html?highlight=per-file-ignores#cmdoption-flake8-per-file-ignores

noqa像在单独的行中一样,无法在文件顶部放置针对特定代码的注释。# flake8: noqa: F401乍一看可能起作用,但实际上仅被检测为# flake8: noqa,这意味着“忽略文件中的所有消息”。


24

在版本3.7.0之前,忽略特定错误仅按行实现而不是按文件实现。

第89期中正在跟踪和讨论此功能,从中仅采用了每行建议。最近,在此合并请求中提出了一种实现方式,没有人跟进。

但是,出现了一些扩展来解决该问题:

  • flake8-per-file-ignores 通过配置中的条目,您可以忽略特定文件的特定警告/错误。

  • flake8-putty 声称做同样的事情,但有一段时间没有更新。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.