def argument(*args, **kwargs):
    """Decorator function for standard :mod:`argparse` arguments.

    The passed arguments and keyword arguments are stored as tuple in a
    ``parser_arguments`` attribute of the decorated function. This list will
    be reused by class:`ParserSpec` to add arguments to decorated commands.

    Args:
        *args: Positional arguments that should be passed to
            :meth:`argparse.ArgumentParser.add_argument`.
        **kwargs: Keyword arguments that should be passed to
            :meth:`argparse.ArgumentParser.add_argument`.

    Returns:
        callable: A decorator that can be used to decorate a command function.

    """

    def decorator(fn):
        if not hasattr(fn, "parser_arguments"):
            fn.parser_arguments = []
        fn.parser_arguments.append((args, kwargs))
        return fn

    return decorator