[project] name = "festival4d" version = "0.1.0" description = "Turn multiple fan-shot smartphone concert videos into a synchronized, explorable 4D experience." readme = "README.md" requires-python = ">=3.11" dependencies = [ "fastapi>=0.110", "uvicorn[standard]>=0.29", "numpy>=1.26", "scipy>=1.11", "librosa>=0.10", "soundfile>=0.12", "sqlalchemy>=2.0", "pydantic>=2.6", "opencv-python-headless>=4.9", # classifier providers (lane D) — imported lazily, never at module load "google-genai>=0.3", "anthropic>=0.40", "openai>=1.30", ] [project.optional-dependencies] dev = ["pytest>=8.0"] [project.scripts] festival4d = "festival4d.cli:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["backend/festival4d"] [tool.pytest.ini_options] testpaths = ["backend/tests"] addopts = "-q"