def parse(self, stream, mimetype, content_length, options=None):
    'Parses the information from the given stream, mimetype,\n        content length and mimetype parameters.\n\n        :param stream: an input stream\n        :param mimetype: the mimetype of the data\n        :param content_length: the content length of the incoming data\n        :param options: optional mimetype parameters (used for\n                        the multipart boundary for instance)\n        :return: A tuple in the form ``(stream, form, files)``.\n        '
    if ((self.max_content_length is not None) and (content_length > self.max_content_length)):
        raise RequestEntityTooLarge()
    if (options is None):
        options = {}
    input_stream = LimitedStream(stream, content_length)
    parse_func = self.get_parse_func(mimetype, options)
    if (parse_func is not None):
        try:
            return parse_func(self, input_stream, mimetype, content_length, options)
        except ValueError:
            if (not self.silent):
                raise
    return (input_stream, self.cls(), self.cls())
Parses the information from the given stream, mimetype,
content length and mimetype parameters.

:param stream: an input stream
:param mimetype: the mimetype of the data
:param content_length: the content length of the incoming data
:param options: optional mimetype parameters (used for
                the multipart boundary for instance)
:return: A tuple in the form ``(stream, form, files)``.
def parse(self, stream, mimetype, content_length, options=None):
    'Parses the information from the given stream, mimetype,\n        content length and mimetype parameters.\n\n        :param stream: an input stream\n        :param mimetype: the mimetype of the data\n        :param content_length: the content length of the incoming data\n        :param options: optional mimetype parameters (used for\n                        the multipart boundary for instance)\n        :return: A tuple in the form ``(stream, form, files)``.\n        '
    if ((self.max_content_length is not None) and (content_length > self.max_content_length)):
        raise RequestEntityTooLarge()
    if (options is None):
        options = {}
    input_stream = LimitedStream(stream, content_length)
    parse_func = self.get_parse_func(mimetype, options)
    if (parse_func is not None):
        try:
            return parse_func(self, input_stream, mimetype, content_length, options)
        except ValueError:
            if (not self.silent):
                raise
    return (input_stream, self.cls(), self.cls())