fix: ruff checks is now in order:)
ref: N25B-205
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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"])
|
||||
|
||||
Reference in New Issue
Block a user