Files
2026-07-13 13:05:14 +08:00

67 lines
2.6 KiB
TOML

[project]
name = "droid_semantic_search"
version = "0.1.0"
readme = "README.md"
requires-python = ">=3.12,<3.13"
dependencies = [
# `catalog` brings datafusion + pandas; `dataloader` brings torch, torchvision, av, pillow.
"rerun-sdk[catalog,dataloader]",
"lancedb", # default local vector store + ANN index (--backend lance)
"qdrant-client", # alternative local vector store (--backend qdrant)
"transformers>=5.13.0", # SigLIP-2 model + processor
"pyarrow<24", # building the vector-index table
"huggingface-hub", # prepare_dataset.py: download DROID sample episodes from the Hub
"tqdm", # progress bars for download/register/ingest
]
[dependency-groups]
dev = ["mypy==1.19.1", "types-tqdm"]
[tool.rerun-example]
# Picked up by scripts/ci/isolated_examples.py and the `py-lint-isolated-examples` pixi task.
isolated = true
[tool.uv]
# The example is flat scripts, not a wheel — skip project build, just sync deps.
package = false
# Default `uv sync` uses the in-repo editable rerun-sdk (monorepo dev mode).
# After syncing, also run `uv pip install ../../../rerun_py/rerun_dev_fixup` to
# install the .pth shim that makes `import rerun` resolve to the editable source tree.
#
# Standalone users (e.g. sparse-checkout of just this example) run instead:
# uv sync --no-sources --no-dev
# That ignores the path source below and resolves `rerun-sdk` from PyPI.
# rerun-dev-fixup is intentionally absent from this file: uv 0.7.x resolves all
# dependency groups and extras unconditionally, so any path-only package here would
# block standalone `--no-sources` resolution.
[tool.uv.sources]
rerun-sdk = { path = "../../../rerun_py", editable = true }
# Merged onto the shared base at `../_isolated/mypy.ini` by
# scripts/ci/isolated_examples.py — list the untyped third-party libs this
# example actually imports.
[[tool.mypy.overrides]]
module = [
"lancedb.*",
"qdrant_client.*",
"torch.*",
"torchvision.*",
"av.*",
"PIL.*",
"huggingface_hub.*",
# pyarrow is pinned <24 (24.0.0 segfaults rerun on import); 23.x ships no py.typed,
# so all of pyarrow — including pyarrow.compute — is untyped to mypy.
"pyarrow.*",
]
ignore_missing_imports = true
# transformers ships a `py.typed` marker but with incomplete stubs, so type-checking its
# internals yields false positives we can't fix from here: model methods are wrapped in
# `_Wrapped` descriptors that mistype `self` (`AutoModel has no attribute "to"`,
# `AutoProcessor not callable`, etc.). Skip following it — we only need our own usage typed.
[[tool.mypy.overrides]]
module = ["transformers.*"]
follow_imports = "skip"
ignore_missing_imports = true