Как прекратить 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 по-прежнему игнорирует длину.