def get_group_index()

in service/azservice/__main__.py [0:0]


def get_group_index(command_table):
    index = { '': [], '-': [] }
    for command in command_table.values():
        parts = command.name.split()
        len_parts = len(parts)
        for i in range(1, len_parts):
            group = ' '.join(parts[0:i])
            if group not in index:
                index[group] = []
                parent = ' '.join(parts[0:i - 1])
                completion = {
                    'name': parts[i - 1],
                    'kind': 'group',
                    'detail': group
                }
                help = get_help(group)
                if help:
                    description = help.get('short-summary')
                    if description:
                        completion['documentation'] = description

                index[parent].append(completion)
                if NO_AZ_PREFIX_COMPLETION_ENABLED and i == 1:
                    add = completion.copy()
                    add['snippet'] = 'az ' + add['name']
                    index['-'].append(add)
                
                if TWO_SEGMENTS_COMPLETION_ENABLED and i > 1:
                    add = completion.copy()
                    add['name'] = ' '.join(parts[i - 2:i])
                    index[' '.join(parts[0:i - 2])].append(add)
                    if NO_AZ_PREFIX_COMPLETION_ENABLED and i == 2:
                        add = add.copy()
                        add['snippet'] = 'az ' + add['name']
                        index['-'].append(add)

        parent = ' '.join(parts[0:-1])
        completion = {
            'name': parts[-1],
            'kind': 'command',
            'detail': command.name
        }
        add_command_documentation(completion, command)

        index[parent].append(completion)

        if TWO_SEGMENTS_COMPLETION_ENABLED and len_parts > 1:
            add = completion.copy()
            add['name'] = ' '.join(parts[len_parts - 2:len_parts])
            index[' '.join(parts[0:len_parts - 2])].append(add)
            if NO_AZ_PREFIX_COMPLETION_ENABLED and len_parts == 2:
                add = add.copy()
                add['snippet'] = 'az ' + add['name']
                index['-'].append(add)
    return index