Model, IC: Add InitialConditions SQL export.

This commit is contained in:
Pierre-Antoine Rouby committed 2023-07-03 11:15:29 +02:00
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)