diff options
| author | Ivan A. Melnikov <imelnikov@griddynamics.com> | 2014-05-06 15:26:46 +0400 |
|---|---|---|
| committer | Ivan A. Melnikov <imelnikov@griddynamics.com> | 2014-05-07 11:17:50 +0400 |
| commit | 095650653d53d4a2f431bea20fabc440263d38e7 (patch) | |
| tree | e4a61c288ec7591122405cac9bea78d532ef3153 /taskflow/patterns/graph_flow.py | |
| parent | ee1e96d87d385baf3f583cabea94997b50130985 (diff) | |
| download | taskflow-095650653d53d4a2f431bea20fabc440263d38e7.tar.gz | |
Put provides and requires code to basic Flow
Code that calculates provides and requires for flow is almost
identical for all patterns, so this change makes it completely
identical and puts it to the base class. Other patterns are
still allowed to override these properties for sake of customization
or optimization.
Change-Id: I6e875e863047b5287ec727fc9a491f252f144ecf
Diffstat (limited to 'taskflow/patterns/graph_flow.py')
| -rw-r--r-- | taskflow/patterns/graph_flow.py | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/taskflow/patterns/graph_flow.py b/taskflow/patterns/graph_flow.py index 6869199..0ed74c7 100644 --- a/taskflow/patterns/graph_flow.py +++ b/taskflow/patterns/graph_flow.py @@ -104,8 +104,8 @@ class Flow(flow.Flow): if self.retry: update_requirements(self.retry) - provided.update(dict((k, - self.retry) for k in self._retry_provides)) + provided.update(dict((k, self.retry) + for k in self.retry.provides)) # NOTE(harlowja): Add items and edges to a temporary copy of the # underlying graph and only if that is successful added to do we then @@ -123,7 +123,7 @@ class Flow(flow.Flow): % dict(item=item.name, flow=provided[value].name, value=value)) - if value in self._retry_requires: + if self.retry and value in self.retry.requires: raise exc.DependencyFailure( "Flows retry controller %(retry)s requires %(value)s " "but item %(item)s being added to the flow produces " @@ -167,22 +167,6 @@ class Flow(flow.Flow): for (u, v, e_data) in self._get_subgraph().edges_iter(data=True): yield (u, v, e_data) - @property - def provides(self): - provides = set() - provides.update(self._retry_provides) - for subflow in self: - provides.update(subflow.provides) - return provides - - @property - def requires(self): - requires = set() - requires.update(self._retry_requires) - for subflow in self: - requires.update(subflow.requires) - return requires - self.provides - class TargetedFlow(Flow): """Graph flow with a target. |
