migrate to uv + pyproject.toml

- root pyproject.toml replaces requirements.txt and requirements-worker.txt
  (worker = root + ffmpeg-python which root already had); test deps moved
  to [dependency-groups] dev
- core/gpu/pyproject.toml replaces core/gpu/requirements.txt; uses
  [tool.uv.sources] to pin torch/torchvision and paddlepaddle-gpu to their
  CUDA index URLs, replacing the manual reinstall dance from old comments
- Dockerfiles use uv sync --frozen against uv.lock for reproducible builds;
  PATH includes /app/.venv/bin so k8s manifests' bare uvicorn/celery
  commands resolve without wrapping in uv run
- core/gpu/run.sh local mode now does uv sync + uv run python server.py;
  errors out cleanly if uv is missing
This commit is contained in:
2026-04-29 07:32:56 -03:00
parent d9e0794b83
commit f66d3a273f
10 changed files with 3132 additions and 93 deletions

42
pyproject.toml Normal file
View File

@@ -0,0 +1,42 @@
[project]
name = "mpr"
version = "0.1.0"
description = "MPR — multi-pipeline runtime (api, admin, worker)"
requires-python = ">=3.11"
dependencies = [
"Django>=4.2,<5.0",
"django-environ>=0.11.2",
"fastapi>=0.109.0",
"uvicorn[standard]>=0.27.0",
"pydantic>=2.5.0",
"celery[redis]>=5.3.0",
"redis>=5.0.0",
"grpcio>=1.60.0",
"grpcio-tools>=1.60.0",
"boto3>=1.34.0",
"requests>=2.31.0",
"google-cloud-run>=0.10.0",
"strawberry-graphql[fastapi]>=0.311.0",
"langfuse>=2.0.0",
"anthropic>=0.40.0",
"sqlmodel>=0.0.14",
"psycopg2-binary>=2.9.9",
"opencv-python-headless>=4.8.0",
"numpy>=1.24.0",
"Pillow>=10.0.0",
"imagehash>=4.3.0",
"ffmpeg-python>=0.2.0",
"langgraph>=0.0.30",
"rapidfuzz>=3.0.0",
]
[dependency-groups]
dev = [
"pytest>=7.4.0",
"pytest-django>=4.7.0",
"pytest-asyncio>=0.23.0",
"httpx>=0.26.0",
]
[tool.uv]
package = false