State Machine
Overview
Basic Usage
Defining a State Machine
from gyrinx.core.models.state_machine import StateMachine
from gyrinx.models import Base
class Order(Base):
states = StateMachine(
states=[
("PENDING", "Pending"),
("CONFIRMED", "Confirmed"),
("SHIPPED", "Shipped"),
("DELIVERED", "Delivered"),
("CANCELLED", "Cancelled"),
],
initial="PENDING",
transitions={
"PENDING": ["CONFIRMED", "CANCELLED"],
"CONFIRMED": ["SHIPPED", "CANCELLED"],
"SHIPPED": ["DELIVERED"],
},
)Transitioning States
Checking Transitions
Viewing History
API Reference
StateMachine Constructor
Parameter
Type
Description
StateMachineAccessor Properties
Property
Type
Description
StateMachineAccessor Methods
Method
Returns
Description
transition_to Parameters
Parameter
Type
Default
Description
Transition Model Fields
Field
Type
Description
Exceptions
InvalidStateTransition
Configuration Validation
Patterns
Convenience Methods with Atomic Transactions
Accessing Class-Level Configuration
Migrations
Admin Integration
Last updated