W1113 (keyword-arg-before-vararg)

:x: Problematic code:

def foo(x, y=None, *args):
    return [x, y, *args]

print(foo(1, 2, 3))

:heavy_check_mark: Correct code:

def foo(*args, y=None):
    return [*arg, y]

print(foo(1, 2, 3))


When defining a keyword argument before variable positional arguments, one can end up in having multiple values passed for the aforementioned parameter in case the method is called with keyword arguments.