@logs<EOL><INDENT>def _part(self, name, func, args, help, **kwargs):<DEDENT>
while self.argv:<EOL><INDENT>arg = self.argv.popleft()<EOL>if arg == "<STR_LIT>" or arg == "<STR_LIT>":<EOL><INDENT>print(help)<EOL>return<EOL><DEDENT>try:<EOL><INDENT>argname, argarg = args[arg]<EOL>kwargs[argname] = argarg and self.argv.popleft() or True<EOL><DEDENT>except KeyError:<EOL><INDENT>raise UnrecognizedArgumentError(name, arg)<EOL><DEDENT>except IndexError:<EOL><INDENT>valids = ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]<EOL>if arg not in valids:<EOL><INDENT>raise NotEnoughArgumentsError(name)<EOL><DEDENT>kwargs[argname] = True<EOL><DEDENT><DEDENT>func(**kwargs)<EOL>
Parses arguments of a single command (e.g. 'v').

        If :args: is empty, it assumes that command takes no further arguments.

        :name: Name of the command.
        :func: Arg method to execute.
        :args: Dictionary of CLI arguments pointed at Arg method arguments.
        :help: Commands' help text.
        :kwargs: Additional arguments for :func:.