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 ...@@ -20,6 +20,7 @@ from copy import copy
from tools import trace, timer from tools import trace, timer
from Solver.Solvers import solver_type_list from Solver.Solvers import solver_type_list
from Model.Tools.PamhyrList import PamhyrModelList
from Model.DB import SQLSubModel from Model.DB import SQLSubModel
class Parameter(): class Parameter():
...@@ -63,13 +64,13 @@ class Parameter(): ...@@ -63,13 +64,13 @@ class Parameter():
return new return new
class SolverParametersList(SQLSubModel): class SolverParametersList(PamhyrModelList):
def __init__(self, solver_type = None, status = None): def __init__(self, solver_type = None, status = None):
super(SolverParametersList, self).__init__() super(SolverParametersList, self).__init__()
self._status = status self._status = status
self._solver = solver_type self._solver = solver_type
self._parameters = list( self._lst = list(
map( map(
lambda t: Parameter.from_tuple(t, self._status), lambda t: Parameter.from_tuple(t, self._status),
solver_type.default_parameters() solver_type.default_parameters()
...@@ -194,7 +195,7 @@ class SolverParametersList(SQLSubModel): ...@@ -194,7 +195,7 @@ class SolverParametersList(SQLSubModel):
) )
ind = 0 ind = 0
for param in self._parameters: for param in self._lst:
sql = ( sql = (
"INSERT INTO " + "INSERT INTO " +
"solver_parameter(ind, name, value, solver) "+ "solver_parameter(ind, name, value, solver) "+
...@@ -210,39 +211,36 @@ class SolverParametersList(SQLSubModel): ...@@ -210,39 +211,36 @@ class SolverParametersList(SQLSubModel):
return True return True
def __len__(self):
return len(self._parameters)
@property @property
def parameters(self): def parameters(self):
return self._parameters.copy() return self.lst
def get(self, index): def get(self, index):
return self._parameters[index] return self._lst[index]
def get_by_key(self, key): def get_by_key(self, key):
try: try:
return next( return next(
filter( filter(
lambda p: p["name"] == key, lambda p: p["name"] == key,
self._parameters self._lst
) )
)["value"] )["value"]
except: except:
return None return None
def set(self, index, new): def set(self, index, new):
self._parameters[index] = new self._lst[index] = new
self._status.modified() self._status.modified()
def set_value(self, key, value): def set_value(self, key, value):
for p in self._parameters: for p in self._lst:
if p["name"] == key: if p["name"] == key:
p["value"] = value p["value"] = value
self._status.modified() self._status.modified()
return return
self._parameters.append( self._lst.append(
Parameter( Parameter(
name = key, name = key,
value = value, value = value,
...@@ -253,47 +251,6 @@ class SolverParametersList(SQLSubModel): ...@@ -253,47 +251,6 @@ class SolverParametersList(SQLSubModel):
def new(self, index): def new(self, index):
n = Parameter(status = self._status) n = Parameter(status = self._status)
self._parameters.insert(index, n) self._lst.insert(index, n)
self._status.modified() self._status.modified()
return n 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