Skip to content

Instantly share code, notes, and snippets.

@Tendrid
Created October 9, 2013 15:17
Show Gist options
  • Save Tendrid/6902912 to your computer and use it in GitHub Desktop.
Save Tendrid/6902912 to your computer and use it in GitHub Desktop.
while True:
print self._cur_state
if self._cur_state is None: break
if audit: audit_trail.append(self._cur_state.name)
try:
self._cur_state = self._cur_state.run()
except self.Transition, t:
if isinstance(t.state, State):
self._cur_state = t.state
elif t.state is None:
self._cur_state = None
else:
self._cur_state = self.state(t.state)
except Exception, e:
estate = self._states.get('error',None)
if estate:
log.error("{} error raised in {}".format(e.__class__.__name__, self._cur_state.name))
_next = estate.run()
audit_trail.append(estate)
if _next:
self._cur_state = _next
else:
log.warn("No state.error defined")
raise e
audit_trail.append(None)
return audit_trail
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment