diff --git a/tfw/fsm/fsm_base.py b/tfw/fsm/fsm_base.py index c35d094..707b4da 100644 --- a/tfw/fsm/fsm_base.py +++ b/tfw/fsm/fsm_base.py @@ -1,6 +1,7 @@ import logging from collections import defaultdict from datetime import datetime +from contextlib import suppress from transitions import Machine, MachineError @@ -62,14 +63,12 @@ class FSMBase(Machine, CallbackMixin): ) if all(predicate_results): - try: + with suppress(AttributeError, MachineError): from_state = self.state - self.trigger(trigger) - self.update_event_log(from_state, trigger) - return True - except (AttributeError, MachineError): - LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger) - return False + if self.trigger(trigger): + self.update_event_log(from_state, trigger) + return True + LOG.debug('FSM failed to execute nonexistent trigger: "%s"', trigger) def update_event_log(self, from_state, trigger): self.event_log.append({