def __init__(self, name, status, result=None, context=None): if not statuses.is_valid(status): raise exc.InvalidStatus(status) self.name = name self.status = status self.result = result self.context = context
def is_transition_valid(cls, old_status, new_status): if old_status is None: old_status = 'null' if new_status is None: new_status = 'null' if not statuses.is_valid(old_status): raise exc.InvalidStatus(old_status) if not statuses.is_valid(new_status): raise exc.InvalidStatus(new_status) if old_status not in TASK_STATE_MACHINE_DATA.keys(): return False if old_status == new_status or new_status in TASK_STATE_MACHINE_DATA[old_status].values(): return True return False