From e6878c473501a0ae7c6fd266a2a41ca4180628da Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Mon, 12 Jun 2023 17:17:45 +0200 Subject: [PATCH] Solvers: Add some type of solver in solver list. --- src/Solver/ASolver.py | 10 ++++++++++ src/Solver/Solvers.py | 9 ++++++++- src/View/Configure/Solver/Window.py | 7 +++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py index 478e49a6..e39152f4 100644 --- a/src/Solver/ASolver.py +++ b/src/Solver/ASolver.py @@ -33,6 +33,16 @@ class AbstractSolver(object): def __str__(self): return f"{self._name} : {self._type} : {self._description}" + def __getitem__(self, key): + ret = None + if key == "name": + ret = self._name + elif key == "description": + ret = self._description + elif key == "type": + ret = self._type + return ret + @classmethod def default_parameters(cls): return [] diff --git a/src/Solver/Solvers.py b/src/Solver/Solvers.py index b5f30476..25cb95e3 100644 --- a/src/Solver/Solvers.py +++ b/src/Solver/Solvers.py @@ -1,3 +1,10 @@ # -*- coding: utf-8 -*- -solver_type_list = ["generic"] +from Solver.GenericSolver import GenericSolver +from Solver.Mage import Mage7, Mage8 + +solver_type_list = { + "generic": GenericSolver, + "mage7": Mage7, + "mage8": Mage8, +} diff --git a/src/View/Configure/Solver/Window.py b/src/View/Configure/Solver/Window.py index cc98fd65..64faf8da 100644 --- a/src/View/Configure/Solver/Window.py +++ b/src/View/Configure/Solver/Window.py @@ -64,8 +64,11 @@ class ConfigureSolverWindow(ASubWindow): "Please give a name to your solver" ) else: - self.data = GenericSolver(self.get_line_edit_text("lineEdit_name")) - self.data.set_description(self.get_line_edit_text("lineEdit_description")) + # Build new solver from selected type + stype = self.get_combobox_text("comboBox_solver") + self.data = solver_type_list[stype](self.get_line_edit_text("lineEdit_name")) + + self.data.description = self.get_line_edit_text("lineEdit_description") self.data.set_input( self.get_line_edit_text("lineEdit_input"), self.get_line_edit_text("lineEdit_input_cmd") -- GitLab