diff --git a/src/tools/misc.py b/src/tools/misc.py index 8ed1effa..972d1787 100644 --- a/src/tools/misc.py +++ b/src/tools/misc.py @@ -26,6 +26,11 @@ from logging import debug, info, error class TriggerException(Exception): pass +class SkipOtherTriggers(Exception): + """ Exception to raise if normal behaviour must be followed instead of + followind triggers list """ + pass + class TriggerManager: """This class manage triggers: code which interact to change de behaviour of SàT""" @@ -62,7 +67,10 @@ class TriggerManager: return True for priority,trigger in self.__triggers[point_name]: - if not trigger(*args, **kwargs): - return False + try: + if not trigger(*args, **kwargs): + return False + except SkipOtherTriggers: + break return True