def render_arg()

in src/aaz_dev/cli/controller/az_arg_group_generator.py [0:0]


def render_arg(arg, cmd_ctx, arg_group=None):
    arg_kwargs = {
        "options": []
    }
    for option in arg.options:
        if arg_group is not None:
            if len(option) == 1:
                option = f"-{option}"
            else:
                option = f"--{option}"
        arg_kwargs["options"].append(option)
    if getattr(arg, 'singular_options', None):
        arg_kwargs["singular_options"] = []
        for option in arg.singular_options:
            if arg_group is not None:
                if len(option) == 1:
                    option = f"-{option}"
                else:
                    option = f"--{option}"
            arg_kwargs["singular_options"].append(option)

    if arg_group:  # not empty string or None
        arg_kwargs["arg_group"] = arg_group
    if arg.help:
        arg_kwargs["help"] = parse_arg_help(arg.help)
    if arg.required:
        arg_kwargs["required"] = True
    if arg.stage == AAZStageEnum.Preview:
        arg_kwargs["is_preview"] = True
    elif arg.stage == AAZStageEnum.Experimental:
        arg_kwargs["is_experimental"] = True

    if arg.id_part and cmd_ctx.support_id_part:
        arg_kwargs["id_part"] = arg.id_part

    if arg.default:
        arg_kwargs["default"] = arg.default.value

    if arg.configuration_key:
        arg_kwargs["configured_default"] = arg.configuration_key

    arg_type, arg_kwargs, cls_builder_name = render_arg_base(arg, cmd_ctx, arg_kwargs)

    if arg.prompt:
        if arg_type == "AAZPasswordArg":
            arg_kwargs["prompt"] = {
                "cls": "AAZPromptPasswordInput",
                "kwargs": {
                    "msg": arg.prompt.msg,
                }
            }
            if arg.prompt.confirm:
                arg_kwargs["prompt"]["kwargs"]["confirm"] = arg.prompt.confirm
        else:
            arg_kwargs["prompt"] = {
                "cls": "AAZPromptInput",
                "kwargs": {
                    "msg": arg.prompt.msg,
                }
            }
    if "blank" in arg_kwargs and "prompt" in arg_kwargs:
        raise KeyError("An argument cannot contain both prompt and blank")
    return arg_type, arg_kwargs, cls_builder_name