Skip to content

W504: positional only / keyword only argument marker at end of long line #951

Open
@rharish101

Description

@rharish101

Configuraton:

  • OS: Arch Linux
  • pycodestyle version: 2.6.0
  • Python version: 3.8.3
  • Installation source: Arch Linux packages

W504 (line break after binary operator) shows up when the slash that indicates positional-only arguments (PEP 570) is followed by a newline. For example:

def really_long_name_for_a_function(
    very_long_argument_1, very_long_argument_2, /
):
    pass

pycodestyle thinks that the slash is a binary operator. I can, however, silence it using a comma after the slash, as follows:

def really_long_name_for_a_function(
    very_long_argument_1, very_long_argument_2, /,
):
    pass

I think this is an issue, as the slash isn't a binary operator, and the comma seems like a workaround for arguments on a single line than good practice (at least in this case).

Activity

changed the title [-]W504 on PEP570 slash[/-] [+]W504: positional only argument at end of long line[/+] on Jul 14, 2020
asottile

asottile commented on Jul 14, 2020

@asottile
Member

this also triggers with keyword-only arguments:

$ cat t.py 
def really_long_name_for_a_function(
    very_long_argument_1, very_long_argument_2, *
):
    pass
$ ~/opt/venv/bin/pycodestyle t.py --select=W503,W504
t.py:2:49: W504 line break after binary operator
changed the title [-]W504: positional only argument at end of long line[/-] [+]W504: positional only / keyword only argument marker at end of long line[/+] on Jul 14, 2020
DevilXD

DevilXD commented on Apr 2, 2021

@DevilXD

Just ran into this myself. Simple snippet for reproduction:

def func1(arg1, arg2, arg3, /):  # no error
    pass


def func2(
    arg1, arg2, arg3, /  # W504 line break after binary operator
):
    pass
sigmavirus24

sigmavirus24 commented on Apr 2, 2021

@sigmavirus24
Member

Thanks @DevilXD I think we already had enough examples for reproduction though and don't need further ones.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @sigmavirus24@asottile@DevilXD@rharish101

      Issue actions

        W504: positional only / keyword only argument marker at end of long line · Issue #951 · PyCQA/pycodestyle