diff --git a/src/Model/Results/ResultsAdisTS.py b/src/Model/Results/ResultsAdisTS.py index e7bdcc065cea3065c775d1069e02426c3d3536c4..f8a8585aa89ae9f3042c07f80afbd4418a3358aa 100644 --- a/src/Model/Results/ResultsAdisTS.py +++ b/src/Model/Results/ResultsAdisTS.py @@ -40,8 +40,9 @@ class Results(object): # Keep results creation date "creation_date": datetime.now(), } - repertory_results = os.path.join(repertory, "resultats") - filelist = [f for f in os.listdir(repertory_results) if os.path.isfile(os.path.join(repertory_results, f))] + filelist = [f for f in os.listdir(self._repertory) + if os.path.isfile(os.path.join(self._repertory, f)) + ] self._pollutants_list = [f[0:-4] for f in filelist if f[-4:] == ".bin"] self._pollutants_list.insert(0, self._pollutants_list.pop( self._pollutants_list.index("total_sediment")) diff --git a/src/Solver/AdisTS.py b/src/Solver/AdisTS.py index 4578a23e88772ef5278eb9e012996f92d26febf0..75f4d7b0454cb923dfb6c365509898df79eb3c65 100644 --- a/src/Solver/AdisTS.py +++ b/src/Solver/AdisTS.py @@ -619,14 +619,15 @@ class AdisTSwc(AdisTS): @timer def read_bin(self, study, repertory, results, qlog=None, name="0"): - repertory_results = os.path.join(repertory, "resultats") - filelist = [f for f in os.listdir(repertory_results) if os.path.isfile(os.path.join(repertory_results, f))] + filelist = [f for f in os.listdir(repertory) + if os.path.isfile(os.path.join(repertory, f)) + ] files_bin_names = [f for f in filelist if f[-4:] == ".bin"] files_bin_names.insert(0, files_bin_names.pop( files_bin_names.index("total_sediment.bin")) ) - ifilename = os.path.join(repertory_results, files_bin_names[0]) + ifilename = os.path.join(repertory, files_bin_names[0]) logger.info(f"read_bin: Start reading '{ifilename}' ...") @@ -723,7 +724,7 @@ class AdisTSwc(AdisTS): def ip_to_ri(r, i): return i - reach_offset[r] path_files = map(lambda file: os.path.join( - repertory_results, file), files_bin_names) + repertory, file), files_bin_names) data_tmp = {} @@ -831,8 +832,6 @@ class AdisTSwc(AdisTS): if name is None: name = study.name.replace(" ", "_") - print("adist ts results repertory: ", repertory) - results = super(AdisTSwc, self).results(study, repertory, qlog, @@ -850,12 +849,20 @@ class AdisTSwc(AdisTS): def rm_previous_results(self, study, repertory, qlog): - if "resultats" not in os.listdir(repertory): + if "resultats" in os.listdir(repertory): + repertory_results = os.path.join(repertory, "resultats") + else: + repertory_results = os.path.normpath(repertory) + + if not os.path.isdir(repertory_results): return - repertory_results = os.path.join(repertory, "resultats") - filelist = [f for f in os.listdir(repertory_results) if os.path.isfile(os.path.join(repertory_results, f))] + filelist = [f for f in os.listdir(repertory_results) + if os.path.isfile(os.path.join(repertory_results, f)) + ] files_bin_names = [f for f in filelist if f[-4:] == ".bin"] + if len(files_bin_names) < 1: + return for el in files_bin_names: os.remove(os.path.join(repertory_results, el)) diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 3fe55953d93cf0c33fa709e15cf3439b9c6295d4..0a455d609fbe8dba54fb6f21686c09cd6c3510c8 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -1581,13 +1581,21 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): if dialog.exec_(): dir_path = dialog.selectedFiles()[0] dir_list = os.listdir(dir_path) + if "resultats" in dir_list: + dir_path = os.path.join(dir_path, "resultats") + dir_list = os.listdir(dir_path) + bin_list = list(filter(lambda s: "bin" in s, dir_list)) - solver_name = dir_path.split("/")[-2] + if len(bin_list) < 1: + # TODO message + return + path = os.path.normpath(dir_path) + solver_name = path.split(os.sep)[-2] solver_results = next(filter(lambda x: x.name == solver_name, self.conf.solvers)) solver_results_adists = solver_results.results( self._study, - repertory=dir_path[:-10], qlog=None) # self._output) + repertory=dir_path, qlog=None) # self._output) logger.info(f"Select results: {dir_path}") if len(bin_list) >= 2 and ("total_sediment.bin" in bin_list): self.open_solver_results_adists( diff --git a/src/View/RunSolver/WindowAdisTS.py b/src/View/RunSolver/WindowAdisTS.py index 4ed9c783e7fdc81ca740736c6e0b49333cec0621..168937c78c87588b3a4eac8decd747b671a77538 100644 --- a/src/View/RunSolver/WindowAdisTS.py +++ b/src/View/RunSolver/WindowAdisTS.py @@ -414,9 +414,15 @@ class SolverLogWindowAdisTS(PamhyrWindow): def results(self): if self._results is None: + dir_list = os.listdir(self._workdir) + if "resultats" in dir_list: + dir_path = os.path.join(self._workdir, "resultats") + else: + dir_path = self._workdir + def reading_fn(): self._results = self._solver.results( - self._study, self._workdir, qlog=self._output + self._study, dir_path, qlog=self._output ) dlg = ReadingResultsDialog(reading_fn=reading_fn, parent=self)