comparison sat/tools/async_trigger.py @ 4037:524856bd7b19

massive refactoring to switch from camelCase to snake_case: historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a pre-PEP8 code, to use the same coding style as in Twisted. However, snake_case is more readable and it's better to follow PEP8 best practices, so it has been decided to move on full snake_case. Because Libervia has a huge codebase, this ended with a ugly mix of camelCase and snake_case. To fix that, this patch does a big refactoring by renaming every function and method (including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case. This is a massive change, and may result in some bugs.
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:54:42 +0200
parents e14847bf65c0
children
comparison
equal deleted inserted replaced
4036:c4464d7ae97b 4037:524856bd7b19
23 from . import trigger as sync_trigger 23 from . import trigger as sync_trigger
24 from . import utils 24 from . import utils
25 from twisted.internet import defer 25 from twisted.internet import defer
26 26
27 class TriggerManager(sync_trigger.TriggerManager): 27 class TriggerManager(sync_trigger.TriggerManager):
28 """This is a TriggerManager with an new asyncPoint method""" 28 """This is a TriggerManager with an new async_point method"""
29 29
30 @defer.inlineCallbacks 30 @defer.inlineCallbacks
31 def asyncPoint(self, point_name, *args, **kwargs): 31 def async_point(self, point_name, *args, **kwargs):
32 """This put a trigger point with potentially async Deferred 32 """This put a trigger point with potentially async Deferred
33 33
34 All the triggers for that point will be run 34 All the triggers for that point will be run
35 @param point_name: name of the trigger point 35 @param point_name: name of the trigger point
36 @param *args: args to transmit to trigger 36 @param *args: args to transmit to trigger
45 45
46 can_cancel = not kwargs.pop('triggers_no_cancel', False) 46 can_cancel = not kwargs.pop('triggers_no_cancel', False)
47 47
48 for priority, trigger in self.__triggers[point_name]: 48 for priority, trigger in self.__triggers[point_name]:
49 try: 49 try:
50 cont = yield utils.asDeferred(trigger, *args, **kwargs) 50 cont = yield utils.as_deferred(trigger, *args, **kwargs)
51 if can_cancel and not cont: 51 if can_cancel and not cont:
52 defer.returnValue(False) 52 defer.returnValue(False)
53 except sync_trigger.SkipOtherTriggers: 53 except sync_trigger.SkipOtherTriggers:
54 break 54 break
55 defer.returnValue(True) 55 defer.returnValue(True)
56 56
57 async def asyncReturnPoint( 57 async def async_return_point(
58 self, 58 self,
59 point_name: str, 59 point_name: str,
60 *args, **kwargs 60 *args, **kwargs
61 ) -> Tuple[bool, Any]: 61 ) -> Tuple[bool, Any]:
62 """Async version of returnPoint""" 62 """Async version of return_point"""
63 if point_name not in self.__triggers: 63 if point_name not in self.__triggers:
64 return True, None 64 return True, None
65 65
66 for priority, trigger in self.__triggers[point_name]: 66 for priority, trigger in self.__triggers[point_name]:
67 try: 67 try:
68 cont, ret_value = await utils.asDeferred(trigger, *args, **kwargs) 68 cont, ret_value = await utils.as_deferred(trigger, *args, **kwargs)
69 if not cont: 69 if not cont:
70 return False, ret_value 70 return False, ret_value
71 except sync_trigger.SkipOtherTriggers: 71 except sync_trigger.SkipOtherTriggers:
72 break 72 break
73 return True, None 73 return True, None