Как прекратить flake8 и pylint жаловаться на линию Шебанга по максимуму символов?

Я использую flake8 и pylint через ALE в VIM.

Я знаю, как отключить отдельные ошибки / предупреждения для каждого из этих линтеров в соответствующих файлах конфигурации.

Как я могу сохранить line-too-long проверяет, кроме строки shebang в начале файла (если есть)?

Если первая строка не является строкой Шебанга, она все равно должна жаловаться на слишком длинные строки.

Так что, если максимальная длина строки равна 5 (для примера), с этим файлом:

#!/run/stuff
x=3
print(x)

Они должны жаловаться на третью строку, но не на первую.

Но с этим файлом:

x = 1 + 1 + 1
# Print the result
print(x)

Стоит пожаловаться на все три строчки.

2 ответа

Решение

Благодаря Ian Stapleton Cordasco я закончил тем, что отправил патч в pycodestyle (который используется flake8), чтобы игнорировать длину линий shebang.

Так что теперь, чтобы исправить мою настройку ALE, я могу заменить скрипт pycodestyle, который использует моя копия flake8, последней версией из GitHub, и отключить проверки слишком длинной строки в pylint, оставляя их включенными в flake8/pycodestyle. Таким образом, не изменяя мои сценарии каким-либо образом, я все равно получаю указание на длину строки везде, не получая избыточных предупреждений для длинных шебангов.

Создайте файл конфигурации, выполнив pylint --generate-rcfile, см. здесь для получения дополнительной информации https://docs.pylint.org/en/1.6.0/run.html

под [MESSAGES CONTROL] раздел добавить line-too-long к списку для disable=,

Во второй строке каждого файла Python вы снова включаете line-too-long,

#!/usr/bin/env                python3
# pylint: enable=line-too-long
x=3
print(x) # make this longer than the enable line

Я установил предел линии равным 30, поэтому Pylint жалуется на строку 4. Я добавил бесполезные пробелы к линии Shebang, но Pylint по-прежнему игнорирует длину.

Другие вопросы по тегам