Results: Fix compare dialog and remove dead code.

scenarios
Pierre-Antoine 2025-10-31 10:40:46 +01:00
parent 044818072e
commit 17a18dde18
2 changed files with 26 additions and 168 deletions

View File

@ -88,7 +88,7 @@ from View.RunSolver.Window import (
from View.Results.Window import ResultsWindow
from View.Results.CompareDialog import (
CompareSolversWindow, CompareScenariosWindow
CompareScenariosWindow
)
from View.RunSolver.WindowAdisTS import (
@ -153,7 +153,6 @@ define_model_action = [
"action_menu_edit_reach_sediment_layers", "action_menu_edit_reservoirs",
"action_menu_edit_hydraulic_structures", "action_menu_additional_file",
"action_menu_results_last", "action_menu_open_results_from_file",
# "action_menu_compare_results",
"action_menu_compare_scenarios_results",
"action_menu_boundary_conditions_sediment",
"action_menu_rep_additional_lines", "action_menu_output_rk",
@ -301,7 +300,6 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
"action_menu_close": self.close_model,
"action_menu_results_last": self.open_last_results,
"action_menu_open_results_from_file": self.open_results_from_file,
# "action_menu_compare_results": self.compare_results,
"action_menu_compare_scenarios_results":
self.compare_results_scenarios,
"action_menu_open_results_adists": self.open_results_adists,
@ -1711,43 +1709,6 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
results=file_name[0]
)
# def compare_results(self):
# if self._study is None:
# return
# run = CompareSolversWindow(
# study=self._study,
# config=self.conf,
# parent=self
# )
# if not run.exec():
# return
# results = self.diff_results(
# run.solver1, run.solver2
# )
# # At least one result not available
# if results is None:
# return
# # Windows already opened
# if self.sub_window_exists(
# CompareSolversWindow,
# data=[self._study, None] +
# [r._solver for r in results] +
# [r._repertory for r in results] +
# [r._name for r in results]
# ):
# return
# res = ResultsWindow(
# study=self._study,
# results=results,
# parent=self
# )
# res.show()
def compare_results_scenarios(self):
if self._study is None:
return

View File

@ -32,106 +32,14 @@ _translate = QCoreApplication.translate
logger = logging.getLogger()
class CompareSolversWindow(PamhyrDialog):
_pamhyr_ui = "CompareSolvers"
_pamhyr_name = "Compare solvers"
def __init__(self, study=None, config=None,
parent=None):
self._solver1 = None
self._solver2 = None
name = _translate("Solver", "Compare solvers")
super(CompareSolversWindow, self).__init__(
title=name,
study=study,
config=config,
options=[],
parent=parent
)
self.setup_solvers()
self.setup_connections()
self.select_last_solver()
def setup_solvers(self):
solvers = self._config.solvers
solvers_name = list(
map(
self._format_solver_name,
solvers
)
)
self.combobox_add_items("comboBox1", solvers_name)
self.combobox_add_items("comboBox2", solvers_name)
def setup_connections(self):
self.find(QPushButton, "pushButton_ok").clicked.connect(self.accept)
self.find(QPushButton, "pushButton_cancel")\
.clicked.connect(self.reject)
def select_last_solver(self):
solvers = self._config.solvers
last = self._config.last_solver_name
solver = list(
filter(
lambda s: s.name == last,
solvers
)
)
if len(solver) != 0:
self.set_combobox_text(
"comboBox1",
self._format_solver_name(solver[0])
)
def _format_solver_name(self, solver):
return f"{solver.name} - ({solver._type})"
@property
def solver1(self):
return self._solver1
@property
def solver2(self):
return self._solver2
def accept(self):
solver_name1 = self.get_combobox_text("comboBox1")
solver_name1 = solver_name1.rsplit(" - ", 1)[0]
self._solver1 = next(
filter(
lambda s: s.name == solver_name1,
self._config.solvers
)
)
solver_name2 = self.get_combobox_text("comboBox2")
solver_name2 = solver_name2.rsplit(" - ", 1)[0]
self._solver2 = next(
filter(
lambda s: s.name == solver_name2,
self._config.solvers
)
)
super(CompareSolversWindow, self).accept()
class CompareScenariosWindow(PamhyrDialog):
_pamhyr_ui = "CompareScenarios"
_pamhyr_name = "Compare scenarios"
def __init__(self, study=None, config=None,
parent=None):
self._solver1 = None
self._solver2 = None
self._scenario1 = None
self._scenario2 = None
self._solvers = []
self._scenarios = []
name = _translate("Solver", "Compare solvers")
super(CompareScenariosWindow, self).__init__(
@ -200,53 +108,42 @@ class CompareScenariosWindow(PamhyrDialog):
@property
def solver1(self):
return self._solver1
return self._solvers[0]
@property
def solver2(self):
return self._solver2
return self._solvers[1]
@property
def scenario1(self):
return self._scenario1
return self._scenarios[0]
@property
def scenario2(self):
return self._scenario2
return self._scenarios[1]
def accept(self):
solver_name1 = self.get_combobox_text("comboBoxSolver1")
solver_name1 = solver_name1.rsplit(" - ", 1)[0]
self._solver1 = next(
filter(
lambda s: s.name == solver_name1,
self._config.solvers
for cb in ["comboBoxSolver1", "comboBoxSolver2"]:
name = self.get_combobox_text(cb)
name = name.rsplit(" - ", 1)[0]
self._solvers.append(
next(
filter(
lambda s: s.name == name,
self._config.solvers
)
)
)
)
solver_name2 = self.get_combobox_text("comboBoxSolver2")
solver_name2 = solver_name2.rsplit(" - ", 1)[0]
self._solver2 = next(
filter(
lambda s: s.name == solver_name2,
self._config.solvers
for cb in ["comboBoxScenario1", "comboBoxScenario2"]:
name = self.get_combobox_text(cb)
self._scenarios.append(
next(
filter(
lambda s: s.name == name,
self._study.scenarios.lst
)
)
)
)
scenario_name1 = self.get_combobox_text("comboBoxScenario1")
self._scenario1 = next(
filter(
lambda s: s.name == scenario_name1,
self._study.scenarios
)
)
scenario_name2 = self.get_combobox_text("comboBoxScenario2")
self._scenario2 = next(
filter(
lambda s: s.name == scenario_name2,
self._study.scenarios
)
)
super(CompareScenariosWindow, self).accept()