From 29da0a7ca6a2ffcef789a632c47c56cbcf10f785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sat, 7 Apr 2018 15:21:13 +0200 Subject: [PATCH] Implement first version of LinearFSM --- lib/tfw/__init__.py | 1 + lib/tfw/linear_fsm.py | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 lib/tfw/linear_fsm.py diff --git a/lib/tfw/__init__.py b/lib/tfw/__init__.py index ab6c8a6..a97731f 100644 --- a/lib/tfw/__init__.py +++ b/lib/tfw/__init__.py @@ -3,3 +3,4 @@ from .event_handler_base import TriggerlessEventHandler, TriggeredEventHandler from .fsm_base import FSMBase +from .linear_fsm import LinearFSM diff --git a/lib/tfw/linear_fsm.py b/lib/tfw/linear_fsm.py new file mode 100644 index 0000000..f5a63ba --- /dev/null +++ b/lib/tfw/linear_fsm.py @@ -0,0 +1,9 @@ +from .fsm_base import FSMBase + + +class LinearFSM(FSMBase): + def __init__(self, number_of_steps): + self.states = list(map(str, range(number_of_steps))) + self.transitions = [{'trigger': 'step', 'source': index, 'dest': str(int(index)+1)} + for index in self.states[:-1]] + super(LinearFSM, self).__init__()