def get_task_from_paths(paths, tasks):
     ids_task = {}
     for path in paths:
         id = HandManager.get_id_from_path(path)
         task = "_" + HandManager.get_task_from_path(path) + "."
         if task in tasks:
             if id in ids_task:
                 temp_path = ids_task[id]
                 temp_path.append(path)
                 ids_task.update({id: temp_path})
             else:
                 ids_task[id] = [path]
     return ids_task
 def get_task_files(tasks, paths):
     task_paths = []
     try:
         if not isinstance(tasks, list):
             tasks = [tasks]
         for task in tasks:
             for path in paths:
                 if task in '_' + HandManager.get_task_from_path(
                         path) + '.':
                     task_paths.append(path)
     except TypeError as error:
         print("Error: ", error)
         print("Task: ", tasks)
     return task_paths
 def split(paths, healthy_task, diseased_task, test_task, training_number,
           validation_number):
     # Ottengo le liste degli id dei pazienti selezionati per eseguire le varie di modellazione, distinguendo tra id
     # di pazienti sani e malati.
     listh_training, listh_validation, listh_test, listd_training, listd_validation, listd_test = TaskManager.__split(
         training_number, validation_number)
     training_list_diseased = []
     training_list_healthy = []
     test_list_healthy = []
     test_list_diseased = []
     validation_list_diseased = []
     validation_list_healthy = []
     # In questo for vengono individuati dati path del sistema tutti i tasks che sono stati selezionati per la modellazione
     # se il tasks si identifica come uno dei tasks richiesti allora si verifica l'id a cui il tasks appartiene per essere
     # correttamente smistato nella lista di appartenenza corretta.
     for path in paths:
         id = HandManager.get_id_from_path(path)
         task = "_" + HandManager.get_task_from_path(path) + "."
         # Verifico se il tasks nel path è uno di quelli selezionati per i pazienti con malattia.
         if task in diseased_task:
             # Verifico se l'id del paziente è presente nella lista dei pazienti con malattia.
             training_list_diseased, validation_list_diseased = TaskManager.__id_in_list(
                 id, path, listd_training, listd_validation,
                 training_list_diseased, validation_list_diseased)
         # In questo if si verificano i tasks per i pazienti considerati sani
         if task in healthy_task:
             training_list_healthy, validation_list_healthy = TaskManager.__id_in_list(
                 id, path, listh_training, listh_validation,
                 training_list_healthy, validation_list_healthy)
         # In questo if si verificano i tasks selezionati per i test
         if task in test_task:
             if id in listh_test:
                 test_list_healthy.append(path)
             elif id in listd_test:
                 test_list_diseased.append(path)
     return training_list_diseased, training_list_healthy, test_list_healthy, test_list_diseased, \
         validation_list_diseased, validation_list_healthy