Commit 46068370 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Model: Switch SolverParametersList to PamhyrModelList.

Showing with 11 additions and 54 deletions
+11 -54
......@@ -20,6 +20,7 @@ from copy import copy
from tools import trace, timer
from Solver.Solvers import solver_type_list
from Model.Tools.PamhyrList import PamhyrModelList
from Model.DB import SQLSubModel
class Parameter():
......@@ -63,13 +64,13 @@ class Parameter():
return new
class SolverParametersList(SQLSubModel):
class SolverParametersList(PamhyrModelList):
def __init__(self, solver_type = None, status = None):
super(SolverParametersList, self).__init__()
self._status = status
self._solver = solver_type
self._parameters = list(
self._lst = list(
map(
lambda t: Parameter.from_tuple(t, self._status),
solver_type.default_parameters()
......@@ -194,7 +195,7 @@ class SolverParametersList(SQLSubModel):
)
ind = 0
for param in self._parameters:
for param in self._lst:
sql = (
"INSERT INTO " +
"solver_parameter(ind, name, value, solver) "+
......@@ -210,39 +211,36 @@ class SolverParametersList(SQLSubModel):
return True
def __len__(self):
return len(self._parameters)
@property
def parameters(self):
return self._parameters.copy()
return self.lst
def get(self, index):
return self._parameters[index]
return self._lst[index]
def get_by_key(self, key):
try:
return next(
filter(
lambda p: p["name"] == key,
self._parameters
self._lst
)
)["value"]
except:
return None
def set(self, index, new):
self._parameters[index] = new
self._lst[index] = new
self._status.modified()
def set_value(self, key, value):
for p in self._parameters:
for p in self._lst:
if p["name"] == key:
p["value"] = value
self._status.modified()
return
self._parameters.append(
self._lst.append(
Parameter(
name = key,
value = value,
......@@ -253,47 +251,6 @@ class SolverParametersList(SQLSubModel):
def new(self, index):
n = Parameter(status = self._status)
self._parameters.insert(index, n)
self._lst.insert(index, n)
self._status.modified()
return n
def insert(self, index, new):
self._parameters.insert(index, new)
self._status.modified()
def delete(self, parameters):
for parameter in parameters:
self._parameters.remove(parameter)
self._status.modified()
def delete_i(self, indexes):
parameters = list(
map(
lambda x: x[1],
filter(
lambda x: x[0] in indexes,
enumerate(self._parameters)
)
)
)
self.delete(parameters)
def sort(self, reverse=False, key=None):
self._parameters.sort(reverse=reverse, key=key)
self._status.modified()
def move_up(self, index):
if index < len(self._parameters):
next = index - 1
l = self._parameters
l[index], l[next] = l[next], l[index]
self._status.modified()
def move_down(self, index):
if index >= 0:
prev = index + 1
l = self._parameters
l[index], l[prev] = l[prev], l[index]
self._status.modified()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment