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
Generated
+19 -1
View File
@@ -1975,6 +1975,18 @@ server = [
{ name = "weasyprint" },
]
vision = [
{ name = "numpy", marker = "python_full_version >= '3.13'" },
{ name = "visionsuite", marker = "python_full_version >= '3.13'" },
{ name = "vs-measure", marker = "python_full_version >= '3.13'" },
{ name = "vs-pm2d", marker = "python_full_version >= '3.13'" },
{ name = "vs-task", marker = "python_full_version >= '3.13'" },
]
vision-worker = [
{ name = "fastapi", marker = "python_full_version >= '3.13'" },
{ name = "numpy", marker = "python_full_version >= '3.13'" },
{ name = "pillow", marker = "python_full_version >= '3.13'" },
{ name = "python-multipart", marker = "python_full_version >= '3.13'" },
{ name = "uvicorn", extra = ["standard"], marker = "python_full_version >= '3.13'" },
{ name = "visionsuite", marker = "python_full_version >= '3.13'" },
{ name = "vs-measure", marker = "python_full_version >= '3.13'" },
{ name = "vs-pm2d", marker = "python_full_version >= '3.13'" },
@@ -1988,6 +2000,7 @@ requires-dist = [
{ name = "asyncmy", marker = "extra == 'server'", specifier = ">=0.2.0" },
{ name = "bcrypt", marker = "extra == 'server'", specifier = ">=4.0.0" },
{ name = "coverage", marker = "extra == 'dev'", specifier = ">=7.0.0" },
{ name = "fastapi", marker = "python_full_version >= '3.13' and extra == 'vision-worker'", specifier = ">=0.110.0" },
{ name = "fastapi", marker = "extra == 'server'", specifier = ">=0.110.0" },
{ name = "flask", marker = "extra == 'client'", specifier = ">=3.0.0" },
{ name = "flask-babel", marker = "extra == 'client'", specifier = ">=4.0.0" },
@@ -1997,7 +2010,9 @@ requires-dist = [
{ name = "httpx", marker = "extra == 'server'", specifier = ">=0.27.0" },
{ name = "jinja2", marker = "extra == 'server'", specifier = ">=3.1.0" },
{ name = "kaleido", marker = "extra == 'server'", specifier = ">=0.2.0" },
{ name = "numpy", marker = "python_full_version >= '3.13' and extra == 'vision'" },
{ name = "pdfplumber", marker = "extra == 'server'", specifier = ">=0.10.0" },
{ name = "pillow", marker = "python_full_version >= '3.13' and extra == 'vision-worker'", specifier = ">=10.0.0" },
{ name = "pillow", marker = "extra == 'server'", specifier = ">=10.0.0" },
{ name = "plotly", marker = "extra == 'server'", specifier = ">=5.0.0" },
{ name = "pydantic", specifier = ">=2.0.0" },
@@ -2005,10 +2020,13 @@ requires-dist = [
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
{ name = "python-dotenv", specifier = ">=1.0.0" },
{ name = "python-multipart", marker = "python_full_version >= '3.13' and extra == 'vision-worker'", specifier = ">=0.0.6" },
{ name = "python-multipart", marker = "extra == 'server'", specifier = ">=0.0.6" },
{ name = "requests", marker = "extra == 'client'", specifier = ">=2.31.0" },
{ name = "sqlalchemy", extras = ["asyncio"], marker = "extra == 'server'", specifier = ">=2.0.0" },
{ name = "tiemeasureflow", extras = ["vision"], marker = "extra == 'vision-worker'" },
{ name = "urllib3", marker = "extra == 'client'", specifier = ">=2.0.0" },
{ name = "uvicorn", extras = ["standard"], marker = "python_full_version >= '3.13' and extra == 'vision-worker'", specifier = ">=0.30.0" },
{ name = "uvicorn", extras = ["standard"], marker = "extra == 'server'", specifier = ">=0.30.0" },
{ name = "visionsuite", marker = "python_full_version >= '3.13' and extra == 'vision'", editable = "vendor/visionsuite/packages/vs-core" },
{ name = "vs-measure", marker = "python_full_version >= '3.13' and extra == 'vision'", editable = "vendor/visionsuite/packages/vs-measure" },
@@ -2016,7 +2034,7 @@ requires-dist = [
{ name = "vs-task", marker = "python_full_version >= '3.13' and extra == 'vision'", editable = "vendor/visionsuite/packages/vs-task" },
{ name = "weasyprint", marker = "extra == 'server'", specifier = ">=62.0" },
]
provides-extras = ["server", "client", "dev", "vision"]
provides-extras = ["server", "client", "dev", "vision", "vision-worker"]
[[package]]
name = "tinycss2"