i am using pytransitions for first time and faced this problem, i am trying to do some states and test it
from transitions import Machine
class TelegramBot(object):
states = ['asleep',
'wait_for_size',
'size_selected'
'wait_for_payment',
'payment_selected',
'wait_for_confirmation',
'confirmed']
transitions = [
{'trigger': 'wait_for_size', 'source': 'asleep', 'dest': 'size_selected'},
{'trigger': 'wait_for_payment', 'source': 'size_selected', 'dest': 'payment_selected'},
{'trigger': 'wait_for_confirmation', 'source': 'payment_selected', 'dest': 'confirmed'},
{'trigger': 'asleep', 'source': 'confirmed', 'dest': 'asleep'}
]
def __init__(self, name):
self.name = name
self.pizza_orders = 0
self.machine = Machine(model=self,
states=TelegramBot.states,
initial='asleep')
self.machine.add_transition(trigger='wait_for_size',
source='asleep',
dest='size_selected')
self.machine.add_transition(trigger='wait_for_payment',
source='size_selected',
dest='payment_selected')
self.machine.add_transition(trigger='wait_for_confirmation',
source='payment_selected',
dest='confirmed')
self.machine.add_transition(trigger='confirmed',
source='wait_for_confirmation',
dest='asleep')
def update_orders(self):
self.pizza_orders += 1
tgBot = TelegramBot('KVINT_TEST')
print(tgBot.state)
tgBot.wait_for_size()
print(tgBot.state)
i am trying to change states by my self and got this error: ValueError: State 'size_selected' is not a registered state.
i followed up by the documentation sorry might be silly question