Flake8: игнорировать специальное предупреждение для всего файла
В документах " Игнорирование ошибок" в настоящее время указан способ игнорирования конкретной ошибки для конкретной строки:
example = lambda: 'example' # noqa: E731
... и способ игнорирования всех ошибок для всего файла:
# flake8: noqa
from foo import unused
function_that_doesnt_exist()
x = 1+ 2
... и несколько способов, либо через конфигурацию, либо через параметры командной строки, глобально отключить определенную ошибку во всем проекте.
Но что, если я хочу игнорировать конкретную ошибку во всем отдельном файле - например, отключить предупреждения о неиспользуемом импорте в __init__.py
файле __init__.py
который просто импортирует несколько классов, чтобы код из других пакетов мог импортировать их от этого в свою очередь? Документы, похоже, не намекают на какой-либо синтаксис для этого. Является ли это возможным?
Ответы
Ответ 1
Игнорирование определенных ошибок было реализовано только для отдельных строк, но не для отдельных файлов.
Эта функция отслеживается и обсуждается в выпуске № 89, из которого было принято только предложение для каждой строки. Совсем недавно в этом запросе на слияние была предложена реализация, за которой никто не следил.
Тем не менее, появились некоторые расширения для решения этой проблемы:
-
flake8-per-file-ignores
позволяет игнорировать определенные предупреждения/ошибки для определенных файлов через запись в конфигурации.
-
flake8-putty
утверждает, что делает то же самое, но некоторое время не обновлялся.
Ответ 2
Начиная с Flake8 3.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