mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Model: Add PamhyrModelDict and use it in IC.
This commit is contained in:
1 parent
0b0c402baf
commit
e63b931dfb
2 files changed
+78
-37
No files matched your search
@@ -20,28 +20,14 @@ from copy import copy
|
||||
from tools import trace, timer
|
||||
|
||||
from Model.DB import SQLSubModel
|
||||
from Model.Tools.PamhyrDict import PamhyrModelDict
|
||||
from Model.InitialConditions.InitialConditions import InitialConditions
|
||||
|
||||
class InitialConditionsDict(SQLSubModel):
|
||||
class InitialConditionsDict(PamhyrModelDict):
|
||||
_sub_classes = [
|
||||
InitialConditions,
|
||||
]
|
||||
|
||||
def __init__(self, status = None):
|
||||
super(InitialConditionsDict, self).__init__()
|
||||
|
||||
self._status = status
|
||||
|
||||
self._reach = {}
|
||||
|
||||
@classmethod
|
||||
def _sql_create(cls, execute):
|
||||
return cls._create_submodel(execute)
|
||||
|
||||
@classmethod
|
||||
def _sql_update(cls, execute, version):
|
||||
return cls._update_submodel(execute, version)
|
||||
|
||||
@classmethod
|
||||
def _sql_load(cls, execute, data = None):
|
||||
new = cls(status = data["status"])
|
||||
@@ -55,7 +41,7 @@ class InitialConditionsDict(SQLSubModel):
|
||||
)
|
||||
|
||||
if ic is not None:
|
||||
new._reach[reach] = ic
|
||||
new._dict[reach] = ic
|
||||
|
||||
return new
|
||||
|
||||
@@ -66,30 +52,12 @@ class InitialConditionsDict(SQLSubModel):
|
||||
|
||||
execute("DELETE FROM initial_conditions")
|
||||
|
||||
for reach in self._reach:
|
||||
for reach in self._dict:
|
||||
data["reach"] = reach
|
||||
ok &= self._reach[reach]._sql_save(execute, data)
|
||||
ok &= self._dict[reach]._sql_save(execute, data)
|
||||
|
||||
return ok
|
||||
|
||||
def __len__(self):
|
||||
return len(self._reach)
|
||||
|
||||
def is_defined(self, reach):
|
||||
return reach in self._reach
|
||||
|
||||
def get(self, reach):
|
||||
if reach in self._reach:
|
||||
return self._reach[reach]
|
||||
|
||||
new = self.new(reach)
|
||||
self.set(reach, new)
|
||||
return new
|
||||
|
||||
def set(self, reach, new):
|
||||
self._reach[reach] = new
|
||||
self._status.modified()
|
||||
|
||||
def new(self, reach):
|
||||
new = InitialConditions(reach = reach, status = self._status)
|
||||
self.set(reach, new)
|
||||
|
||||
Reference in new issue
Block a user