comparison sat/tools/async_trigger.py @ 3755:e14847bf65c0

tools (async_trigger): fix return value in `asyncReturnPoint` + typing hints
author Goffi <goffi@goffi.org>
date Fri, 13 May 2022 18:19:56 +0200
parents 7f5bf108961a
children 524856bd7b19
comparison
equal deleted inserted replaced
3754:af485e8afe03 3755:e14847bf65c0
17 # You should have received a copy of the GNU Affero General Public License 17 # You should have received a copy of the GNU Affero General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20 """Misc usefull classes""" 20 """Misc usefull classes"""
21 21
22 from typing import Tuple, Any
22 from . import trigger as sync_trigger 23 from . import trigger as sync_trigger
23 from . import utils 24 from . import utils
24 from twisted.internet import defer 25 from twisted.internet import defer
25 26
26 class TriggerManager(sync_trigger.TriggerManager): 27 class TriggerManager(sync_trigger.TriggerManager):
51 defer.returnValue(False) 52 defer.returnValue(False)
52 except sync_trigger.SkipOtherTriggers: 53 except sync_trigger.SkipOtherTriggers:
53 break 54 break
54 defer.returnValue(True) 55 defer.returnValue(True)
55 56
56 async def asyncReturnPoint(self, point_name, *args, **kwargs): 57 async def asyncReturnPoint(
58 self,
59 point_name: str,
60 *args, **kwargs
61 ) -> Tuple[bool, Any]:
57 """Async version of returnPoint""" 62 """Async version of returnPoint"""
58 if point_name not in self.__triggers: 63 if point_name not in self.__triggers:
59 return True 64 return True, None
60 65
61 for priority, trigger in self.__triggers[point_name]: 66 for priority, trigger in self.__triggers[point_name]:
62 try: 67 try:
63 cont, ret_value = await utils.asDeferred(trigger, *args, **kwargs) 68 cont, ret_value = await utils.asDeferred(trigger, *args, **kwargs)
64 if not cont: 69 if not cont: