def parse(self, request, bundle_errors=False):
source = self.source(request)<EOL>results = []<EOL>_not_found = False<EOL>_found = True<EOL>for operator in self.operators:<EOL><INDENT>name = self.name + operator.replace("<STR_LIT:=>", "<STR_LIT>", <NUM_LIT:1>)<EOL>if name in source:<EOL><INDENT>if hasattr(source, "<STR_LIT>"):<EOL><INDENT>values = source.getlist(name)<EOL><DEDENT>else:<EOL><INDENT>values = source.get(name)<EOL>if not (isinstance(values, collections.MutableSequence) and self.action == '<STR_LIT>'):<EOL><INDENT>values = [values]<EOL><DEDENT><DEDENT>for value in values:<EOL><INDENT>if hasattr(value, "<STR_LIT>") and self.trim:<EOL><INDENT>value = value.strip()<EOL><DEDENT>if hasattr(value, "<STR_LIT>") and not self.case_sensitive:<EOL><INDENT>value = value.lower()<EOL>if hasattr(self.choices, "<STR_LIT>"):<EOL><INDENT>self.choices = [choice.lower()<EOL>for choice in self.choices]<EOL><DEDENT><DEDENT>try:<EOL><INDENT>value = self.convert(value, operator)<EOL><DEDENT>except Exception as error:<EOL><INDENT>if self.ignore:<EOL><INDENT>continue<EOL><DEDENT>return self.handle_validation_error(error, bundle_errors)<EOL><DEDENT>if self.choices and value not in self.choices:<EOL><INDENT>if current_app.config.get("<STR_LIT>", False) or bundle_errors:<EOL><INDENT>return self.handle_validation_error(<EOL>ValueError(u"<STR_LIT>".format(<EOL>value)), bundle_errors)<EOL><DEDENT>self.handle_validation_error(<EOL>ValueError(u"<STR_LIT>".format(<EOL>value)), bundle_errors)<EOL><DEDENT>if name in request.unparsed_arguments:<EOL><INDENT>request.unparsed_arguments.pop(name)<EOL><DEDENT>results.append(value)<EOL><DEDENT><DEDENT><DEDENT>if not results and self.required:<EOL><INDENT>if isinstance(self.location, six.string_types):<EOL><INDENT>error_msg = u"<STR_LIT>".format(<EOL>_friendly_location.get(self.location, self.location)<EOL>)<EOL><DEDENT>else:<EOL><INDENT>friendly_locations = [_friendly_location.get(loc, loc)<EOL>for loc in self.location]<EOL>error_msg = u"<STR_LIT>".format(<EOL>'<STR_LIT>'.join(friendly_locations)<EOL>)<EOL><DEDENT>if current_app.config.get("<STR_LIT>", False) or bundle_errors:<EOL><INDENT>return self.handle_validation_error(ValueError(error_msg), bundle_errors)<EOL><DEDENT>self.handle_validation_error(ValueError(error_msg), bundle_errors)<EOL><DEDENT>if not results:<EOL><INDENT>if callable(self.default):<EOL><INDENT>return self.default(), _not_found<EOL><DEDENT>else:<EOL><INDENT>return self.default, _not_found<EOL><DEDENT><DEDENT>if self.action == '<STR_LIT>':<EOL><INDENT>return results, _found<EOL><DEDENT>if self.action == '<STR_LIT:store>' or len(results) == <NUM_LIT:1>:<EOL><INDENT>return results[<NUM_LIT:0>], _found<EOL><DEDENT>return results, _found<EOL>
Parses argument value(s) from the request, converting according to
        the argument's type.

        :param request: The flask request object to parse arguments from
        :param bundle_errors: Do not abort when first error occurs, return a
            dict with the name of the argument and the error message to be
            bundled