1212from paradox .lib .encodings import register_encodings
1313from paradox .paradox import Paradox
1414
15- alarm = None
16- interface_manager = None
17-
1815logger = logging .getLogger ("PAI" )
1916
2017
@@ -53,34 +50,33 @@ def configure_logger(logger):
5350 logger .setLevel (logger_level )
5451
5552
56- async def exit_handler (signame = None ):
57- global alarm , interface_manager
53+ async def _run (alarm : Paradox ):
54+ interface_manager = InterfaceManager (alarm , config = cfg )
55+ interface_manager .start ()
5856
59- if signame is not None :
60- logger . info ( f"Captured signal { signame } . Exiting" )
57+ async def exit_handler ( signame = None ) :
58+ nonlocal alarm , interface_manager
6159
62- if alarm :
63- await alarm .disconnect ()
64- alarm = None
60+ if signame is not None :
61+ logger .info (f"Captured signal { signame } . Exiting" )
6562
66- if interface_manager :
67- interface_manager . stop ()
68- interface_manager = None
63+ if alarm :
64+ await alarm . disconnect ()
65+ alarm = None
6966
70- logger .info ("Good bye!" )
67+ if interface_manager :
68+ interface_manager .stop ()
69+ interface_manager = None
7170
71+ logger .info ("Good bye!" )
7272
73- async def run_with_signals ():
7473 loop = asyncio .get_running_loop ()
7574 for signame in ("SIGINT" , "SIGTERM" ):
7675 sig = getattr (signal , signame )
7776 loop .add_signal_handler (
7877 sig , lambda s = signame : asyncio .ensure_future (exit_handler (s ))
7978 )
80- await run_loop ()
81-
8279
83- async def run_loop ():
8480 retry = 1
8581 while alarm is not None :
8682 logger .info ("Starting..." )
@@ -118,8 +114,6 @@ async def run_loop():
118114
119115
120116def main (args ):
121- global alarm , interface_manager
122-
123117 time .tzset ()
124118 if "config" in args and args .config is not None :
125119 import os
@@ -140,11 +134,6 @@ def main(args):
140134 register_encodings ()
141135
142136 # Start interacting with the alarm
143- alarm = Paradox ()
144-
145- interface_manager = InterfaceManager (alarm , config = cfg )
146- interface_manager .start ()
147-
148- asyncio .run (run_with_signals ())
137+ asyncio .run (_run (Paradox ()))
149138
150139 sys .exit (0 )
0 commit comments