code: def certify_tuple(value, certifier=None, min_len=None, max_len=None, required=True, schema=None):
      
      certify_iterable(
          value=value,
          types=tuple([tuple]),
          certifier=certifier,
          min_len=min_len,
          max_len=max_len,
          schema=schema,
          required=required,
      )
docs: Validates a tuple, checking it against an optional schema.
  
      The schema should be a list of expected values replaced by functions which will be called to
      with the corresponding value in the input.
  
      A simple example:
  
          >>> certifier = certify_tuple(schema=(
          ...     certify_key(kind='Model'),
          ...     certify_int(min=0),
          ...     ))
          >>> certifier((self.key, self.count))
  
      :param tuple value:
          The value to be certified.
      :param func certifier:
          A function to be called on each value in the iterable to check that it is valid.
      :param int min_len:
          The minimum acceptable length for the iterable.  If None, the minimum length is not checked.
      :param int max_len:
          The maximum acceptable length for the iterable.  If None, the maximum length is not checked.
      :param bool required:
          Whether the value can't be `None`. Defaults to True.
      :param tuple schema:
          The schema against which the value should be checked.
          For single-item tuple make sure to add comma at the end of schema tuple, that is,
          for example: schema=(certify_int(),)
      :return:
          The certified tuple.
      :rtype:
          tuple
      :raises CertifierTypeError:
          The type is invalid
      :raises CertifierValueError:
          The valid is invalid