Skip to content

Commit 76b69b2

Browse files
committed
Another fix attempt
1 parent 7ef16bf commit 76b69b2

File tree

10 files changed

+38
-52
lines changed

10 files changed

+38
-52
lines changed

paradox/connections/ip/connection.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def __init__(self, host="127.0.0.1", port=10000):
6060
self.port = port
6161

6262
async def _try_connect(self):
63-
_, self._protocol = await asyncio.get_event_loop().create_connection(
63+
_, self._protocol = await asyncio.get_running_loop().create_connection(
6464
self._make_protocol, host=self.host, port=self.port
6565
)
6666

@@ -90,7 +90,7 @@ def set_key(self, value):
9090
self._protocol.key = value
9191

9292
def on_ip_message(self, container: Container):
93-
return asyncio.get_event_loop().create_task(
93+
return asyncio.get_running_loop().create_task(
9494
self.ip_handler_registry.handle(container)
9595
)
9696

@@ -117,7 +117,7 @@ def __init__(
117117
self.port = port
118118

119119
async def _try_connect(self) -> None:
120-
_, self._protocol = await asyncio.get_event_loop().create_connection(
120+
_, self._protocol = await asyncio.get_running_loop().create_connection(
121121
self._make_protocol, host=self.host, port=self.port
122122
)
123123

@@ -148,7 +148,7 @@ def write(self, data: bytes):
148148

149149
async def _try_connect(self) -> None:
150150
await self.stun_session.connect()
151-
_, self._protocol = await asyncio.get_event_loop().create_connection(
151+
_, self._protocol = await asyncio.get_running_loop().create_connection(
152152
self._make_protocol, sock=self.stun_session.get_socket()
153153
)
154154

paradox/connections/ip/stun_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ async def _get_site_info(email, siteid):
155155
}
156156

157157
tries = 5
158-
loop = asyncio.get_event_loop()
158+
loop = asyncio.get_running_loop()
159159
while tries > 0:
160160
req = await loop.run_in_executor(
161161
None,

paradox/connections/serial_connection.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,17 @@ async def connect(self) -> bool:
6464
logger.error(f"Failed to update file {self.port_path} permissions")
6565
return False
6666

67-
self.connected_future = asyncio.get_event_loop().create_future()
68-
open_timeout_handler = asyncio.get_event_loop().call_later(5, self.open_timeout)
67+
self.connected_future = asyncio.get_running_loop().create_future()
68+
open_timeout_handler = asyncio.get_running_loop().call_later(
69+
5, self.open_timeout
70+
)
6971

7072
try:
7173
_, self._protocol = await serial_asyncio.create_serial_connection(
72-
asyncio.get_event_loop(), self.make_protocol, self.port_path, self.baud
74+
asyncio.get_running_loop(),
75+
self.make_protocol,
76+
self.port_path,
77+
self.baud,
7378
)
7479

7580
return await self.connected_future

paradox/console_scripts/pai_dump_memory.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,6 @@
1919
from paradox.lib.encodings import register_encodings
2020
from paradox.paradox import Paradox
2121

22-
if sys.version_info < (3, 6,):
23-
print(
24-
"You are using Python %s.%s, but PAI requires at least Python 3.6"
25-
% (sys.version_info[0], sys.version_info[1])
26-
)
27-
sys.exit(-1)
28-
2922
logger = logging.getLogger("PAI").getChild(__name__)
3023

3124

@@ -78,8 +71,7 @@ def main():
7871
# Registering additional encodings
7972
register_encodings()
8073

81-
loop = asyncio.get_event_loop()
82-
loop.run_until_complete(dump_memory(args.file, args.type))
74+
asyncio.run(dump_memory(args.file, args.type))
8375

8476

8577
if __name__ == "__main__":

paradox/interfaces/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class AsyncInterface(Interface):
2020
def __init__(self, alarm):
2121
super().__init__(alarm)
2222

23-
self._loop = asyncio.get_event_loop()
23+
self._loop = asyncio.get_running_loop()
2424
self._running_task: Optional[asyncio.Task] = None
2525

2626
def start(self):

paradox/interfaces/ip_interface/interface.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def start(self):
3939
logger.info("No alarm set")
4040
return
4141

42-
asyncio.get_event_loop().create_task(self.run())
42+
asyncio.get_running_loop().create_task(self.run())
4343

4444
async def run(self):
4545
try:
@@ -80,5 +80,5 @@ async def handle_client(self, reader, writer):
8080
finally:
8181
self.alarm.connection.deregister_raw_handler(handler_name)
8282

83-
asyncio.get_event_loop().create_task(self.alarm.resume())
83+
asyncio.get_running_loop().create_task(self.alarm.resume())
8484
logger.info("Client %d disconnected", self.client_nr)

paradox/interfaces/text/gsm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,11 @@ async def read(self, timeout=5):
118118
async def connect(self):
119119
logger.info(f"Connecting to serial port {self.port_path}")
120120

121-
self.connected_future = asyncio.get_event_loop().create_future()
122-
asyncio.get_event_loop().call_later(5, self.open_timeout)
121+
self.connected_future = asyncio.get_running_loop().create_future()
122+
asyncio.get_running_loop().call_later(5, self.open_timeout)
123123

124124
_, self.connection = await serial_asyncio.create_serial_connection(
125-
asyncio.get_event_loop(), self.make_protocol, self.port_path, self.baud
125+
asyncio.get_running_loop(), self.make_protocol, self.port_path, self.baud
126126
)
127127

128128
return await self.connected_future

paradox/interfaces/text/signal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ async def run(self):
5050

5151
logger.debug("Signal Interface Running")
5252

53-
asyncio.get_event_loop().run_in_executor(None, self.glib_loop.run)
53+
asyncio.get_running_loop().run_in_executor(None, self.glib_loop.run)
5454

5555
def send_message(self, message: str, level: EventLevel):
5656
if self.signal is None:

paradox/lib/async_message_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ def deregister_handler(self, name):
5454
self.handler_registry.remove_by_name(name)
5555

5656
def schedule_message_handling(self, message: Container):
57-
return asyncio.get_event_loop().create_task(
57+
return asyncio.get_running_loop().create_task(
5858
self.handler_registry.handle(message)
5959
)
6060

6161
def schedule_raw_message_handling(self, message: Container):
62-
return asyncio.get_event_loop().create_task(
62+
return asyncio.get_running_loop().create_task(
6363
self.raw_handler_registry.handle(message)
6464
)

paradox/main.py

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
from paradox.lib.encodings import register_encodings
1313
from paradox.paradox import Paradox
1414

15-
alarm = None
16-
interface_manager = None
17-
1815
logger = 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

120116
def 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

Comments
 (0)