mirror of https://gitlab.com/pamhyr/pamhyr2
Pamhyr2: Model: Add data traversal method on each pamhyr object.
parent
78e6f7e5a7
commit
090326b75c
|
|
@ -400,6 +400,16 @@ class BoundaryCondition(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for el in self._data:
|
||||
el._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(
|
||||
list(
|
||||
|
|
|
|||
|
|
@ -415,6 +415,16 @@ class BoundaryConditionAdisTS(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self._data)
|
||||
|
||||
|
|
|
|||
|
|
@ -197,6 +197,16 @@ class D90AdisTS(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self._data)
|
||||
|
||||
|
|
|
|||
|
|
@ -220,6 +220,16 @@ class DIFAdisTS(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self._data)
|
||||
|
||||
|
|
|
|||
|
|
@ -229,6 +229,16 @@ class BasicHS(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self._data)
|
||||
|
||||
|
|
|
|||
|
|
@ -327,6 +327,16 @@ class HydraulicStructure(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self.lst)
|
||||
|
||||
|
|
|
|||
|
|
@ -374,6 +374,16 @@ class InitialConditions(SQLSubModel):
|
|||
|
||||
return ok
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self.data)
|
||||
|
||||
|
|
|
|||
|
|
@ -439,6 +439,17 @@ class LateralContribution(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(
|
||||
list(
|
||||
|
|
|
|||
|
|
@ -392,6 +392,16 @@ class LateralContributionAdisTS(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(
|
||||
list(
|
||||
|
|
|
|||
|
|
@ -441,6 +441,16 @@ class Pollutants(SQLSubModel):
|
|||
|
||||
return ok
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
@property
|
||||
def enabled(self):
|
||||
return self._enabled
|
||||
|
|
|
|||
|
|
@ -375,6 +375,16 @@ class Reservoir(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for d in self._data:
|
||||
d._data_traversal(predicate, modifier, data)
|
||||
|
||||
def __len__(self):
|
||||
return len(self._data)
|
||||
|
||||
|
|
|
|||
|
|
@ -649,8 +649,8 @@ class River(Graph):
|
|||
obj._data_traversal(predicate, modifier, data)
|
||||
|
||||
def _get_objs_list(self):
|
||||
objs = [
|
||||
self._nodes, self._edges,
|
||||
objs = (self._nodes + self._edges)
|
||||
objs += [
|
||||
self._boundary_condition,
|
||||
self._initial_conditions,
|
||||
self._lateral_contribution,
|
||||
|
|
|
|||
|
|
@ -471,6 +471,16 @@ class SedimentLayer(SQLSubModel):
|
|||
|
||||
return True
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for layer in self._layers:
|
||||
layer._data_traversal(predicate, modifier, data)
|
||||
|
||||
def get(self, index):
|
||||
return self.layers[index]
|
||||
|
||||
|
|
|
|||
|
|
@ -413,3 +413,22 @@ class SQLSubModel(PamhyrID):
|
|||
save
|
||||
"""
|
||||
raise NotImplementedMethodeError(self, self._db_save)
|
||||
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
"""Traversal data and execute modifier fonction if predicate
|
||||
true
|
||||
|
||||
Args:
|
||||
predicate: Function predicate, take current obj and data as input
|
||||
modifier: Function modifier, take current obj and data as input
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
"""
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
|
|
|||
|
|
@ -97,10 +97,7 @@ class PamhyrModelDict(SQLSubModel):
|
|||
Nothing
|
||||
|
||||
"""
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for key in self._lst:
|
||||
for key in self._dict:
|
||||
self._dict[key]\
|
||||
._data_traversal(predicate, modifier, data)
|
||||
|
||||
|
|
|
|||
|
|
@ -100,9 +100,6 @@ class PamhyrModelList(SQLSubModel):
|
|||
Nothing
|
||||
|
||||
"""
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for el in self._lst:
|
||||
el._data_traversal(predicate, modifier, data)
|
||||
|
||||
|
|
@ -216,6 +213,24 @@ class PamhyrModelListWithTab(SQLSubModel):
|
|||
def _db_save(self, execute, data=None):
|
||||
raise NotImplementedMethodeError(self, self._db_save)
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
"""Traversal data and execute modifier fonction if predicate
|
||||
true
|
||||
|
||||
Args:
|
||||
predicate: Function predicate, take current obj and data as input
|
||||
modifier: Function modifier, take current obj and data as input
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
"""
|
||||
for tab in self._tabs:
|
||||
for el in self._tabs[tab]:
|
||||
el._data_traversal(predicate, modifier, data)
|
||||
|
||||
################
|
||||
# MODEL METHOD #
|
||||
################
|
||||
|
|
|
|||
|
|
@ -103,11 +103,7 @@ class PamhyrModelList(SQLSubModel):
|
|||
|
||||
Returns:
|
||||
Nothing
|
||||
|
||||
"""
|
||||
if predicate(self, data):
|
||||
modifier(self, data)
|
||||
|
||||
for el in self._lst:
|
||||
el._data_traversal(predicate, modifier, data)
|
||||
|
||||
|
|
@ -230,6 +226,24 @@ class PamhyrModelListWithTab(SQLSubModel):
|
|||
def _db_save(self, execute, data=None):
|
||||
raise NotImplementedMethodeError(self, self._db_save)
|
||||
|
||||
def _data_traversal(self,
|
||||
predicate=lambda obj, data: True,
|
||||
modifier=lambda obj, data: None,
|
||||
data={}):
|
||||
"""Traversal data and execute modifier fonction if predicate
|
||||
true
|
||||
|
||||
Args:
|
||||
predicate: Function predicate, take current obj and data as input
|
||||
modifier: Function modifier, take current obj and data as input
|
||||
|
||||
Returns:
|
||||
Nothing
|
||||
"""
|
||||
for tab in self._tabs_list:
|
||||
for el in self._tabs[tab]:
|
||||
el._data_traversal(predicate, modifier, data)
|
||||
|
||||
################
|
||||
# MODEL METHOD #
|
||||
################
|
||||
|
|
|
|||
Loading…
Reference in New Issue