In [1]:
class Matter(object):
pass
lump = Matter()
In [21]:
from transitions import Machine, State
In [9]:
states = ['solid','liquid','gas','plasma']
transitions = [
{ 'trigger': 'melt', 'source': 'solid', 'dest': 'liquid' },
{ 'trigger': 'evaporate', 'source': 'liquid', 'dest': 'gas' },
{ 'trigger': 'sublimate', 'source': 'solid', 'dest': 'gas' },
{ 'trigger': 'ionize', 'source': 'gas', 'dest': 'plasma' }
]
In [19]:
machine = Machine(model = lump, states = states, transitions=transitions, initial='liquid')
print (lump.state)
lump.evaporate()
print (lump.state)
lump.ionize()
print (lump.state)
In [22]:
class Matter(object):
def say_hello(self):
print("hello, new state!")
def say_goodbye(self):
print("goodbye, old state!")
lump = Matter()
states = [
State(name='solid', on_exit=['say_goodbye']),
'liquid',
{ 'name': 'gas' }
]
machine = Machine(lump, states=states)
machine.add_transition('sublimate', 'solid', 'gas')
machine.on_enter_gas('say_hello')
machine.set_state('solid')
lump.sublimate()
Out[22]: