mirror of https://gitlab.com/pamhyr/pamhyr2
Model: Switch SolverParametersList to PamhyrModelList.
parent
89b9fd21ff
commit
460683703e
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue