parameters: (
      cls, flag, auto_detect, dunders, default=True
  )
return_statement: return default
docstring: Check whether we should implement a set of methods for *cls*.
  
      *flag* is the argument passed into @attr.s like 'init', *auto_detect* the
      same as passed into @attr.s and *dunders* is a tuple of attribute names
      whose presence signal that the user has implemented it themselves.
  
      Return *default* if no reason for either for or against is found.
  
      auto_detect must be False on Python 2.
docstring_summary: Check whether we should implement a set of methods for *cls*.
docstring_tokens: Check whether we should implement a set of methods for * cls * .
function: def _determine_whether_to_implement(
      cls, flag, auto_detect, dunders, default=True
  ):
      """
      Check whether we should implement a set of methods for *cls*.
  
      *flag* is the argument passed into @attr.s like 'init', *auto_detect* the
      same as passed into @attr.s and *dunders* is a tuple of attribute names
      whose presence signal that the user has implemented it themselves.
  
      Return *default* if no reason for either for or against is found.
  
      auto_detect must be False on Python 2.
      """
      if flag is True or flag is False:
          return flag
  
      if flag is None and auto_detect is False:
          return default
  
      # Logically, flag is None and auto_detect is True here.
      for dunder in dunders:
          if _has_own_attribute(cls, dunder):
              return False
  
      return default
function_tokens: def _determine_whether_to_implement ( cls , flag , auto_detect , dunders , default = True ) : if flag is True or flag is False : return flag if flag is None and auto_detect is False : return default # Logically, flag is None and auto_detect is True here. for dunder in dunders : if _has_own_attribute ( cls , dunder ) : return False return default