[project] name = "olivas-backend" version = "0.1.0" description = "OliVAS - Open-Source Visual Attention Software backend" requires-python = ">=3.12" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "python-multipart>=0.0.9", "sqlalchemy[asyncio]>=2.0", "alembic>=1.13", "asyncpg>=0.29", "psycopg2-binary>=2.9", "pydantic>=2.0", "pydantic-settings>=2.0", "pillow>=10.0", "numpy>=1.26", "scipy>=1.11", "matplotlib>=3.8", "reportlab>=4.0", "aiofiles>=23.0", "anthropic>=0.40", "httpx>=0.27", "PyJWT[crypto]>=2.8", ] [project.optional-dependencies] # Lightweight production install (same as base — alias for clarity) api = [] # Full local ML stack for development without Cloud Run ml = [ "torch>=2.1", "torchvision>=0.16", "scikit-image>=0.22", "einops", "ftfy", "regex", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "httpx>=0.27", "ruff>=0.4", ] [build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [tool.ruff] line-length = 100 target-version = "py312" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]