message['new state'] in self.conf['states']):
assert isinstance(message['new state'], str)
new_state = message['new state']
- commands = self.conf['states'][self._state]['exit']
+ commands = []
+ if 'exit' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['exit']
for command in commands:
await self.bus.send(Message(self.name, command))
self._state = new_state
await self.bus.send(Message(self.name,
{'event': 'changed',
'state': new_state}))
- commands = (self.conf['states'][self._state]['entry']
- + self.conf['states'][self._state]['commands'])
+ commands = []
+ if 'entry' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['entry']
+ if 'commands' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['commands']
for command in commands:
await self.bus.send(Message(self.name, command))
transition['to'] in self.conf['states']):
assert isinstance(transition['to'], str)
new_state = transition['to']
- commands = self.conf['states'][self._state]['exit']
+ commands = []
+ if 'exit' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['exit']
for command in commands:
await self.bus.send(Message(self.name, command))
self._state = new_state
await self.bus.send(Message(self.name,
{'event': 'changed',
'state': new_state}))
- commands = (self.conf['states'][self._state]['entry']
- + self.conf['states'][self._state]['commands'])
+ commands = []
+ if 'entry' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['entry']
+ if 'commands' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['commands']
for command in commands:
await self.bus.send(Message(self.name, command))
break
"""Go into initial state."""
if self.conf['init'] in self.conf['states']:
self._state = self.conf['init']
- commands = (self.conf['states'][self._state]['entry']
- + self.conf['states'][self._state]['commands'])
+ commands = []
+ if 'entry' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['entry']
+ if 'commands' in self.conf['states'][self._state]:
+ commands += self.conf['states'][self._state]['commands']
for command in commands:
await self.bus.send(Message(self.name, command))