def certify_iterable(<EOL>value, types, certifier=None, min_len=None, max_len=None, schema=None,<EOL>required=True<EOL>):
certify_required(<EOL>value=value,<EOL>required=required,<EOL>)<EOL>certify_params(<EOL>(_certify_int_param, '<STR_LIT>', max_len, dict(negative=False, required=False)),<EOL>(_certify_int_param, '<STR_LIT>', min_len, dict(negative=False, required=False)),<EOL>)<EOL>if types and not isinstance(value, types):<EOL><INDENT>raise CertifierTypeError(<EOL>message="<STR_LIT>".format(<EOL>value_type=value.__class__.__name__<EOL>),<EOL>value=value,<EOL>required=required,<EOL>)<EOL><DEDENT>if min_len is not None and len(value) < min_len:<EOL><INDENT>raise CertifierValueError(<EOL>message="<STR_LIT>"<EOL>"<STR_LIT>".format(expected=min_len, actual=len(value)),<EOL>value=value,<EOL>required=required,<EOL>)<EOL><DEDENT>if max_len is not None and len(value) > max_len:<EOL><INDENT>raise CertifierValueError(<EOL>message=("<STR_LIT>"<EOL>"<STR_LIT>").format(<EOL>expected=max_len,<EOL>actual=len(value),<EOL>cls=types,<EOL>),<EOL>value=value,<EOL>required=required,<EOL>)<EOL><DEDENT>if certifier is not None:<EOL><INDENT>map(certifier, value)<EOL><DEDENT>certify_iterable_schema(<EOL>value=value,<EOL>schema=schema,<EOL>required=required,<EOL>)<EOL>
Validates an iterable sequence, 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.

:param iterable value:
    The value to be certified.
:param tuple(object) types:
    A tuple of types of the expected iterable.
:param func|None certifier:
    A function to be called on each value in the iterable to check that it is valid.
:param int|None min_len:
    The minimum acceptable length for the iterable.  If None, the minimum length is not checked.
:param int|None max_len:
    The maximum acceptable length for the iterable.  If None, the maximum length is not checked.
:param tuple|None 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(),)
:param bool required:
    Whether the value can't be `None`. Defaults to True.
:return:
    The certified iterable.
:rtype:
    iterable
:raises CertifierTypeError:
    The type is invalid
:raises CertifierValueError:
    The valid is invalid.