fix: ruff checks is now in order:)

ref: N25B-205
This commit is contained in:
Björn Otgaar
2025-10-30 16:41:35 +01:00
parent af3e4ae56a
commit 30453be4b2
10 changed files with 117 additions and 84 deletions

View File

@@ -1,18 +1,15 @@
from fastapi import APIRouter, Request
from fastapi.responses import JSONResponse, StreamingResponse
import logging
import asyncio
import zmq.asyncio
import json
import datetime
import logging
import zmq.asyncio
from fastapi import APIRouter, Request
from fastapi.responses import StreamingResponse
from zmq.asyncio import Socket
from control_backend.core.zmq_context import context
from control_backend.core.config import settings
from control_backend.schemas.ri_message import SpeechCommand, RIEndpoint
from control_backend.core.zmq_context import context
from control_backend.schemas.ri_message import SpeechCommand
logger = logging.getLogger(__name__)
@@ -24,7 +21,7 @@ async def receive_command(command: SpeechCommand, request: Request):
# Validate and retrieve data.
SpeechCommand.model_validate(command)
topic = b"command"
pub_socket : Socket = request.app.state.internal_comm_socket
pub_socket: Socket = request.app.state.internal_comm_socket
pub_socket.send_multipart([topic, command.model_dump_json().encode()])
return {"status": "Command received"}
@@ -38,6 +35,7 @@ async def ping(request: Request):
@router.get("/ping_stream")
async def ping_stream(request: Request):
"""Stream live updates whenever the device state changes."""
async def event_stream():
# Set up internal socket to receive ping updates
logger.debug("Ping stream router event stream entered.")
@@ -47,7 +45,7 @@ async def ping_stream(request: Request):
sub_socket.setsockopt(zmq.SUBSCRIBE, b"ping")
connected = False
ping_frequency = 1 # How many seconds between ping attempts
ping_frequency = 1 # How many seconds between ping attempts
# Even though its most likely the updates should alternate
# So, True - False - True - False for connectivity.
@@ -55,21 +53,21 @@ async def ping_stream(request: Request):
while True:
logger.debug("Ping stream entered listening ")
try:
topic, body = await asyncio.wait_for(sub_socket.recv_multipart(), timeout=ping_frequency)
topic, body = await asyncio.wait_for(
sub_socket.recv_multipart(), timeout=ping_frequency
)
logger.debug("got ping change in ping_stream router")
connected = json.loads(body)
except TimeoutError as e:
except TimeoutError:
await asyncio.sleep(0.1)
# Stop if client disconnected
if await request.is_disconnected():
print("Client disconnected from SSE")
break
logger.debug(f"Yielded new connection event in robot ping router: {str(connected)}")
falseJson = json.dumps(connected)
yield (f"data: {falseJson}\n\n")
return StreamingResponse(event_stream(), media_type="text/event-stream")
return StreamingResponse(event_stream(), media_type="text/event-stream")

View File

@@ -1,6 +1,6 @@
from fastapi.routing import APIRouter
from control_backend.api.v1.endpoints import message, sse, robot
from control_backend.api.v1.endpoints import message, robot, sse
api_router = APIRouter()
@@ -8,4 +8,4 @@ api_router.include_router(message.router, tags=["Messages"])
api_router.include_router(sse.router, tags=["SSE"])
api_router.include_router(robot.router, prefix="/robot", tags=["Pings", "Commands"])
api_router.include_router(robot.router, prefix="/robot", tags=["Pings", "Commands"])