The Ignoring Errors docs currently list a way of ignoring a particular error for a particular line:
example = lambda: 'example' # noqa: E731
... and a way of ignoring all errors for an entire file:
# flake8: noqa
from foo import unused
function_that_doesnt_exist()
x = 1+ 2
... and a couple of ways, either through config or through command-line options, of disabling a particular error globally across an entire project.
But what if I want to ignore a particular error across the entirety of a single file - for instance, to disable warnings about unused imports in an __init__.py
barrel file that just imports a bunch of classes so that code from other packages can import them from it in turn? The docs don't seem to hint at any syntax for this. Is it possible?
As of Flake8 3.7.0 you can do this using the --per-file-ignores
option.
Command line example
flake8 --per-file-ignores='project/__init__.py:F401 setup.py:E121'
Or in your config file
per-file-ignores =
project/__init__.py:F401
setup.py:E121
other_project/*:W9
See the documentation here: http://flake8.pycqa.org/en/latest/user/options.html?highlight=per-file-ignores#cmdoption-flake8-per-file-ignores
It is not possible to place a noqa
comment for specific codes at the top of a file like you can for individual lines. # flake8: noqa: F401
may at first appear to work, but it's actually being detected as only # flake8: noqa
, which means "ignore all messages in the file".
Before version 3.7.0, ignoring specific errors was only implemented per-line but not per-file.
The feature is being tracked and discussed in issue #89 from which only the per-line proposal has been adopted. More recently, an implementation has been proposed in this merge request, which nobody has followed up on.
However, some extensions have emerged to address the problem:
flake8-per-file-ignores
lets you ignore specific warning/errors for specific files via an entry in the config.flake8-putty
claims to do the same, but hasn't been updated for a while.
来源:https://stackoverflow.com/questions/48153886/flake8-ignore-specific-warning-for-entire-file