def parse(self, argv, usedname, location):
try:<EOL><INDENT>value = self.format.parse(argv)<EOL><DEDENT>except formats.BadNumberOfArguments as e:<EOL><INDENT>raise BadNumberOfArguments(usedname, e.required, e.supplied)<EOL><DEDENT>except formats.BadArgument as e:<EOL><INDENT>raise BadArgument(usedname, e.argument, e.message)<EOL><DEDENT>if self.recurring:<EOL><INDENT>self.value.append(value)<EOL><DEDENT>else:<EOL><INDENT>self.value = value<EOL><DEDENT>self.location = location<EOL>
Consume and process arguments and store the result.
        ARGS:
        argv <list str>:
            The argument list to parse.
        usedname <str>:
            The string used by the user to invoke the option.
        location <str>:
            A user friendly sring describing where the parser got this
            data from.