# Python deps for the SCHEDULER SERVER only. `robopark serve` installs this on # every host, so it must contain nothing that needs a camera, a microphone, or a # compiler. # # Lower bounds, not pins. Exact pins were pinning us to versions whose native # wheels predate the installed interpreter: pydantic==2.9.2 resolves to # pydantic-core 2.23.4, which publishes no cp314 wheel, so pip fell back to a # Rust source build that fails outright ("the configured Python interpreter # version (3.14) is newer than PyO3's maximum supported version (3.13)"). # Floating upward lets pip pick a release that actually ships a wheel for # whatever Python the operator has. fastapi>=0.115 uvicorn[standard]>=0.32 aiosqlite>=0.20 httpx>=0.27 pydantic>=2.11 python-multipart>=0.0.12 PyJWT>=2.9 # Token signing for camera/monitor access. The full `livekit` client SDK, # opencv, pyaudio and picamera2 are robot-side only and live in # requirements-robot.txt — the scheduler never joins a room or opens a device, # it only mints tokens. Installing them here made every scheduler host build # PyAudio from source and fail on a missing portaudio.h it never needed. livekit-api>=0.10