numpy>=1.26,<3
libusb1>=3.1
pyserial>=3.5,<4
pyvisa>=1.14
PyVISA-py>=0.7  # pure-Python VISA backend ("@py"), required by the SN9000 (and any visa_library="@py") path
# PyQt6 6.8+ ships only manylinux_2_39 aarch64 wheels (glibc >= 2.39); Jetson /
# Ubuntu 22.04 has glibc 2.35, so pip would fall back to a source build that
# dies on qmake. 6.7.1 is the last release with a manylinux_2_28 aarch64 wheel.
PyQt6>=6.6,<6.8; platform_machine == "aarch64"
PyQt6>=6.6; platform_machine != "aarch64"
pyqtgraph>=0.13.7
rpi-hardware-pwm>=0.2.2,<1
fastapi>=0.110           # embedded web UI (browser view + controls), served in-process
uvicorn[standard]>=0.29  # ASGI server for the web UI, run on a background thread
