def __make_group_summary_objects()

in mozci/push.py [0:0]


def __make_group_summary_objects(tasks):
    """Generates a list of GroupSummary objects from a list of tasks.

    Args:
        tasks (list): List of Task objects.

    Returns:
        list: List of GroupSummary objects.
    """
    # Make a mapping keyed by group name containing list of Task objects.
    tasks_by_config = defaultdict(lambda: defaultdict(list))
    for task in tasks:
        for result in task.results:
            # Build the mapping of group to the group durations and TestTask objects.
            tasks_by_config[task.configuration][result.group].append(task)

    return [
        GroupSummary(key, tasks)
        for config in tasks_by_config.keys()
        for key, tasks in tasks_by_config[config].items()
    ]