Commit c2c1667a authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

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

Showing with 22 additions and 0 deletions
+22 -0
......@@ -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)),
......
......@@ -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):
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment