125

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

example = lambda: 'example'  # noqa: E731

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

# flake8: noqa

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

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

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

4

2 回答 2

127

从 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起初可能看起来有效,但实际上被检测为 only # flake8: noqa,这意味着“忽略文件中的所有消息”。

于 2019-01-31T06:15:41.693 回答
25

在 3.7.0 版本之前,忽略特定错误仅在每行而非每文件中实现。

该功能正在issue #89中进行跟踪和讨论,其中仅采用了 per-line 提案。最近,在这个合并请求中提出了一个实现,没有人跟进。

但是,已经出现了一些扩展来解决这个问题:

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

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

于 2018-01-08T16:41:09.720 回答