summaryrefslogtreecommitdiff
path: root/taskflow/patterns/graph_flow.py
Commit message (Collapse)AuthorAgeFilesLines
...
* Integrate better locking and a runner helper class.Joshua Harlow2013-06-281-93/+53
| | | | | | | | | | | | | | | | | | | | | | Ensure that when a linear flow or derivatives is running that it can not be modified by another thread at the same time it is running by putting a lock around sensitive functions. Also instead of using the raw task objects themselves integrate a helper 'runner' class that provides useful functionality that occurs before its tasks runs as well as member variables that are associated with the contained task. This helper class currently provides the following: - A uuid that can be returned to callers of the add method to identify there task (and later its results), allowing for multiple of the same tasks to be added. - Automatic extraction of the needed required and optional inputs for the contained task. Change-Id: Ib01939a4726155a629e4b4703656b9067868d8f3
* Cleaning up various components.Joshua Harlow2013-06-281-14/+26
| | | | | | | | | | | 1. In order to aid future features its useful to split split apart the linear_flow and have a good base class that is not connected to a ordered or linear flow. 2. Have the graph flow inherit from the linear flow since it is performing a linear run using a topological ordering of the tasks. Change-Id: I287cd4a666caf09ca3a4cdf1d53814e9c6feb765
* Allow instance methods to be wrapped and unwrapped correctly.Joshua Harlow2013-06-271-5/+8
| | | | Change-Id: Ia29e0e8a54fa815dec88016a9444fe7cfad7b8ac
* Fix the current flake8 errorsAngus Salkeld2013-06-261-1/+1
| | | | | | | | The test pip ordering was resulting in the pep8 rules not really running so this fixes that up and the resulting errors so we can get a clean run. Change-Id: Icc27be05cd513c4f04135c7e768007dbf9d07b10
* Dinky change to trigger jenkins so I can cleanup.Joshua Harlow2013-06-191-4/+4
| | | | Change-Id: I5ff975bb5ded48a84341efa4ebfdae4bf430ab60
* Update how graph results are fetched when they are optional.Joshua Harlow2013-06-031-14/+26
|
* Allow for optional task requirements.Joshua Harlow2013-06-031-2/+4
|
* Remove safe_attrJoshua Harlow2013-05-281-5/+4
|
* Instead of apply use __call__Joshua Harlow2013-05-261-4/+5
| | | | | | | | Instead of requiring a apply() function just use the built-in one provided by objects or functions implementing __call__. Also change how requires/provides may not be found if functors are just passed in (since functors implement __call__).
* Use rollback accumulator and remove requires()/provides() from being functionsJoshua Harlow2013-05-231-7/+6
| | | | | | Use a new rollback accumulator to collect which tasks need to be rolled back and use that in the ordered workflow code. Move the usage of provides/requires as functions and just let them be attributes of the flow objects.
* Allow (or disallow) multiple providers of items.Joshua Harlow2013-05-221-12/+32
| | | | | | | Incases where a item is produced by 2+ tasks we should allow the task that depends on that item to get the 2+ items produced as a list of items. We can also disallow this type of production via a new boolean option.
* Massive pylint cleanupJoshua Harlow2013-05-211-2/+0
|
* Update order calls and connect call.Joshua Harlow2013-05-211-17/+20
|
* Check who is being connected to and ensure > 0 connectors.Joshua Harlow2013-05-201-8/+13
| | | | | Ensure that we connect from some input to some node that provides said input (not itself).
* Graph tests and adjustments releated to.Joshua Harlow2013-05-201-8/+26
|
* More pythonic functions and workflow -> flow renaming.Joshua Harlow2013-05-201-0/+86