Как я могу заставить pylint и autopep8 договориться о том, как сделать отступ для определений упакованных функций?
Как я могу сделать преттификатор autopep8
и линтер pylint
согласны с тем, как сделать отступ для моего кода, не отключая форматирование / линтинг вообще? Я не против, если это первое или второе форматирование, пока я могу нажать Alt+F
в VSCode и доверяйте выводу.
Prettifier хочет, чтобы код был с отступом, как это...
def sum(
a: int,
b: int
) -> int:
"""Return the sum of a and b."""
return a + b
... но линтеру так хочется.
def sum(
a: int,
b: int
) -> int:
"""Return the sum of a and b."""
return a + b
Стандарт PEP8 перечисляет это как способ форматирования функции, но не упоминает, как делать отступ, когда закрывающая скобка помещается в отдельную строку. Я действительно предпочитаю иметь дополнительный разрыв строки, потому что это помещает выходной формат в собственную строку, уменьшает необходимость иметь пустую строку в качестве первой строки в теле функции. Я немного предпочитаю первый вариант выше, так как этот выравнивает закрывающую скобку со строкой, которая должна открывать одну. Google Python Style Guide рекомендует первый пример отступа при использовании подсказок типа.
def sum(
a: int,
b: int) -> int:
"""Return the sum of a and b."""
return a + b
(Для приведенного выше примера было бы лучше просто поместить объявление функции в одну строку, но это не всегда возможно без слишком длинной строки.)
1 ответ
Вы можете перейти на последнюю версию pylint.
bad-continuation
и
bad-whitespace
были удалены из pylint в версии
2.6.0
. Команда pylint считает, что
<tcode id="273234"></tcode> или же
<tcode id="273235"></tcode> может помочь вам с форматированием лучше, чем Pylint.
В более общем плане, я думаю, что если вы используете автоформатер, вы можете отключить сообщения pylint о форматировании.