From 43c46a7af26ddb17b0dbf9885e0d3ce185d108e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Tue, 27 Mar 2018 17:49:32 +0200 Subject: [PATCH] Integrate ABC module where we have abstract classes --- lib/tfw/event_handler_base.py | 10 +++++++--- lib/tfw/networking/server/zmq_websocket_handler.py | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/tfw/event_handler_base.py b/lib/tfw/event_handler_base.py index 768c1f6..6648481 100644 --- a/lib/tfw/event_handler_base.py +++ b/lib/tfw/event_handler_base.py @@ -1,8 +1,10 @@ +from abc import ABC, abstractmethod + from tfw.networking.serialization import deserialize_all from tfw.networking.event_handlers.server_connector import ServerConnector -class EventHandlerBase: +class EventHandlerBase(ABC): def __init__(self, key): self.server_connector = ServerConnector() self.key = key @@ -17,6 +19,7 @@ class EventHandlerBase: if response is None: return self.server_connector.send(key, response) + @abstractmethod def dispatch_handling(self, key, message): raise NotImplementedError @@ -24,6 +27,7 @@ class EventHandlerBase: if key != 'reset': return self.handle_event(key, message) else: return self.handle_reset(message) + @abstractmethod def handle_event(self, key, message): raise NotImplementedError @@ -58,12 +62,12 @@ class EventHandlerBase: self.subscriptions.clear() -class TriggerlessEventHandler(EventHandlerBase): +class TriggerlessEventHandler(EventHandlerBase, ABC): def dispatch_handling(self, key, message): return self._dispatch_handling(key, message) -class TriggeredEventHandler(EventHandlerBase): +class TriggeredEventHandler(EventHandlerBase, ABC): def __init__(self, key, trigger): super().__init__(key) self.trigger = trigger diff --git a/lib/tfw/networking/server/zmq_websocket_handler.py b/lib/tfw/networking/server/zmq_websocket_handler.py index 91cce77..da9dd8b 100644 --- a/lib/tfw/networking/server/zmq_websocket_handler.py +++ b/lib/tfw/networking/server/zmq_websocket_handler.py @@ -1,4 +1,5 @@ import json +from abc import ABC, abstractmethod from tornado.websocket import WebSocketHandler @@ -9,7 +10,7 @@ from tfw.config.logs import logging LOG = logging.getLogger(__name__) -class ZMQWebSocketHandler(WebSocketHandler): +class ZMQWebSocketHandler(WebSocketHandler, ABC): _event_handler_connector = EventHandlerConnector() instances = set() @@ -45,6 +46,7 @@ class ZMQWebSocketHandler(WebSocketHandler): LOG.debug('Received on WebSocket: %s', message) self.send_message(self.make_response(message)) + @abstractmethod def make_response(self, message): raise NotImplementedError