Network: If there is only one edge, select it as current reach.

results
Pierre-Antoine Rouby 2023-07-07 14:45:34 +02:00
parent 53dc068dab
commit c2c1667a73
2 changed files with 22 additions and 0 deletions

View File

@ -29,6 +29,14 @@ class Graph(object):
def edges(self):
return self._edges
def enable_edges(self):
return list(
filter(
lambda e: e.is_enable(),
self._edges
)
)
def edges_names(self):
return list(map(lambda e: e.name, self._edges))
@ -38,6 +46,13 @@ class Graph(object):
def edges_counts(self):
return len(self._edges)
def enable_edges_counts(self):
return reduce(
lambda acc, e: acc + 1 if e.is_enable() else acc,
self._edges,
0
)
def is_node_exists(self, node_name):
return reduce(
lambda acc, n: (acc or (n.name == node_name)),

View File

@ -336,9 +336,16 @@ class River(Graph, SQLSubModel):
return self._parameters[solver]
def has_current_reach(self):
if self.enable_edges_counts() == 1:
return True
return self._current_reach is not None
def current_reach(self):
ee = self.enable_edges()
if len(ee) == 1:
return ee[0]
return self._current_reach
def set_current_reach(self, reach):