def add_arg(func, *args, **kwargs):

    if not hasattr(func, 'arguments'):
        func.arguments = []

    # NOTE(sirp): avoid dups that can occur when the module is shared across
    # tests.
    if (args, kwargs) not in func.arguments:
        # Because of the semantics of decorator composition if we just append
        # to the options list positional options will appear to be backwards.
        func.arguments.insert(0, (args, kwargs))
Bind CLI arguments to a shell.py `do_foo` function.
dataset/ETHPy150Open openstack/python-ironicclient/ironicclient/common/cliutils.py/add_arg