Question

flake8: Ignore only F401 rule in entire file

Is there a way to get flake8 to ignore only a specific rule for an entire file? Specifically, I'd like to ignore just F401 for an entire file.

I have a file like __init__.py where I import symbols that are never used within that file. I'd rather not add # noqa to each line. I can add # flake8: noqa to the beginning of the file, but that ignores all rules. I'd like to ignore just the F401 rule.

 46  25949  46
1 Jan 1970

Solution

 67

there is not currently a way to do what you're asking with only source inside the file itself

the current suggested way is to use the per-file-ignores feature in your flake8 configuration:

[flake8]
per-file-ignores =
    */__init__.py: F401

Note that F401 in particular can be solved in a better way, any names that are exposed in __all__ will be ignored by pyflakes:

from foo import bar  # would potentially trigger F401
__all__ = ('bar',)  # not any more!

(disclaimer: I'm the current maintainer of flake8 and one of the maintainers of pyflakes)

2019-12-21

Solution

 9

According to the Documentation it's as easy as changing # noqa by:

# noqa: F401
2019-12-04