diff --git a/docs/source/foundations/eventhandlers.rst b/docs/source/foundations/eventhandlers.rst index 9b8d91c..be0a05e 100644 --- a/docs/source/foundations/eventhandlers.rst +++ b/docs/source/foundations/eventhandlers.rst @@ -3,10 +3,13 @@ Event handler base classes Subclass these to create your cusom event handlers. -.. automodule:: tfw +.. automodule:: tfw.event_handler_base .. autoclass:: EventHandlerBase :members: -.. autoclass:: TriggeredEventHandler +.. autoclass:: FSMAwareEventHandler + :members: + +.. autoclass:: BroadcastingEventHandler :members: diff --git a/docs/source/foundations/fsms.rst b/docs/source/foundations/fsms.rst index 190ee8b..ce50b31 100644 --- a/docs/source/foundations/fsms.rst +++ b/docs/source/foundations/fsms.rst @@ -3,10 +3,13 @@ FSM base classes Subclass these to create an FSM that fits your tutorial/challenge. -.. automodule:: tfw +.. automodule:: tfw.fsm .. autoclass:: FSMBase :members: .. autoclass:: LinearFSM :members: + +.. autoclass:: YamlFSM + :members: diff --git a/docs/source/networking/networking.rst b/docs/source/networking/networking.rst index 317d266..be18772 100644 --- a/docs/source/networking/networking.rst +++ b/docs/source/networking/networking.rst @@ -6,7 +6,7 @@ Networking .. autoclass:: TFWServerConnector :members: -.. automodule:: tfw.networking.event_handlers +.. automodule:: tfw.networking.event_handlers.server_connector .. autoclass:: ServerUplinkConnector :members: @@ -15,3 +15,8 @@ Networking .. autoclass:: MessageSender :members: + +.. automodule:: tfw.networking.fsm_aware + +.. autoclass:: FSMAware + :members: diff --git a/lib/tfw/fsm/fsm_base.py b/lib/tfw/fsm/fsm_base.py index 5b58ce3..d9fff29 100644 --- a/lib/tfw/fsm/fsm_base.py +++ b/lib/tfw/fsm/fsm_base.py @@ -23,6 +23,11 @@ class FSMBase(Machine, CallbackMixin): states, transitions = [], [] def __init__(self, initial=None, accepted_states=None): + """ + :param initial: which state to begin with, defaults to the last one + :param accepted_states: list of states in which the challenge should be + considered successfully completed + """ self.accepted_states = accepted_states or [self.states[-1].name] self.trigger_predicates = defaultdict(list) self.event_log = [] diff --git a/lib/tfw/fsm/linear_fsm.py b/lib/tfw/fsm/linear_fsm.py index e515d8f..5ac5eaf 100644 --- a/lib/tfw/fsm/linear_fsm.py +++ b/lib/tfw/fsm/linear_fsm.py @@ -16,6 +16,9 @@ class LinearFSM(FSMBase): (0) -- step_next --> (1) -- step_next --> (2) -- step_next --> (3) ... """ def __init__(self, number_of_steps): + """ + :param number_of_steps: how many states this FSM should have + """ self.states = [State(name=str(index)) for index in range(number_of_steps)] self.transitions = [] for state in self.states[:-1]: