def merge_tasks(runset_results):
    """
    This function merges the results of all RunSetResult objects.
    If necessary, it can merge lists of names: [A,C] + [A,B] --> [A,B,C]
    and add dummy elements to the results.
    It also ensures the same order of tasks.
    """
    task_list = []
    task_set = set()
    for runset in runset_results:
        index = -1
        currentresult_taskset = set()
        for task in runset.get_tasks():
            if task in currentresult_taskset:
                logging.warning("Task '%s' is present twice, skipping it.", task[0])
            else:
                currentresult_taskset.add(task)
                if task not in task_set:
                    task_list.insert(index+1, task)
                    task_set.add(task)
                    index += 1
                else:
                    index = task_list.index(task)

    merge_task_lists(runset_results, task_list)
def merge_tasks ( runset_results ) : task_list = [ ] task_set = set ( ) for runset in runset_results : index = - 1 currentresult_taskset = set ( ) for task in runset . get_tasks ( ) : if task in currentresult_taskset : logging . warning ( "Task '%s' is present twice, skipping it." , task [ 0 ] ) else : currentresult_taskset . add ( task ) if task not in task_set : task_list . insert ( index + 1 , task ) task_set . add ( task ) index += 1 else : index = task_list . index ( task ) merge_task_lists ( runset_results , task_list )
This function merges the results of all RunSetResult objects.
    If necessary, it can merge lists of names: [A,C] + [A,B] --> [A,B,C]
    and add dummy elements to the results.
    It also ensures the same order of tasks.