Supported Sismic subset¶
State Mate intentionally accepts only constructs that map directly and predictably to the generated flat python-statemachine class.
Statechart shape¶
A supported statechart has:
- exactly one root state;
- a compound root state;
- an initial child declared on the root;
- at least one direct child state;
- no descendants below those direct children.
Supported child states¶
Direct children of the root may be:
BasicState;FinalState.
Supported transitions¶
Transitions must:
- originate from a direct root child;
- target a direct root child;
- declare an event;
- be external transitions;
- have no guard;
- have no action;
- use the default priority;
- have no preconditions, postconditions, or invariants.
Repeated event names are supported. State Mate combines their transition declarations into one python-statemachine event expression.
Unsupported Sismic features¶
State Mate rejects:
- nested compound states;
- parallel states;
- history states;
- eventless transitions;
- internal transitions;
- guards;
- transition actions;
- non-default transition priorities;
- state entry actions;
- state exit actions;
- state contracts;
- transition contracts.
Python naming rules¶
State names are converted to uppercase Python identifiers for enum members. Event names are converted to valid Python identifiers for state-machine event attributes.
Generation fails if two distinct source names normalize to the same Python name. This prevents silent overwriting or ambiguous generated code.