-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
executable file
·184 lines (166 loc) · 6.08 KB
/
pyproject.toml
File metadata and controls
executable file
·184 lines (166 loc) · 6.08 KB
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# ==================================================================================
# Project Metadata
# Defines core information about the package.
# ==================================================================================
[project]
name = "robometer"
version = "0.0.1" # You can update this as you release new versions
description = "Robometer: scalable reward modeling with progress and preference"
readme = "README.md"
requires-python = "==3.10.*" # Based on your GitHub repo's setup
authors = [
{ name = "Anthony Liang", email = "aliang80@usc.edu" }
]
# ==================================================================================
# Dependencies
# This section lists the direct dependencies of your project.
# It is best practice to list only the packages your code directly imports,
# not every package from your environment. Tools like 'uv' or 'pip' will
# resolve and install the dependencies of these packages automatically.
# ==================================================================================
dependencies = [
"accelerate>=1.9.0",
"datasets==4.1.1",
"einops>=0.8.0",
"evaluate>=0.4.3",
"h5py>=3.10.0",
"huggingface-hub[hf-xet]>0.35",
"numpy>=1.21.0", # Compatible with modern PyTorch
"matplotlib>=3.5.0",
"peft",
"pyrallis>=0.3.0",
"safetensors>=0.6.0rc0",
"sentence-transformers>=2.0.0",
"tqdm>=4.67.1",
"wandb>=0.20.1",
"pyyaml>=6.0.0",
"rich>=14.0.0",
"soundfile>=0.13.1",
"ipdb>=0.13.13",
"hf_transfer>=0.1.0",
"gradio>=4.0.0",
"pillow>=9.0.0",
"ffmpeg",
"termcolor>=3.1.0",
"qwen-vl-utils[decord]==0.0.14",
"fastapi>=0.116.1",
"uvicorn>=0.35.0",
"requests>=2.32.4",
"google-generativeai", # For RL-VLM-F baseline (Gemini API)
"scipy>=1.15.3",
"codetiming>=1.4.0",
"robosuite==1.4.0",
"imageio>=2.37.0",
"omegaconf>=2.3.0",
"opencv-python-headless>=4.8.0",
"opencv-contrib-python-headless>=4.8.0", # Additional OpenCV modules
"einops>=0.8.0",
"num2words",
"seaborn",
"bitsandbytes",
"torch==2.8.0", # Required for Qwen models, xformers, and modern transformers. Use CUDA build on Linux via tool.uv.sources
"torchvision",
"moviepy",
"wandb[media]",
"torchcodec",
"decord>=0.6.0",
"unsloth>=2025.10",
"gymnasium>=1.2.2",
"metaworld>=3.0.0",
"loguru>=0.7.3",
"xformers==0.0.32.post2",
"tensorboard",
"requests",
"hydra-core",
"omegaconf",
"tensorflow-datasets==4.9.2", # just for oxe and other tfds dataset uploading
"tensorflow==2.19", # just for oxe and other tfds dataset uploading
"tf-keras>=2.19.0", # just for oxe and other tfds dataset uploading
"protobuf<3.21", # just for oxe and other tfds dataset uploading
]
[project.urls]
Repository = "https://github.com/robometer/robometer"
# ==================================================================================
# Optional Dependencies
# These are groups of dependencies for specific purposes, like development or
# running optional features. Install with `uv pip install .[dev]`
# ==================================================================================
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"ruff>=0.8.0",
"pre-commit>=4.0.0",
"ipykernel",
"ipywidgets",
]
quantization = [
"bitsandbytes>=0.46.1", # Linux/Windows only - for model quantization
]
# Standard Robometer/training installation (includes transformers and trl)
robometer = [
"transformers>=4.57",
"trl==0.20.0",
]
# VLAC baseline installation (conflicts with robometer versions - use separate environment)
vlac = [
"transformers<4.52", # Required by evo-vlac
"trl>=0.13,<0.17", # Required by evo-vlac
"evo-vlac @ git+https://github.com/InternRobotics/VLAC.git",
]
# ==================================================================================
# Build System
# Specifies how your project should be packaged. Hatchling is a modern,
# fast, and recommended build backend.
# ==================================================================================
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["robometer"]
[tool.hatch.metadata]
allow-direct-references = true
# ==================================================================================
# Tool Configuration
# Settings for various development tools like 'uv', 'ruff' (linter), etc.
# ==================================================================================
# Configuration for the 'uv' package manager
[tool.uv]
# Declare that robometer and vlac optional dependencies are incompatible
# They have conflicting trl and transformers version requirements
conflicts = [
[
{ extra = "robometer" },
{ extra = "vlac" },
],
]
# This section could be used for advanced features like overriding dependencies
# from your environment if needed, similar to the 'openpi' example.
#override-dependencies = ["av<16.0.0"]
# Ensure flash-attn builds against the same Torch that's in your env
[tool.uv.extra-build-dependencies]
flash-attn = [{ requirement = "torch", match-runtime = true }]
# Tell flash-attn to use a prebuilt wheel instead of compiling CUDA kernels
[tool.uv.extra-build-variables]
flash-attn = { FLASH_ATTENTION_SKIP_CUDA_BUILD = "TRUE" }
# Specify PyTorch CUDA index for Linux/Windows (CUDA 12.8 builds)
[tool.uv.sources]
torch = { index = "pytorch-cu128", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }
torchvision = { index = "pytorch-cu128", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }
[[tool.uv.index]]
name = "pytorch-cu128"
url = "https://download.pytorch.org/whl/cu128"
explicit = true
# Tool configuration for the 'ruff' linter and formatter
[tool.ruff]
line-length = 120
target-version = "py310"
fix = true
unsafe-fixes = true # <- allow deletions that might have side effects; optional, use with care
[tool.ruff.lint]
select = ["E", "W", "F", "I", "B", "C4", "UP", "RUF"]
ignore = ["T201"]
[tool.ruff.lint.isort]
combine-as-imports = true
split-on-trailing-comma = true
[tool.ruff.format]
preview = true