При поиске в проекте 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
в конце: игнорировать определенные ошибки в строке