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

Mar*_*ery 39 python flake8

忽略错误文档目前列出忽视了特定线路上的特定错误的方法:

example = lambda: 'example'  # noqa: E731
Run Code Online (Sandbox Code Playgroud)

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

# flake8: noqa

from foo import unused
function_that_doesnt_exist()
x = 1+       2
Run Code Online (Sandbox Code Playgroud)

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

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

Ros*_*hur 28

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

命令行示例

flake8 --per-file-ignores='project/__init__.py:F401 setup.py:E121'
Run Code Online (Sandbox Code Playgroud)

或在您的配置文件中

per-file-ignores =
    project/__init__.py:F401
    setup.py:E121
    other_project/*:W9
Run Code Online (Sandbox Code Playgroud)

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

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

  • 要将“per-file-ignores”条目存储在“tox.ini”文件中,请将其放在“[flake8]”部分中。 (3认同)

Arm*_*ius 18

忽略特定错误只能实现每行而不是每个文件.

问题正在问题#89中进行跟踪和讨论,其中仅采用了每行提案.最近,在这个合并请求中提出了一个实现,没有人跟进.

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

  • 来自“flake8-per-file-ignores”存储库:“此 flake8 扩展已停止,取而代之的是 flake8 3.7.0 及更高版本中内置的“per-file-ignores”选项。但请注意,内置选项使用不同的语法。” 这是 flake8 网站有关该选项的文档的版本控制[链接](https://flake8.pycqa.org/en/4.0.1/user/options.html#cmdoption-flake8-per-file-ignores)。 (4认同)

bag*_*ard 7

我实现了一个 flake8 插件,flake8-in-file-ignores允许在文件本身中添加“忽略”规则(与内置配置方法相反),该插件使用以下语法

# flake8-in-file-ignores: noqa: E731,E123
Run Code Online (Sandbox Code Playgroud)