def f1(a,  # S100
       b):  # S101
    pass


def f2(
    a,
    b  # S101
):
    pass


def f3(
    a,
    b,
):
    pass


# trailing comma after *args or **kwargs is a syntax error therefore
# we don't want to enforce it such situations


def f4(
    a,
    *args
):
    pass


def f5(
    b,
    **kwargs
):
    pass


f3(1,  # S100
   2)  # S101

f3(
    1,
    2)  # S101

f3(
    1,
    2  # S101
)

f3(
    1,
    2,
)

kwargs = {}

f5('-o',  # S100
   some_keyword_argument='./')  # S101

f5(
    b='something',
)

(
    ''.
    format())

def f1(a,  # S100
       b):  # S101
    pass


def f2(
    a,
    b  # S101
):
    pass


def f3(
    a,
    b,
):
    pass


# trailing comma after *args or **kwargs is a syntax error therefore
# we don't want to enforce it such situations


def f4(
    a,
    *args
):
    pass


def f5(
    b,
    **kwargs
):
    pass

def f6(
    *,
    d
):
    pass


f3(1,  # S100
   2)  # S101

f3(
    1,
    2)  # S101

f3(
    1,
    2  # S101
)

f3(
    1,
    2,
)

kwargs = {}

f5('-o',  # S100
   some_keyword_argument='./')  # S101

f5(
    b='something',
)

(
    ''.
    format())

Add a test for functions with keyword only arguments
Add a test for functions with keyword only arguments

This adds a test to ensure that no error is raised if a trailing comma
is missing from a function definition that has keyword only arguments.

Reviewed-by: Jakub Stasiak <1d3764b91b902f6b45836e2498da81fe35caf6d6@stasiak.at>

  def f1(a,  # S100
         b):  # S101
      pass
  
  
  def f2(
      a,
      b  # S101
  ):
      pass
  
  
  def f3(
      a,
      b,
  ):
      pass
  
  
  # trailing comma after *args or **kwargs is a syntax error therefore
  # we don't want to enforce it such situations
  
  
  def f4(
      a,
      *args
  ):
      pass
  
  
  def f5(
      b,
      **kwargs
  ):
      pass
  
+ def f6(
+     *,
+     d
+ ):
+     pass
+ 
  
  f3(1,  # S100
     2)  # S101
  
  f3(
      1,
      2)  # S101
  
  f3(
      1,
      2  # S101
  )
  
  f3(
      1,
      2,
  )
  
  kwargs = {}
  
  f5('-o',  # S100
     some_keyword_argument='./')  # S101
  
  f5(
      b='something',
  )
  
  (
      ''.
      format())
  
Add a test for functions with keyword only arguments
## Code Before:
def f1(a,  # S100
       b):  # S101
    pass


def f2(
    a,
    b  # S101
):
    pass


def f3(
    a,
    b,
):
    pass


# trailing comma after *args or **kwargs is a syntax error therefore
# we don't want to enforce it such situations


def f4(
    a,
    *args
):
    pass


def f5(
    b,
    **kwargs
):
    pass


f3(1,  # S100
   2)  # S101

f3(
    1,
    2)  # S101

f3(
    1,
    2  # S101
)

f3(
    1,
    2,
)

kwargs = {}

f5('-o',  # S100
   some_keyword_argument='./')  # S101

f5(
    b='something',
)

(
    ''.
    format())

## Instruction:
Add a test for functions with keyword only arguments
## Code After:
def f1(a,  # S100
       b):  # S101
    pass


def f2(
    a,
    b  # S101
):
    pass


def f3(
    a,
    b,
):
    pass


# trailing comma after *args or **kwargs is a syntax error therefore
# we don't want to enforce it such situations


def f4(
    a,
    *args
):
    pass


def f5(
    b,
    **kwargs
):
    pass

def f6(
    *,
    d
):
    pass


f3(1,  # S100
   2)  # S101

f3(
    1,
    2)  # S101

f3(
    1,
    2  # S101
)

f3(
    1,
    2,
)

kwargs = {}

f5('-o',  # S100
   some_keyword_argument='./')  # S101

f5(
    b='something',
)

(
    ''.
    format())
