def load_arguments(self, argv, base=None):
plugin_parser = argparse.ArgumentParser(add_help=False)<EOL>plugin_parser.add_argument('<STR_LIT>', action='<STR_LIT>', default=[])<EOL>parent = base or plugin_parser<EOL>parser = argparse.ArgumentParser(<EOL>parents=(parent,),<EOL>add_help=False,<EOL>**getattr(parent, '<STR_LIT>', {})<EOL>)<EOL>plugins = [<EOL>plugin<EOL>for plugins in plugin_parser.parse_known_args(argv)[<NUM_LIT:0>].plugin<EOL>for plugin in plugins.split('<STR_LIT:U+002C>')<EOL>]<EOL>for plugin in sorted(set(plugins), key=plugins.index):<EOL><INDENT>arguments = self.extract_plugin_arguments(plugin)<EOL>if arguments:<EOL><INDENT>group = parser.add_argument_group('<STR_LIT>' % plugin)<EOL>for argargs, argkwargs in arguments:<EOL><INDENT>group.add_argument(*argargs, **argkwargs)<EOL><DEDENT><DEDENT><DEDENT>self._argparse_arguments = parser.parse_args(argv)<EOL>return self._argparse_arguments<EOL>
Process given argument list based on registered arguments and given
optional base :class:`argparse.ArgumentParser` instance.

This method saves processed arguments on itself, and this state won't
be lost after :meth:`clean` calls.

Processed argument state will be available via :meth:`get_argument`
method.

:param argv: command-line arguments (without command itself)
:type argv: iterable of str
:param base: optional base :class:`argparse.ArgumentParser` instance.
:type base: argparse.ArgumentParser or None
:returns: argparse.Namespace instance with processed arguments as
          given by :meth:`argparse.ArgumentParser.parse_args`.
:rtype: argparse.Namespace