Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = { text = "Apache-2.0" }

dependencies = [
"fastapi==0.141.1",
"uvicorn[standard]==0.52.1",
"uvicorn[standard]==0.52.4",
"pydantic==2.13.4",
"pydantic-settings==2.15.0",
"SQLAlchemy==2.0.52",
Expand All @@ -20,7 +20,7 @@ dependencies = [
# `deploy/open-observatory-refine.service`. Dependabot proposed 2.5.2
# because nothing declares that constraint at the top level; this comment
# and the pin are the constraint.
"numpy==2.4.6",
"numpy==2.5.2",
"soundfile==0.14.0",
"typer==0.27.1",
# Pinned, not left to typer's own `click>=8.0.0` range. click 8.2 changed
Expand All @@ -29,7 +29,7 @@ dependencies = [
# `oo ... --help` die with a TypeError before printing anything. Found on
# 2026-08-08 with click 8.4.2 -- on this laptop AND on the live station, so
# the operator CLI documented in HANDOVER.md was already broken there.
"click==8.4.2",
"click==8.5.0",
"rich==15.0.0",
"structlog==26.1.0",
"prometheus-client==0.26.0",
Expand All @@ -49,7 +49,7 @@ dependencies = [
# ALSA capture on the target device.
alsa = ["pyalsaaudio==0.11.0"]
# Preferred high-quality polyphase resampler. Falls back to scipy when absent.
resample = ["soxr==1.1.0", "scipy==1.18.0"]
resample = ["soxr==1.1.0", "scipy==1.18.1"]
# TFLite inference for the BirdNET adapter. `tflite-runtime` has no cp312
# aarch64 wheel; ai-edge-litert is its maintained successor and does.
birdnet = ["ai-edge-litert==2.2.0"]
Expand All @@ -59,16 +59,16 @@ dev = [
"pytest==9.1.1",
"pytest-asyncio==1.4.0",
"httpx==0.28.1",
"ruff==0.16.2",
"mypy==2.3.0",
"ruff==0.16.4",
"mypy==2.3.1",
# Validates real emitted events against schemas/detection-event.schema.json
# (tests/test_mqtt_schema.py) so the envelope cannot drift unnoticed again.
"jsonschema==4.26.0",
"hypothesis==6.165.5",
"hypothesis==6.165.10",
# Client for scripts/probe_display_channel.py, which measures what
# /api/v1/display actually costs on the wire against a real station (ADR-038).
# Not a runtime dependency: the server side is Starlette's own WebSocket.
"websockets==17.0.1",
"websockets==17.1",
# scripts/serial_capture.py. `pio device monitor` needs a tty, which an agent
# or a CI job does not have, and reading the display's serial output is the
# only evidence that the firmware works.
Expand Down