При поиске в проекте Python я нашел несколько строк с комментариями # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
Что означает noqa в Python? Это специфично только для Python?
При поиске в проекте Python я нашел несколько строк с комментариями # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
Что означает noqa в Python? Это специфично только для Python?
Добавление # noqa в строку означает, что линтер (программа, которая автоматически проверяет качество кода) не должен проверять эту строку. Любые предупреждения, которые мог сгенерировать код, будут игнорироваться.
Эта строка может иметь что-то, что "выглядит плохо" для линтера, но разработчик понимает и намеревается сделать это по какой-то причине.
Для получения дополнительной информации см. Документацию Flake8 по выбору и игнорированию нарушений.
Как правило, в программировании на Python игнорируются предупреждения PEP8.
Проще говоря, строки С#noqa в конце будут игнорироваться программами linter и не будут выдавать никаких предупреждений.
Знаешь что? Даже Гвидо ван Россум (создатель Python) задавал этот вопрос раньше: D
Раньше это был "nopep8", но когда Flake8 и Pep8 хотели общий квалификатор, @florentx предложил "NoQA", как в "No Quality Assurance" (iirc), и он застрял.
Некоторые основные применения # noqa (с flake8):
# flake8: noqa: файлы, содержащие эту строку, пропускаются# noqa в конце: не будут выдавать предупреждения# noqa: <error>, например, # noqa: E234 в конце: игнорировать определенные ошибки в строке