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

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

example = lambda: 'example'  # noqa: E731

以及忽略 所有错误的方法:

# flake8: noqa


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

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

但是,如果我想忽略整个 单身文件中的一个 特别错误——例如,在 __init__.py桶文件中禁用关于未使用导入的警告,该文件只导入一系列类,这样来自其他包的代码就可以依次导入这些类?文档似乎没有提示这个问题的任何语法。有可能吗?

62881 次浏览

在版本3.7.0之前,忽略特定错误只是实现了 每行,而不是针对每个文件。

第89期正在跟踪和讨论这一功能,只采用了每行提案。最近,在 合并请求中提出了一个实现,但是没有人跟进。

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

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

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

从 Flake83.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,这意味着“忽略文件中的 所有消息”。

更新 .flake8文件

ignore = E123,E125,H404,H405,H803 ... any other rools