parameters: (cls, value, name)
return_statement: return value
docstring: Check that a timeout attribute is valid
  
          :param value: The timeout value to validate
          :param name: The name of the timeout attribute to validate. This is used
              for clear error messages
          :return: the value
          :raises ValueError: if the type is not an integer or a float, or if it
              is a numeric value less than zero
docstring_summary: Check that a timeout attribute is valid
docstring_tokens: Check that a timeout attribute is valid
function: def _validate_timeout(cls, value, name):
          """ Check that a timeout attribute is valid
  
          :param value: The timeout value to validate
          :param name: The name of the timeout attribute to validate. This is used
              for clear error messages
          :return: the value
          :raises ValueError: if the type is not an integer or a float, or if it
              is a numeric value less than zero
          """
          if value is _Default:
              return cls.DEFAULT_TIMEOUT
  
          if value is None or value is cls.DEFAULT_TIMEOUT:
              return value
  
          try:
              float(value)
          except (TypeError, ValueError):
              raise ValueError("Timeout value %s was %s, but it must be an "
                               "int or float." % (name, value))
  
          try:
              if value < 0:
                  raise ValueError("Attempted to set %s timeout to %s, but the "
                                   "timeout cannot be set to a value less "
                                   "than 0." % (name, value))
          except TypeError: # Python 3
              raise ValueError("Timeout value %s was %s, but it must be an "
                               "int or float." % (name, value))
  
          return value
function_tokens: def _validate_timeout ( cls , value , name ) : if value is _Default : return cls . DEFAULT_TIMEOUT if value is None or value is cls . DEFAULT_TIMEOUT : return value try : float ( value ) except ( TypeError , ValueError ) : raise ValueError ( "Timeout value %s was %s, but it must be an " "int or float." % ( name , value ) ) try : if value < 0 : raise ValueError ( "Attempted to set %s timeout to %s, but the " "timeout cannot be set to a value less " "than 0." % ( name , value ) ) except TypeError : # Python 3 raise ValueError ( "Timeout value %s was %s, but it must be an " "int or float." % ( name , value ) ) return value