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