Files
deb-python-taskflow/docs/examples/reverting_linear.py
Joshua Harlow 6c40c56c5b Add a start of a few simple examples.
Change-Id: I6abd1798de6f2a778f874b8fa928772b94e7b588
2013-06-27 11:02:49 -07:00

53 lines
1.1 KiB
Python

import logging
import os
import sys
logging.basicConfig(level=logging.ERROR)
if not os.path.isfile(os.path.join(os.getcwd(), "taskflow", '__init__.py')):
sys.path.insert(0, os.path.join(os.path.abspath(os.getcwd()), os.pardir))
else:
sys.path.insert(0, os.path.abspath(os.getcwd()))
from taskflow import decorators
from taskflow.patterns import linear_flow as lf
def undo_call(context, result, cause):
print("Calling %s and apologizing." % result)
@decorators.task(revert_with=undo_call)
def call_jim(context):
print("Calling jim.")
print("Context = %s" % (context))
return context['jim_number']
@decorators.task(revert_with=undo_call)
def call_joe(context):
print("Calling joe.")
print("Context = %s" % (context))
return context['joe_number']
def call_suzzie(context):
raise IOError("Suzzie not home right now.")
flow = lf.Flow("call-them")
flow.add(call_jim)
flow.add(call_joe)
flow.add(call_suzzie)
context = {
"joe_number": 444,
"jim_number": 555,
}
try:
flow.run(context)
except Exception as e:
print("Flow failed: %s" % (e))