parameters: (logical_line, tokens)
docstring: Require spaces around the '=' sign in function arguments.
docstring_summary: Require spaces around the '=' sign in function arguments.
docstring_tokens: Require spaces around the = sign in function arguments .
function: def whitespace_around_named_parameter_equals_positive(logical_line, tokens):
      """Require spaces around the '=' sign in function arguments."""
      # N.B. Nominal `pycodestyle` includes a method named
      # `whitespace_around_named_parameter_equals`, which is the negative case.
      # Python3 struggles with a same-named method because it does not want to
      # order functions (the sorting tuple is `(name, function, args)`).
      # We must avoid colliding with this name, and ensure this takes precedence.
      parens = 0
      no_space = False
      prev_end = None
      annotated_func_arg = False
      in_def = logical_line.startswith('def')
      message = "B251 expected spaces around keyword / parameter equals"
      for token_type, text, start, end, line in tokens:
          if token_type == pycodestyle.tokenize.NL:
              continue
          if no_space:
              no_space = False
              if start == prev_end:
                  yield (prev_end, message)
          if token_type == pycodestyle.tokenize.OP:
              if text in '([':
                  parens += 1
              elif text in ')]':
                  parens -= 1
              elif in_def and text == ':' and parens == 1:
                  annotated_func_arg = True
              elif parens and text == ',' and parens == 1:
                  annotated_func_arg = False
              elif parens and text == '=' and not annotated_func_arg:
                  no_space = True
                  if start == prev_end:
                      yield (prev_end, message)
              if not parens:
                  annotated_func_arg = False
  
          prev_end = end
function_tokens: def whitespace_around_named_parameter_equals_positive ( logical_line , tokens ) : # N.B. Nominal `pycodestyle` includes a method named # `whitespace_around_named_parameter_equals`, which is the negative case. # Python3 struggles with a same-named method because it does not want to # order functions (the sorting tuple is `(name, function, args)`). # We must avoid colliding with this name, and ensure this takes precedence. parens = 0 no_space = False prev_end = None annotated_func_arg = False in_def = logical_line . startswith ( 'def' ) message = "B251 expected spaces around keyword / parameter equals" for token_type , text , start , end , line in tokens : if token_type == pycodestyle . tokenize . NL : continue if no_space : no_space = False if start == prev_end : yield ( prev_end , message ) if token_type == pycodestyle . tokenize . OP : if text in '([' : parens += 1 elif text in ')]' : parens -= 1 elif in_def and text == ':' and parens == 1 : annotated_func_arg = True elif parens and text == ',' and parens == 1 : annotated_func_arg = False elif parens and text == '=' and not annotated_func_arg : no_space = True if start == prev_end : yield ( prev_end , message ) if not parens : annotated_func_arg = False prev_end = end