+ def handle_pins_event(self):
+ if not self.pins().door_closed:
+ return StateLeaving(self.state_machine)
+ if self.pins().door_locked:
+ return StateZu(self.state_machine)
+ def handle_wakeup_event(self):
+ over = time.time() - self.time_entered
+ if over >= LEAVE_TIMEOUT:
+ return StateClosing(self.state_machine)