[project]
name = "anydata"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
  # Core
  "av",
  "boto3",
  "braceexpand",
  "decord",
  "einops",
  "ffmpeg-python",
  "fsspec",
  "imageio",
  "numba",
  "nest_asyncio",
  "numpy",
  "opencv-python",
  "pandas",
  "pillow",
  "pyyaml",
  "requests",
  "rich",
  "scipy",
  "sagemaker==2.256.1",
  "torch",
  "torchcodec",
  "torchvision",
  "tqdm",
  "transformers==4.51.3",
  "webdataset",  # forked in externals/webdataset/ (multi-camera tar extraction)
  # Linux-only (CUDA)
  "cuda-bindings; sys_platform == 'linux'",
  "cuda-pathfinder; sys_platform == 'linux'",
  "rerun-sdk",
  "zarr>=3"  # depth is written/read as zarr v3; v2 cannot read it (PathNotFoundError)
]

[project.optional-dependencies]
viz = ["matplotlib", "pygame", "PyOpenGL", "camviz", "rerun-sdk"]
dl3dv10k = ["torch-scatter"]
droid = ["h5py"]
hypersim = ["h5py"]
PhysicalAI = ["physical_ai_av==0.2.0", "DracoPy==2.0.0", "torch-scatter"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["anydata"]

[tool.uv.extra-build-dependencies]
torch-scatter = ["torch"]

[[tool.uv.index]]
name = "pytorch-gpu"
url = "https://download.pytorch.org/whl/cu128"
explicit = true

[tool.uv.sources]
webdataset = { path = "externals/webdataset", editable = true }
camviz = { path = "externals/camviz_internal", editable = true }
torch = { index = "pytorch-gpu" }
torchvision = { index = "pytorch-gpu" }
