dr-sandbox/pyproject.toml

53 lines
1.4 KiB
TOML

[build-system]
requires = ["uv_build>=0.5.0,<0.9"]
build-backend = "uv_build"
[project]
name = "dimension-reduction-sandbox"
version = "0.0.1"
description = "Dimension Reduction Stability Experiments with Prefect"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"annoy-mm>=1.17.3", # prebuilt wheels for annoy; satisfies pacmap/trimap
"pacmap>=0.7.5",
"pandas>=2.2.3",
"plotly>=5.24.1",
"prefect-ray>=0.4.2",
"prefect>=3.1.1",
"scikit-learn>=1.5.2",
"setuptools>=75.4.0", # pacmap + trimap need this (unecessarily)
"trimap>=1.1.4",
"umap-learn>=0.5.7",
"fastapi>=0.115.0",
"jinja2>=3.1.4",
"uvicorn[standard]>=0.32.0",
"httpx>=0.27.0",
"python-multipart>=0.0.12",
"sse-starlette>=2.1.3",
]
[project.scripts]
dr-sandbox = "dr_sandbox.cli:main"
# Only the thin CLI shim is a distributable package. `app/`, `flows/`,
# `scripts/` stay source-tree-local — they're run in-place, not installed.
# Because the project slug ("dimension-reduction-sandbox") differs from
# the importable module, tell uv_build where to look.
[tool.uv.build-backend]
module-name = "dr_sandbox"
module-root = "src"
[tool.uv]
override-dependencies = [
"annoy ; sys_platform == 'never'", # block source build of annoy; annoy-mm provides the module
]
[dependency-groups]
dev = [
"black>=24.10.0",
"flake8>=7.1.1",
"ipython>=8.29.0",
"isort>=5.13.2",
]