[project] name = "wisegrade-backend" version = "0.1.0" description = "WiseGrade teacher-only scoring backend" requires-python = ">=3.10,<3.13" dependencies = [ "fastapi>=0.115,<0.125", "starlette>=0.40,<0.50", "uvicorn[standard]>=0.34,<1", "sqlalchemy>=2,<3", "alembic>=1.14,<2", "psycopg[binary]>=3.2,<4", "pgvector>=0.4,<1", "pydantic-settings>=2,<3", "redis>=5,<7", "rq>=2,<3", "pymupdf>=1.25,<2", "python-docx>=1.1,<2", "python-pptx>=1,<2", "pillow>=11,<13", "sentence-transformers>=4,<6", "torch>=2.3,<3", "httpx>=0.28,<1", "cryptography>=44,<48", "openpyxl>=3.1,<4", "weasyprint>=64,<70", ] [dependency-groups] dev = ["pytest>=8,<10"] [project.optional-dependencies] ocr = ["paddleocr>=2.9,<4", "paddlepaddle>=2.6,<4"] [tool.uv.sources] torch = { index = "pytorch-cpu" } [[tool.uv.index]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" explicit = true [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["."] markers = ["integration: tests using bundled course examples"]