from contextlib import asynccontextmanager from fastapi import FastAPI from pydantic import BaseModel from src.recorder.poo import PooRecorder recorder = PooRecorder() @asynccontextmanager async def _lifespan(_app: FastAPI): # noqa: ANN202 await recorder.start() yield await recorder.stop() class PooRecordField(BaseModel): status: str app = FastAPI(lifespan=_lifespan) @app.post("/poo/record") async def record(record_detail: PooRecordField) -> PooRecordField: print(record_detail.status) await recorder.record(record_detail.status) return record_detail