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

时间:2018-01-08 16:02:14

标签: python flake8

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

example = lambda: 'example'  # noqa: E731

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

# flake8: noqa

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

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

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

2 个答案:

答案 0 :(得分:14)

在3.7.0版之前,忽略特定错误仅实现了per-line,而不是按文件实现。

正在issue #89中跟踪和讨论该功能,其中仅采用了每行提案。最近,this merge request提出了一项实施,没有人跟进。

然而,出现了一些扩展来解决这个问题:

答案 1 :(得分:12)

从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

在此处查看文档:{​​{3}}

不可能像文件中的每一行一样在文件顶部放置noqa注释以用于特定代码。 # flake8: noqa: F401乍看起来似乎有用,但是实际上仅被检测为# flake8: noqa,这意味着“忽略文件中的所有条消息”。