@make_certifier()<EOL>def certify_tuple(value, certifier=None, min_len=None, max_len=None, required=True, schema=None):
certify_iterable(<EOL>value=value,<EOL>types=tuple([tuple]),<EOL>certifier=certifier,<EOL>min_len=min_len,<EOL>max_len=max_len,<EOL>schema=schema,<EOL>required=required,<EOL>)<EOL>
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