[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", ]