Skip to content

Commit 1717c92

Browse files
authored
Merge pull request #501 from ParadoxAlarmInterface/remove_thread_queue_interface
Get rid of ThreadQueueInterface in Text interfaces #500
2 parents 219e508 + 5df1caa commit 1717c92

15 files changed

Lines changed: 278 additions & 198 deletions

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ repos:
1616
- id: trailing-whitespace
1717

1818
- repo: https://github.com/asottile/pyupgrade
19-
rev: v3.15.2
19+
rev: v3.17.0
2020
hooks:
2121
- id: pyupgrade
2222
args: ["--py37-plus"]
2323

2424
- repo: https://github.com/psf/black
25-
rev: 24.4.0
25+
rev: 24.8.0
2626
hooks:
2727
- id: black
2828
args:
@@ -35,7 +35,7 @@ repos:
3535
- id: isort
3636

3737
- repo: https://github.com/PyCQA/flake8
38-
rev: 7.0.0
38+
rev: 7.1.1
3939
hooks:
4040
- id: flake8
4141
additional_dependencies: [flake8-bugbear]

paradox/connections/ip/connection.py

Lines changed: 6 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 self.loop.create_connection(
63+
_, self._protocol = await asyncio.get_event_loop().create_connection(
6464
self._make_protocol, host=self.host, port=self.port
6565
)
6666

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

9292
def on_ip_message(self, container: Container):
93-
return self.loop.create_task(self.ip_handler_registry.handle(container))
93+
return asyncio.get_event_loop().create_task(
94+
self.ip_handler_registry.handle(container)
95+
)
9496

9597
async def wait_for_ip_message(self, timeout=cfg.IO_TIMEOUT) -> Container:
9698
future = FutureHandler()
@@ -115,7 +117,7 @@ def __init__(
115117
self.port = port
116118

117119
async def _try_connect(self) -> None:
118-
_, self._protocol = await self.loop.create_connection(
120+
_, self._protocol = await asyncio.get_event_loop().create_connection(
119121
self._make_protocol, host=self.host, port=self.port
120122
)
121123

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

147149
async def _try_connect(self) -> None:
148150
await self.stun_session.connect()
149-
_, self._protocol = await self.loop.create_connection(
151+
_, self._protocol = await asyncio.get_event_loop().create_connection(
150152
self._make_protocol, sock=self.stun_session.get_socket()
151153
)
152154

paradox/connections/serial_connection.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
# -*- coding: utf-8 -*-
2-
3-
1+
import asyncio
42
import logging
53
import os
64
import stat
7-
import typing
85

9-
import serial_asyncio
106
from serial import SerialException
7+
import serial_asyncio
118

129
from ..exceptions import SerialConnectionOpenFailed
1310
from .connection import Connection
@@ -67,12 +64,12 @@ async def connect(self) -> bool:
6764
logger.error(f"Failed to update file {self.port_path} permissions")
6865
return False
6966

70-
self.connected_future = self.loop.create_future()
71-
open_timeout_handler = self.loop.call_later(5, self.open_timeout)
67+
self.connected_future = asyncio.get_event_loop().create_future()
68+
open_timeout_handler = asyncio.get_event_loop().call_later(5, self.open_timeout)
7269

7370
try:
7471
_, self._protocol = await serial_asyncio.create_serial_connection(
75-
self.loop, self.make_protocol, self.port_path, self.baud
72+
asyncio.get_event_loop(), self.make_protocol, self.port_path, self.baud
7673
)
7774

7875
return await self.connected_future
@@ -81,7 +78,7 @@ async def connect(self) -> bool:
8178
raise SerialConnectionOpenFailed(
8279
"Connection to serial port failed"
8380
) from e # PAICriticalException
84-
except:
81+
except Exception:
8582
logger.exception("Unable to connect to Serial")
8683
finally:
8784
open_timeout_handler.cancel()

paradox/interfaces/text/core.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
from paradox.config import config as cfg
44
from paradox.event import Event, EventLevel, Notification
5-
from paradox.interfaces import ThreadQueueInterface
5+
from paradox.interfaces import AsyncInterface
66
from paradox.lib import ps
77
from paradox.lib.event_filter import EventFilter, EventTagFilter, LiveEventRegexpFilter
88

99
logger = logging.getLogger("PAI").getChild(__name__)
1010

1111

12-
class AbstractTextInterface(ThreadQueueInterface):
12+
class AbstractTextInterface(AsyncInterface):
1313
"""Interface Class using any Text interface"""
1414

1515
def __init__(self, alarm, event_filter: EventFilter, min_level=EventLevel.INFO):
@@ -20,12 +20,7 @@ def __init__(self, alarm, event_filter: EventFilter, min_level=EventLevel.INFO):
2020
self.min_level = min_level
2121
self.alarm = alarm
2222

23-
def stop(self):
24-
super().stop()
25-
26-
def _run(self):
27-
super()._run()
28-
23+
async def run(self):
2924
ps.subscribe(self.handle_panel_event, "events")
3025
ps.subscribe(self.handle_notify, "notifications")
3126

0 commit comments

Comments
 (0)