From a88468eb79a16beab4bef220ce8107f26c2b105f Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Sat, 13 Jan 2024 10:58:03 -0500 Subject: [PATCH] refactor: convert websockets into a component Signed-off-by: Eric Callahan --- moonraker/common.py | 2 +- moonraker/components/application.py | 7 ++----- moonraker/components/authorization.py | 2 +- moonraker/components/proc_stats.py | 2 +- moonraker/components/simplyprint.py | 2 +- moonraker/components/spoolman.py | 2 +- moonraker/{ => components}/websockets.py | 20 +++++++++++--------- moonraker/server.py | 5 +++-- 8 files changed, 21 insertions(+), 21 deletions(-) rename moonraker/{ => components}/websockets.py (97%) diff --git a/moonraker/common.py b/moonraker/common.py index d47871c..82a7f12 100644 --- a/moonraker/common.py +++ b/moonraker/common.py @@ -33,7 +33,7 @@ from typing import ( if TYPE_CHECKING: from .server import Server - from .websockets import WebsocketManager + from .components.websockets import WebsocketManager from .components.authorization import Authorization from .utils import IPAddress from asyncio import Future diff --git a/moonraker/components/application.py b/moonraker/components/application.py index 2d0cff7..4fd93c2 100644 --- a/moonraker/components/application.py +++ b/moonraker/components/application.py @@ -33,11 +33,7 @@ from ..common import ( KlippyState ) from ..utils import json_wrapper as jsonw -from ..websockets import ( - WebsocketManager, - WebSocket, - BridgeSocket -) +from .websockets import WebSocket, BridgeSocket from streaming_form_data import StreamingFormDataParser, ParseFailedException from streaming_form_data.targets import FileTarget, ValueTarget, SHA256Target @@ -60,6 +56,7 @@ if TYPE_CHECKING: from ..confighelper import ConfigHelper from ..klippy_connection import KlippyConnection as Klippy from ..utils import IPAddress + from .websockets import WebsocketManager from .file_manager.file_manager import FileManager from .announcements import Announcements from .machine import Machine diff --git a/moonraker/components/authorization.py b/moonraker/components/authorization.py index b6dbc1c..53ac2e5 100644 --- a/moonraker/components/authorization.py +++ b/moonraker/components/authorization.py @@ -36,7 +36,7 @@ from typing import ( if TYPE_CHECKING: from ..confighelper import ConfigHelper from ..common import WebRequest - from ..websockets import WebsocketManager + from .websockets import WebsocketManager from tornado.httputil import HTTPServerRequest from tornado.web import RequestHandler from .database import MoonrakerDatabase as DBComp diff --git a/moonraker/components/proc_stats.py b/moonraker/components/proc_stats.py index ca8efd5..fd4ee88 100644 --- a/moonraker/components/proc_stats.py +++ b/moonraker/components/proc_stats.py @@ -32,7 +32,7 @@ from typing import ( if TYPE_CHECKING: from ..confighelper import ConfigHelper from ..common import WebRequest - from ..websockets import WebsocketManager + from .websockets import WebsocketManager STAT_CALLBACK = Callable[[int], Optional[Awaitable]] VC_GEN_CMD_FILE = "/usr/bin/vcgencmd" diff --git a/moonraker/components/simplyprint.py b/moonraker/components/simplyprint.py index efcac77..f9862f2 100644 --- a/moonraker/components/simplyprint.py +++ b/moonraker/components/simplyprint.py @@ -33,7 +33,7 @@ from typing import ( if TYPE_CHECKING: from .application import InternalTransport from ..confighelper import ConfigHelper - from ..websockets import WebsocketManager + from .websockets import WebsocketManager from ..common import BaseRemoteConnection from tornado.websocket import WebSocketClientConnection from .database import MoonrakerDatabase diff --git a/moonraker/components/spoolman.py b/moonraker/components/spoolman.py index e5cec2f..d5bba1d 100644 --- a/moonraker/components/spoolman.py +++ b/moonraker/components/spoolman.py @@ -13,7 +13,7 @@ from ..common import RequestType if TYPE_CHECKING: from typing import Optional - from moonraker.websockets import WebRequest + from ..common import WebRequest from moonraker.components.http_client import HttpClient from moonraker.components.database import MoonrakerDatabase from moonraker.components.announcements import Announcements diff --git a/moonraker/websockets.py b/moonraker/components/websockets.py similarity index 97% rename from moonraker/websockets.py rename to moonraker/components/websockets.py index c51ffa1..9d61a22 100644 --- a/moonraker/websockets.py +++ b/moonraker/components/websockets.py @@ -9,13 +9,13 @@ import logging import asyncio from tornado.websocket import WebSocketHandler, WebSocketClosedError from tornado.web import HTTPError -from .common import ( +from ..common import ( RequestType, WebRequest, BaseRemoteConnection, TransportType, ) -from .utils import ServerError, parse_ip_address +from ..utils import ServerError, parse_ip_address # Annotation imports from typing import ( @@ -31,12 +31,12 @@ from typing import ( ) if TYPE_CHECKING: - from .server import Server - from .klippy_connection import KlippyConnection as Klippy - from .confighelper import ConfigHelper - from .components.extensions import ExtensionManager - from .components.authorization import Authorization - from .utils import IPAddress + from ..server import Server + from ..klippy_connection import KlippyConnection as Klippy + from ..confighelper import ConfigHelper + from .extensions import ExtensionManager + from .authorization import Authorization + from ..utils import IPAddress ConvType = Union[str, bool, float, int] ArgVal = Union[None, int, float, bool, str] RPCCallback = Callable[..., Coroutine] @@ -58,7 +58,6 @@ class WebsocketManager: "/server/connection/identify", RequestType.POST, self._handle_identify, TransportType.WEBSOCKET, auth_required=False ) - self.server.register_component("websockets", self) def register_notification( self, @@ -481,3 +480,6 @@ class BridgeSocket(WebSocketHandler): def close_socket(self, code: int, reason: str) -> None: self.close(code, reason) + +def load_component(config: ConfigHelper) -> WebsocketManager: + return WebsocketManager(config) diff --git a/moonraker/server.py b/moonraker/server.py index df26d12..89f8c29 100755 --- a/moonraker/server.py +++ b/moonraker/server.py @@ -32,7 +32,6 @@ from .utils import ( ) from .loghelper import LogManager from .common import RequestType -from .websockets import WebsocketManager # Annotation imports from typing import ( @@ -50,6 +49,7 @@ from typing import ( if TYPE_CHECKING: from .common import WebRequest from .components.application import MoonrakerApp + from .components.websockets import WebsocketManager from .components.file_manager.file_manager import FileManager from .components.machine import Machine from .components.extensions import ExtensionManager @@ -106,7 +106,8 @@ class Server: self.register_static_file_handler = app.register_static_file_handler self.register_upload_handler = app.register_upload_handler self.log_manager.set_server(self) - self.websocket_manager = WebsocketManager(config) + self.websocket_manager: WebsocketManager + self.websocket_manager = self.load_component(config, "websockets") for warning in args.get("startup_warnings", []): self.add_warning(warning)