Flake8: Ignore specific warning for entire file


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
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?

Answer rating: 108

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 =

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".