baseimage-tutorial-framework/lib/tfw/linear_fsm.py

19 lines
761 B
Python
Raw Normal View History

# Copyright (C) 2018 Avatao.com Innovative Learning Kft.
# All Rights Reserved. See LICENSE file for details.
2018-04-07 13:21:13 +00:00
from .fsm_base import FSMBase
class LinearFSM(FSMBase):
2018-04-18 17:44:26 +00:00
"""
This is a state machine for challenges with linear progression, consisting of
a number of steps specified in the constructor. It automatically sets up a single
action between states as such:
0 ==step_1==> 1 ==step_2==> 2 ==step_3==> 3 ... and so on
"""
2018-04-07 13:21:13 +00:00
def __init__(self, number_of_steps):
self.states = list(map(str, range(number_of_steps)))
2018-04-19 07:21:41 +00:00
self.transitions = [{'trigger': f'step_{int(index)+1}', 'source': index, 'dest': str(int(index)+1)}
2018-04-07 13:21:13 +00:00
for index in self.states[:-1]]
super(LinearFSM, self).__init__()