Как я могу заставить pylint и autopep8 договориться о том, как сделать отступ для определений упакованных функций? - PullRequest
0 голосов
/ 17 ноября 2018

Как мне сделать так, чтобы префиксатор autopep8 и линтер pylint договорились о том, как сделать отступ для моего кода, не отключая форматирование / отрисовку отступов вообще? Я не против, если этопервое или второе форматирование, если я могу нажать Alt+F в VSCode и доверить вывод.

Префиксатор хочет, чтобы код был с отступом, как этот ...

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

(Для приведенного выше примера было бы лучше просто поместить объявление функции в одну строку, но это не всегда возможнобез слишком длинной линии.)

...