fix(vision): dichiara le dipendenze del worker, pin numerico HTTP vs runner

Ruling R9: separa l'extra vision (runner: 4 pacchetti VisionSuite + numpy)
da vision-worker (fastapi, uvicorn, pillow, python-multipart, sopra vision).
Prima il worker risolveva solo perche' vs-pm2d le lista per conto suo; un
domani lo stub di stazione dovra' incorporare il runner senza trascinarsi
dietro un server web che non gli serve.

Aggiorna Dockerfile.vision e README.md al nuovo extra; il test del worker ora
pinna anche il valore numerico del diametro (non solo la chiave), agganciato
alla stessa tolleranza del test in-process del runner.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014BBnuACZSCJqXrMYC3LUMU
This commit is contained in:
2026-08-16 18:28:06 +02:00
parent 71da162e1f
commit 05f2937611
5 changed files with 62 additions and 9 deletions
+16 -4
View File
@@ -403,12 +403,24 @@ uv sync --extra vision --extra dev --python 3.13
uv run --python 3.13 --extra vision --extra dev pytest src/vision/tests
```
Lo stesso vale per `src/vision_worker/tests/`, il piccolo servizio FastAPI che
espone il runner: dipende da `src.vision.runner` e quindi eredita lo stesso
vincolo su Python 3.13.
`src/vision_worker/tests/` eredita lo stesso vincolo su Python 3.13, perché
il worker dipende da `src.vision.runner`, ma aggiunge dipendenze proprie -
FastAPI, Uvicorn, Pillow, python-multipart - dichiarate in un extra
separato, `vision-worker`, tenuto distinto da `vision` apposta: un
consumatore che incorpora solo il runner (come un futuro agente di stazione,
che non è un servizio web) non deve trascinarsi dietro un server che non gli
serve. `vision-worker` include comunque `vision`, quindi un solo extra basta
per avere un worker funzionante:
```bash
uv run --python 3.13 --extra vision --extra dev pytest src/vision_worker/tests
uv run --python 3.13 --extra vision-worker --extra dev pytest src/vision_worker/tests
```
Per eseguire entrambe le suite insieme, nominando esplicitamente entrambi
gli extra:
```bash
uv run --python 3.13 --extra vision --extra vision-worker --extra dev pytest src/vision/tests src/vision_worker/tests
```
### Il worker di visione (`Dockerfile.vision`)