xstate-python
xstate-python copied to clipboard
Implement Strict Mode
Implement "strict": True
as an option in the machine configuration to allow a throw on a non-defined event for a given node. As it's a bit tricky to implement this external to the machine at present, e.g.:
# Doesn't throw
new_state = machine.transition(state=current_state, event="💩")
# Example of current check you'd have to do
if new_state.value == current_state.value:
print("Didn't transition, maybe was an illegal state 🤷")
Similar to the implementation in the TS version of xstate
https://github.com/statelyai/xstate/blob/8b7c3e2573341c5ed91057aab77e1977f8de8555/packages/core/src/StateNode.ts#L1095
Happy to take a crack at this if you think its worthwhile.