mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Model, IC: Add InitialConditions SQL export.
This commit is contained in:
1 parent
8671e7b7dd
commit
d76b09f224
3 files changed
+201
-20
No files matched your search
@@ -3,9 +3,14 @@
|
||||
from copy import copy
|
||||
from tools import trace, timer
|
||||
|
||||
from Model.DB import SQLSubModel
|
||||
from Model.InitialConditions.InitialConditions import InitialConditions
|
||||
|
||||
class InitialConditionsDict(object):
|
||||
class InitialConditionsDict(SQLSubModel):
|
||||
_sub_classes = [
|
||||
InitialConditions,
|
||||
]
|
||||
|
||||
def __init__(self, status = None):
|
||||
super(InitialConditionsDict, self).__init__()
|
||||
|
||||
@@ -13,6 +18,44 @@ class InitialConditionsDict(object):
|
||||
|
||||
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"])
|
||||
|
||||
for reach in data["edges"]:
|
||||
data["reach"] = reach
|
||||
|
||||
ic = InitialConditions._sql_load(
|
||||
execute,
|
||||
data = data
|
||||
)
|
||||
|
||||
if ic is not None:
|
||||
new._reach[reach] = ic
|
||||
|
||||
return new
|
||||
|
||||
def _sql_save(self, execute, data = None):
|
||||
ok = True
|
||||
if data is None:
|
||||
data = {}
|
||||
|
||||
execute("DELETE FROM initial_conditions")
|
||||
|
||||
for reach in self._reach:
|
||||
data["reach"] = reach
|
||||
ok &= self._reach[reach]._sql_save(execute, data)
|
||||
|
||||
return ok
|
||||
|
||||
def __len__(self):
|
||||
return len(self._reach)
|
||||
|
||||
|
||||
Reference in new issue
Block a user