agrovision / pyproject.toml
alexp97's picture
refactor: elimina Shiny (dashboard, run_ui, deps) y el deploy a shinyapps (Fase 10)
22026b0
Raw
History Blame Contribute Delete
2.08 kB
[project]
name = "agrovision-mvp"
version = "0.1.0"
description = "AgroVisión: backend FastAPI (gateway) + UI Astro estática; teledetección NDVI, parcelas y agente RAG (conteo en standby)."
requires-python = ">=3.11"
dependencies = [
"fastapi>=0.115",
"uvicorn[standard]>=0.34",
"python-multipart>=0.0.9", # requerido por FastAPI para multipart/form-data
"pydantic>=2.7",
"httpx>=0.27",
"python-dotenv>=1.0", # carga .env en desarrollo local
"onnxruntime>=1.18", # inferencia ONNX genérica (agnóstica al modelo)
"opencv-python-headless>=4.9",
"pillow>=10.0",
"numpy>=2.1", # >=2.1 trae wheels para Python 3.13
"supervision>=0.20", # tiling/anotación de cajas (uso futuro al activar el conteo)
"huggingface_hub>=0.24", # descarga del modelo desde HF Hub en el build
# --- Plataforma completa: persistencia (Fase 2) ---
"sqlalchemy>=2.0", # ORM/Core async
"asyncpg>=0.29", # driver async PostgreSQL (Supabase)
"geoalchemy2>=0.15", # tipo Geometry para PostGIS
"shapely>=2.0", # geometría: GeoJSON -> WKT, área
"python-dateutil>=2.9", # relativedelta para el rango de 5 años (Fase 3)
]
# Nota: la UI es Astro (estática, servida por el gateway). Las antiguas deps de Shiny
# (shiny/shinywidgets/ipyleaflet/plotly) se eliminaron en la Fase 10.
[dependency-groups]
dev = [
"pytest>=8",
"ruff>=0.6",
"playwright>=1.45",
]
[tool.uv]
# La carpeta del repo está sincronizada por OneDrive: usar copia evita errores de hardlink.
link-mode = "copy"
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
[tool.ruff.lint.flake8-bugbear]
# FastAPI usa estas llamadas en valores por defecto de argumentos (patrón idiomático).
extend-immutable-calls = ["fastapi.File", "fastapi.Form", "fastapi.Depends", "fastapi.Query"]
[tool.pytest.ini_options]
pythonpath = ["."]
testpaths = ["tests"]
addopts = "-q"