#!/usr/bin/python3 # $HeadURL$ $LastChangedRevision$ def check_media(media_id): print("check_media: media_id=%s" % (media_id)) return True def check_media_and_set(media_id, set_id): print("check_media_and_set: media_id=%s, set_id=%s" % (media_id, set_id)) return False # Use of lambda delays evaluation. steps = { 'START': lambda : 'xxx', 'xxx': lambda : 'check_media', 'check_media': lambda : 'check_media_and_set' if check_media(media_id) else 'check_media_and_set_failed', 'check_media_and_set': lambda : 'OK' if check_media_and_set(media_id, set_id) else 'FAIL', } state = 'START' media_id = 'vtape003.04' set_id = 'weekly' while state != 'FAIL' and state != 'OK': print("looking up action for state '%s' ..." % (state)) state = steps[state]() print(state)