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): ...@@ -29,6 +29,14 @@ class Graph(object):
def edges(self): def edges(self):
return self._edges return self._edges
def enable_edges(self):
return list(
filter(
lambda e: e.is_enable(),
self._edges
)
)
def edges_names(self): def edges_names(self):
return list(map(lambda e: e.name, self._edges)) return list(map(lambda e: e.name, self._edges))
...@@ -38,6 +46,13 @@ class Graph(object): ...@@ -38,6 +46,13 @@ class Graph(object):
def edges_counts(self): def edges_counts(self):
return len(self._edges) 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): def is_node_exists(self, node_name):
return reduce( return reduce(
lambda acc, n: (acc or (n.name == node_name)), lambda acc, n: (acc or (n.name == node_name)),
......
...@@ -336,9 +336,16 @@ class River(Graph, SQLSubModel): ...@@ -336,9 +336,16 @@ class River(Graph, SQLSubModel):
return self._parameters[solver] return self._parameters[solver]
def has_current_reach(self): def has_current_reach(self):
if self.enable_edges_counts() == 1:
return True
return self._current_reach is not None return self._current_reach is not None
def current_reach(self): def current_reach(self):
ee = self.enable_edges()
if len(ee) == 1:
return ee[0]
return self._current_reach return self._current_reach
def set_current_reach(self, 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