parameters: (
          self, extra_end_rules: t.Optional[t.Tuple[str, ...]] = None
      )
return_statement: return False
docstring: Are we at the end of a tuple?
docstring_summary: Are we at the end of a tuple?
docstring_tokens: Are we at the end of a tuple?
function: def is_tuple_end(
          self, extra_end_rules: t.Optional[t.Tuple[str, ...]] = None
      ) -> bool:
          """Are we at the end of a tuple?"""
          if self.stream.current.type in ("variable_end", "block_end", "rparen"):
              return True
          elif extra_end_rules is not None:
              return self.stream.current.test_any(extra_end_rules)  # type: ignore
          return False
function_tokens: def is_tuple_end ( self , extra_end_rules : t . Optional [ t . Tuple [ str , ... ] ] = None ) -> bool : if self . stream . current . type in ( "variable_end" , "block_end" , "rparen" ) : return True elif extra_end_rules is not None : return self . stream . current . test_any ( extra_end_rules ) # type: ignore return False