[project] name = "qc26-engine" version = "0.1.0" description = "QC26 — moteur de données, d'ingestion et de prévision de l'élection générale québécoise du 5 octobre 2026" requires-python = ">=3.12,<3.13" dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.30", "sqlalchemy>=2.0", "pydantic>=2.8", "pydantic-settings>=2.4", "numpy>=2.0", "scipy>=1.14", "httpx[http2]>=0.27", "pypdf>=5.0", "pdfplumber>=0.11", "shapely>=2.0", "pyshp>=2.3", "pillow>=10.4", "python-dateutil>=2.9", "apscheduler>=3.10,<4", "orjson>=3.10", "sse-starlette>=2.1", "lxml>=5.2", "rapidfuzz>=3.9", "pyproj>=3.6", "anthropic>=0.60", ] [project.optional-dependencies] dev = ["pytest>=8", "ruff>=0.6"] [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["qc26*"]