Created
April 18, 2017 18:53
-
-
Save harlowja/1151348e065c3156d62d4870cee3471e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ python test.py | |
DEBUG:taskflow.engines.helpers:Looking for 'default' engine driver in 'taskflow.engines' | |
DEBUG:stevedore.extension:found extension EntryPoint.parse('default = taskflow.engines.action_engine.engine:SerialActionEngine') | |
DEBUG:stevedore.extension:found extension EntryPoint.parse('serial = taskflow.engines.action_engine.engine:SerialActionEngine') | |
DEBUG:stevedore.extension:found extension EntryPoint.parse('workers = taskflow.engines.worker_based.engine:WorkerBasedActionEngine') | |
DEBUG:stevedore.extension:found extension EntryPoint.parse('worker-based = taskflow.engines.worker_based.engine:WorkerBasedActionEngine') | |
DEBUG:stevedore.extension:found extension EntryPoint.parse('parallel = taskflow.engines.action_engine.engine:ParallelActionEngine') | |
Level 5:taskflow.engines.action_engine.compiler:Compiling 'linear_flow.Flow: test(len=2)' | |
Level 5:taskflow.engines.action_engine.compiler: Compiling '__main__.HappyTask==1.0' | |
Level 5:taskflow.engines.action_engine.compiler: Decomposed '__main__.HappyTask==1.0' into: | |
Level 5:taskflow.engines.action_engine.compiler: Graph: | |
Level 5:taskflow.engines.action_engine.compiler: Name: __main__.HappyTask | |
Level 5:taskflow.engines.action_engine.compiler: Type: DiGraph | |
Level 5:taskflow.engines.action_engine.compiler: Frozen: False | |
Level 5:taskflow.engines.action_engine.compiler: Density: 0.000 | |
Level 5:taskflow.engines.action_engine.compiler: Nodes: 1 | |
Level 5:taskflow.engines.action_engine.compiler: - __main__.HappyTask==1.0 ({'kind': 'task'}) | |
Level 5:taskflow.engines.action_engine.compiler: Edges: 0 | |
Level 5:taskflow.engines.action_engine.compiler: Cycles: 0 | |
Level 5:taskflow.engines.action_engine.compiler: Hierarchy: | |
Level 5:taskflow.engines.action_engine.compiler: __main__.HappyTask==1.0 | |
Level 5:taskflow.engines.action_engine.compiler: Compiling '__main__.MyTask==1.0' | |
Level 5:taskflow.engines.action_engine.compiler: Decomposed '__main__.MyTask==1.0' into: | |
Level 5:taskflow.engines.action_engine.compiler: Graph: | |
Level 5:taskflow.engines.action_engine.compiler: Name: __main__.MyTask | |
Level 5:taskflow.engines.action_engine.compiler: Type: DiGraph | |
Level 5:taskflow.engines.action_engine.compiler: Frozen: False | |
Level 5:taskflow.engines.action_engine.compiler: Density: 0.000 | |
Level 5:taskflow.engines.action_engine.compiler: Nodes: 1 | |
Level 5:taskflow.engines.action_engine.compiler: - __main__.MyTask==1.0 ({'kind': 'task'}) | |
Level 5:taskflow.engines.action_engine.compiler: Edges: 0 | |
Level 5:taskflow.engines.action_engine.compiler: Cycles: 0 | |
Level 5:taskflow.engines.action_engine.compiler: Hierarchy: | |
Level 5:taskflow.engines.action_engine.compiler: __main__.MyTask==1.0 | |
Level 5:taskflow.engines.action_engine.compiler:Decomposed 'linear_flow.Flow: test(len=2)' into: | |
Level 5:taskflow.engines.action_engine.compiler: Graph: | |
Level 5:taskflow.engines.action_engine.compiler: Name: test | |
Level 5:taskflow.engines.action_engine.compiler: Type: DiGraph | |
Level 5:taskflow.engines.action_engine.compiler: Frozen: False | |
Level 5:taskflow.engines.action_engine.compiler: Density: 0.250 | |
Level 5:taskflow.engines.action_engine.compiler: Nodes: 4 | |
Level 5:taskflow.engines.action_engine.compiler: - __main__.HappyTask==1.0 ({'kind': 'task'}) | |
Level 5:taskflow.engines.action_engine.compiler: - __main__.MyTask==1.0 ({'kind': 'task'}) | |
Level 5:taskflow.engines.action_engine.compiler: - linear_flow.Flow: test(len=2)[$] ({'kind': 'flow_end', 'noop': True}) | |
Level 5:taskflow.engines.action_engine.compiler: - linear_flow.Flow: test(len=2) ({'kind': 'flow', 'noop': True}) | |
Level 5:taskflow.engines.action_engine.compiler: Edges: 3 | |
Level 5:taskflow.engines.action_engine.compiler: __main__.HappyTask==1.0 -> __main__.MyTask==1.0 ({'invariant': True}) | |
Level 5:taskflow.engines.action_engine.compiler: __main__.MyTask==1.0 -> linear_flow.Flow: test(len=2)[$] ({'invariant': True}) | |
Level 5:taskflow.engines.action_engine.compiler: linear_flow.Flow: test(len=2) -> __main__.HappyTask==1.0 ({'invariant': True}) | |
Level 5:taskflow.engines.action_engine.compiler: Cycles: 0 | |
Level 5:taskflow.engines.action_engine.compiler: Hierarchy: | |
Level 5:taskflow.engines.action_engine.compiler: linear_flow.Flow: test(len=2) | |
Level 5:taskflow.engines.action_engine.compiler: |____main__.HappyTask==1.0 | |
Level 5:taskflow.engines.action_engine.compiler: |____main__.MyTask==1.0 | |
Level 5:taskflow.engines.action_engine.runtime:Compiled {'scope_walker': <taskflow.engines.action_engine.scopes.ScopeWalker object at 0x106d11790>, 'change_state_handler': <functools.partial object at 0x106d18ec0>, 'edge_deciders': (), 'check_transition_handler': <function check_task_transition at 0x106646e60>, 'scheduler': <taskflow.engines.action_engine.scheduler.TaskScheduler object at 0x106d11710>, 'action': <taskflow.engines.action_engine.actions.task.TaskAction object at 0x106d11550>} metadata for node __main__.HappyTask (task) | |
Level 5:taskflow.engines.action_engine.runtime:Compiled {'scope_walker': <taskflow.engines.action_engine.scopes.ScopeWalker object at 0x106d117d0>, 'change_state_handler': <functools.partial object at 0x106d18ec0>, 'edge_deciders': (), 'check_transition_handler': <function check_task_transition at 0x106646e60>, 'scheduler': <taskflow.engines.action_engine.scheduler.TaskScheduler object at 0x106d11710>, 'action': <taskflow.engines.action_engine.actions.task.TaskAction object at 0x106d11550>} metadata for node __main__.MyTask (task) | |
Level 5:taskflow.engines.action_engine.engine:Validating scoping and argument visibility for execution graph with 4 nodes and 3 edges with density 0.250 | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'UNDEFINED' in response to event 'start' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'RESUMING' in response to event 'start' | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to execute | |
Level 5:taskflow.engines.action_engine.selector:Able to let '__main__.HappyTask==1.0' execute | |
Level 5:taskflow.engines.action_engine.deciders:Out of 0 deciders there were [] 'do no run it' voters, [] 'do run it' voters and [] 'ignored' voters for transition to atom '__main__.HappyTask' given history {} | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to execute | |
Level 5:taskflow.engines.action_engine.selector:Unable to begin to execute since predecessor atom '__main__.HappyTask==1.0' is in state PENDING with intention EXECUTE | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.HappyTask==1.0' is not ready to revert since it can not transition to REVERTING from its current state PENDING | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.MyTask==1.0' is not ready to revert since it can not transition to REVERTING from its current state PENDING | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'RESUMING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'SCHEDULING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'SCHEDULING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'WAITING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'WAITING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'ANALYZING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to execute | |
Level 5:taskflow.engines.action_engine.selector:Able to let '__main__.MyTask==1.0' execute | |
Level 5:taskflow.engines.action_engine.deciders:Out of 0 deciders there were [] 'do no run it' voters, [] 'do run it' voters and [] 'ignored' voters for transition to atom '__main__.MyTask' given history {} | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'ANALYZING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'SCHEDULING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'SCHEDULING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'WAITING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'WAITING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'ANALYZING' in response to event 'examine_finished' | |
DEBUG:taskflow.engines.action_engine.completer:Applying resolver 'RevertAll(strategy=REVERT_ALL)' to resolve failure 'Failure: ValueError: foo' of atom '__main__.MyTask==1.0' | |
Level 5:taskflow.engines.action_engine.completer:Modified/tweaked [(<__main__.HappyTask __main__.HappyTask==1.0>, None, 'REVERT'), (<__main__.MyTask __main__.MyTask==1.0>, None, 'REVERT')] nodes while applying resolver 'RevertAll(strategy=REVERT_ALL)' | |
DEBUG:taskflow.engines.action_engine.builder:Had failure 'Failure: ValueError: foo' (in response to outcome 'executed') during completion of atom '__main__.MyTask==1.0' (intention is/was to REVERT) | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Unable to begin to revert since successor atom '__main__.MyTask==1.0' is in state FAILURE | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Able to let '__main__.MyTask==1.0' revert | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'ANALYZING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'SCHEDULING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'SCHEDULING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'WAITING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'WAITING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'ANALYZING' in response to event 'examine_finished' | |
DEBUG:taskflow.engines.action_engine.builder:Had failure 'Failure: ValueError: bar' (in response to outcome 'reverted') during completion of atom '__main__.MyTask==1.0' (intention is/was to REVERT) | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Able to let '__main__.HappyTask==1.0' revert | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'ANALYZING' in response to event 'schedule_next' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'SCHEDULING' in response to event 'schedule_next' | |
undoing | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'SCHEDULING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'WAITING' in response to event 'wait_finished' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'WAITING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'ANALYZING' in response to event 'examine_finished' | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'ANALYZING' in response to event 'completed' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'GAME_OVER' in response to event 'completed' | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to execute | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.HappyTask==1.0' is not ready to execute since it can not transition to RUNNING from its current state REVERTED | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to execute | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.MyTask==1.0' is not ready to execute since it can not transition to RUNNING from its current state REVERT_FAILURE | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.HappyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.HappyTask==1.0' is not ready to revert since it can not transition to REVERTING from its current state REVERTED | |
Level 5:taskflow.engines.action_engine.selector:Checking if '__main__.MyTask==1.0' is ready to revert | |
Level 5:taskflow.engines.action_engine.selector:Atom '__main__.MyTask==1.0' is not ready to revert since it can not transition to REVERTING from its current state REVERT_FAILURE | |
Level 5:taskflow.engines.action_engine.builder:Exiting old state 'GAME_OVER' in response to event 'reverted' | |
Level 5:taskflow.engines.action_engine.builder:Entering new state 'REVERTED' in response to event 'reverted' | |
Traceback (most recent call last): | |
File "test.py", line 25, in <module> | |
eng.run(flo) | |
File "/Users/jxharlow/Dev/taskflow/taskflow/engines/helpers.py", line 162, in run | |
engine.run() | |
File "/Users/jxharlow/Dev/taskflow/taskflow/engines/action_engine/engine.py", line 247, in run | |
for _state in self.run_iter(timeout=timeout): | |
File "/Users/jxharlow/Dev/taskflow/taskflow/engines/action_engine/engine.py", line 340, in run_iter | |
failure.Failure.reraise_if_any(er_failures) | |
File "/Users/jxharlow/Dev/taskflow/taskflow/types/failure.py", line 338, in reraise_if_any | |
raise exc.WrappedFailure(failures) | |
taskflow.exceptions.WrappedFailure: WrappedFailure: [Failure: ValueError: foo, Failure: ValueError: bar] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment