in azdev/operations/command_change/custom.py [0:0]
def get_commands_meta(command_group_table, commands_info, with_help, with_example):
commands_meta = {}
for command_info in commands_info: # pylint: disable=too-many-nested-blocks
module_name = command_info["source"]["module"]
command_name = command_info["name"]
if module_name not in commands_meta:
commands_meta[module_name] = {
"module_name": module_name,
"name": "az",
"commands": {},
"sub_groups": {}
}
command_group_info = commands_meta[module_name]
command_tree = get_command_tree(command_name)
while True:
if "is_group" not in command_tree:
break
if command_tree["is_group"]:
group_name = command_tree["group_name"]
if group_name not in command_group_info["sub_groups"]:
group_info = command_group_table.get(group_name, None)
command_group_info["sub_groups"][group_name] = {
"name": group_name,
"commands": {},
"sub_groups": {}
}
process_command_group_deprecation(group_info, command_group_info["sub_groups"][group_name])
if with_help:
try:
command_group_info["sub_groups"][group_name]["desc"] = group_info.help["short-summary"]
except AttributeError:
pass
command_tree = command_tree["sub_info"]
command_group_info = command_group_info["sub_groups"][group_name]
else:
if command_name in command_group_info["commands"]:
logger.warning("repeated command: %i", command_name)
break
command_meta = gen_command_meta(command_info, with_help, with_example)
command_group_info["commands"][command_name] = command_meta
break
return commands_meta