diff --git a/src/judas_server/__init__.py b/src/judas_server/__init__.py index 5bcf5d2..5833d87 100644 --- a/src/judas_server/__init__.py +++ b/src/judas_server/__init__.py @@ -1 +1,7 @@ +from .backend_server import BackendServer + __version__: str = "0.5.0" + +__all__ = [ + "BackendServer", +] diff --git a/src/judas_server/__main__.py b/src/judas_server/__main__.py index e850375..b776eee 100644 --- a/src/judas_server/__main__.py +++ b/src/judas_server/__main__.py @@ -3,9 +3,8 @@ import logging as lg if __name__ == "__main__": - from judas_server.backend import BackendServer + from judas_server import BackendServer from judas_server.gaga import LADY_GAGA - from judas_server.web.web_server import JudasWebServer lg.basicConfig( level=lg.DEBUG, @@ -22,11 +21,3 @@ if __name__ == "__main__": port=3692, ) backend_server.run() - - web_server: JudasWebServer = JudasWebServer( - backend=backend_server, secret_key="dildo" - ) - web_server.run( - host="0.0.0.0", - port=5000, - ) diff --git a/src/judas_server/backend/__init__.py b/src/judas_server/backend/__init__.py deleted file mode 100644 index 60e15d3..0000000 --- a/src/judas_server/backend/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .backend_server import BackendServer -from .client import Client -from .client_status import ClientStatus - -__all__ = ["BackendServer", "Client", "ClientStatus"] diff --git a/src/judas_server/backend/backend_server.py b/src/judas_server/backend_server.py similarity index 97% rename from src/judas_server/backend/backend_server.py rename to src/judas_server/backend_server.py index fe5cae4..a2222af 100644 --- a/src/judas_server/backend/backend_server.py +++ b/src/judas_server/backend_server.py @@ -12,9 +12,9 @@ from judas_protocol.types import TelemetryAction import yaml from judas_protocol import Category, ControlAction, Message -from judas_server.backend.client import Client, ClientStatus -from judas_server.backend.handler.hello_handler import HelloHandler -from judas_server.backend.handler.telemetry.initial_handler import ( +from judas_server.client import Client, ClientStatus +from judas_server.handler.hello_handler import HelloHandler +from judas_server.handler.telemetry.initial_handler import ( InitialTelemetryHandler, ) @@ -348,9 +348,7 @@ class BackendServer: def run(self) -> None: """Start the backend server.""" self.running = True - threading.Thread( - name="BackendServer thread", target=self._loop, daemon=True - ).start() + self._loop() def _loop(self) -> None: """Main server loop to handle incoming connections and data.""" @@ -396,6 +394,9 @@ class BackendServer: except Exception as e: self.logger.error(f"Server error: {e}") raise e + except KeyboardInterrupt: + self.logger.info("Keyboard interrupt received, stopping server...") + self.running = False finally: self.selector.close() self.server_socket.close() diff --git a/src/judas_server/backend/client.py b/src/judas_server/client.py similarity index 97% rename from src/judas_server/backend/client.py rename to src/judas_server/client.py index 14390fb..1c9e242 100644 --- a/src/judas_server/backend/client.py +++ b/src/judas_server/client.py @@ -8,7 +8,7 @@ import socket import time from typing import Any -from judas_server.backend.client_status import ClientStatus +from judas_server.client_status import ClientStatus class Client: diff --git a/src/judas_server/backend/client_status.py b/src/judas_server/client_status.py similarity index 100% rename from src/judas_server/backend/client_status.py rename to src/judas_server/client_status.py diff --git a/src/judas_server/backend/handler/__init__.py b/src/judas_server/handler/__init__.py similarity index 100% rename from src/judas_server/backend/handler/__init__.py rename to src/judas_server/handler/__init__.py diff --git a/src/judas_server/backend/handler/ack_handler.py b/src/judas_server/handler/ack_handler.py similarity index 93% rename from src/judas_server/backend/handler/ack_handler.py rename to src/judas_server/handler/ack_handler.py index 1756b80..5f8e2fe 100644 --- a/src/judas_server/backend/handler/ack_handler.py +++ b/src/judas_server/handler/ack_handler.py @@ -8,7 +8,7 @@ from .base_handler import BaseHandler if TYPE_CHECKING: from judas_protocol import Message - from judas_server.backend import BackendServer, Client + from judas_server import BackendServer, Client class AckHandler(BaseHandler): diff --git a/src/judas_server/backend/handler/base_handler.py b/src/judas_server/handler/base_handler.py similarity index 92% rename from src/judas_server/backend/handler/base_handler.py rename to src/judas_server/handler/base_handler.py index e7dfa8c..263faea 100644 --- a/src/judas_server/backend/handler/base_handler.py +++ b/src/judas_server/handler/base_handler.py @@ -4,12 +4,12 @@ from __future__ import annotations import logging as lg from typing import TYPE_CHECKING -from judas_server.backend.client import Client +from judas_server.client import Client if TYPE_CHECKING: from judas_protocol import Message - from judas_server.backend import BackendServer + from judas_server import BackendServer class BaseHandler: diff --git a/src/judas_server/backend/handler/hello_handler.py b/src/judas_server/handler/hello_handler.py similarity index 90% rename from src/judas_server/backend/handler/hello_handler.py rename to src/judas_server/handler/hello_handler.py index a9d78a1..d74bcf5 100644 --- a/src/judas_server/backend/handler/hello_handler.py +++ b/src/judas_server/handler/hello_handler.py @@ -5,12 +5,12 @@ from typing import TYPE_CHECKING, override from judas_protocol import Category, ControlAction, Message -from judas_server.backend.client import ClientStatus -from judas_server.backend.handler import BaseHandler +from judas_server.client import ClientStatus +from judas_server.handler import BaseHandler if TYPE_CHECKING: - from judas_server.backend.backend_server import BackendServer - from judas_server.backend.client import Client + from judas_server.backend_server import BackendServer + from judas_server.client import Client class HelloHandler(BaseHandler): diff --git a/src/judas_server/handler/telemetry/__init__.py b/src/judas_server/handler/telemetry/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/judas_server/backend/handler/telemetry/initial_handler.py b/src/judas_server/handler/telemetry/initial_handler.py similarity index 83% rename from src/judas_server/backend/handler/telemetry/initial_handler.py rename to src/judas_server/handler/telemetry/initial_handler.py index eb25abc..916c81c 100644 --- a/src/judas_server/backend/handler/telemetry/initial_handler.py +++ b/src/judas_server/handler/telemetry/initial_handler.py @@ -7,11 +7,11 @@ from typing import TYPE_CHECKING from judas_protocol import Message -from judas_server.backend.handler.base_handler import BaseHandler +from judas_server.handler.base_handler import BaseHandler if TYPE_CHECKING: - from judas_server.backend import BackendServer - from judas_server.backend.client import Client + from judas_server import BackendServer + from judas_server.client import Client class InitialTelemetryHandler(BaseHandler):