PyCQA/pycodestyle

E126: asks for less indent on one-line protocol functions

Open

#956 opened on Aug 5, 2020

View on GitHub
 (1 comment) (1 reaction) (0 assignees)Python (809 forks)batch import
help wantedneeds patchneeds test

Repository metrics

Stars
 (4,941 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

from typing import Protocol


class _LongPollProtocol(Protocol):
    def __call__(
            self,
            foo: str,
            bar: int,
    ) -> int: ...

running pycodestyle on this yields:

$ ~/opt/venv/bin/pycodestyle --version
2.6.0
$ ~/opt/venv/bin/pycodestyle t.py --ignore=E704
t.py:6:13: E126 continuation line over-indented for hanging indent

but interestingly, this indentation is ok if I move the Ellipsis to the next line

from typing import Protocol


class _LongPollProtocol(Protocol):
    def __call__(
            self,
            foo: str,
            bar: int,
    ) -> int:
        ...

I intentionally want to indent the arguments two indents to differentiate between the body of code

Contributor guide