File size: 3,586 Bytes
e479c46 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | # Thor platform pyproject.toml — Jetson AGX Thor (aarch64, CUDA 13, Python 3.12)
# This is a self-contained config with no platform markers needed.
[build-system]
requires = ["setuptools>=67", "wheel", "pip"]
build-backend = "setuptools.build_meta"
[project]
name = "gr00t"
version = "0.1.0"
requires-python = ">=3.12,<3.13"
dependencies = [
"albumentations==1.4.18",
"diffusers==0.36.0.dev0",
"dm-tree==0.1.8",
"huggingface-hub[cli]",
"jsonlines==4.0.0",
"lmdb==1.7.5",
"msgpack==1.1.0",
"msgpack-numpy==0.4.8",
"opencv-python-headless>=4.5,<4.13",
"pandas==2.2.3",
"peft==0.17.1",
"termcolor==3.2.0",
"torch==2.10.0",
"triton==3.5.0",
"torchvision==0.25.0",
"transformers==4.57.6",
"tyro==0.9.17",
"click==8.1.8",
"datasets==3.6.0",
"cryptography>=46.0.7",
"einops==0.8.1",
"gitpython==3.1.50",
"gymnasium==1.2.2",
"matplotlib==3.10.1",
"numpy==1.26.4",
"omegaconf==2.3.0",
"scipy==1.15.3",
"wandb==0.23.0",
"pyzmq==27.0.1",
"torchcodec==0.10.0",
# Keep these as direct pins: the Jetson Thor torch wheel does not bundle these runtime libs,
# and we want them installed even if torch's transitive dependency metadata changes upstream.
# Revisit if the Jetson AI Lab torch packages start vendoring them or declaring them reliably.
"nvidia-cudnn-cu13",
"nvidia-cudss-cu13",
"flash-attn==2.8.4",
"onnx>=1.20.0",
"onnxscript",
"tensorrt>=10.14.1.48.post1",
]
[project.optional-dependencies]
dev = [
"ruff",
"ipython",
"pytest",
"pytest-timeout",
"build",
"pre-commit",
]
[tool.setuptools.packages.find]
where = ["."]
include = ["gr00t*"]
[tool.uv]
[tool.uv.extra-build-dependencies]
flash-attn = ["torch==2.10.0", "numpy==1.26.4", "triton==3.5.0"]
[tool.uv.sources]
torch = [{ index = "jetson-sbsa-cu130" }]
torchvision = [{ index = "jetson-sbsa-cu130" }]
torchcodec = [{ index = "jetson-sbsa-cu130" }]
triton = [{ index = "jetson-sbsa-cu130" }]
flash-attn = [{ index = "jetson-sbsa-cu130" }]
diffusers = [{ index = "jetson-sbsa-cu130" }]
[tool.pytest.ini_options]
addopts = "--import-mode=importlib"
markers = [
"gpu: tests that require a GPU",
"multigpu: tests that require multiple GPUs and use all visible GPUs",
]
# Include fixture setup/teardown in JUnit <testcase time="..."> so duration
# reports reflect real wall-clock time instead of call-only.
junit_duration_report = "total"
[tool.ruff]
line-length = 100
# Thor ships Python 3.12 (see requires-python above) — keep Ruff aligned
# so rule behaviour matches the interpreter actually used on device.
target-version = "py312"
src = ["gr00t"]
exclude = [
"__pycache__",
".git",
".mypy_cache",
".pytest_cache",
".vscode",
".venv",
"dist",
"logs",
"*.ipynb",
"external_dependencies",
]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
docstring-code-format = true
[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = ["E501"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
[tool.ruff.lint.isort]
case-sensitive = false
combine-as-imports = true
force-sort-within-sections = true
force-wrap-aliases = false
split-on-trailing-comma = false
lines-after-imports = 2
section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]
[[tool.uv.index]]
name = "nvidia-pypi"
url = "https://pypi.nvidia.com"
explicit = true
[[tool.uv.index]]
name = "jetson-sbsa-cu130"
url = "https://pypi.jetson-ai-lab.io/sbsa/cu130/+simple"
explicit = true
|