-
Notifications
You must be signed in to change notification settings - Fork 128
/
Copy pathpyproject.toml
178 lines (167 loc) · 5.3 KB
/
pyproject.toml
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
[tool.poetry]
name = "manipulation"
# Use e.g. 2024.10.4.rc0 if I need to release a release candidate.
# Use e.g. 2024.10.4.post1 if I need to rerelease on the same day.
version = "2025.1.24"
description = "MIT 6.421 - Robotic Manipulation"
authors = ["Russ Tedrake <russt@mit.edu>"]
license = "BSD License"
readme = "README.md"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: BSD License"
]
include = [
"LICENSE.txt",
"README.md",
"pyproject.toml",
"manipulation/**/*.py",
"manipulation/**/*.npy",
"manipulation/**/*.sdf",
"manipulation/**/*.urdf",
"manipulation/**/*.xml",
"manipulation/**/*.yaml",
"manipulation/**/*.obj",
"manipulation/**/*.stl",
"manipulation/**/*.dae",
]
exclude = [
"*.egg-info/**",
"**/__pycache__/**",
"**/*.bazel",
"**/test/**",
"bazel-*",
"book/**",
"solutions/**",
"figures/**",
"manipulation/_static/**",
]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[[tool.poetry.source]]
name = "drake-nightly"
url = "https://drake-packages.csail.mit.edu/whl/nightly/"
priority = "explicit"
[tool.poetry.dependencies]
python = "<4.0,>=3.10"
cloudpickle = { version="2.2.1", optional=true} # needs to be pinned for stored files to remain compatible.
drake = { version = ">=0.0.20250118 <1.0", source = "drake-nightly" }
#drake = ">=1.37.0"
gradescope-utils = { version=">=0.4.0", optional=true}
gymnasium = { version=">0.26", optional=true }
ipython = ">=7.8.0" # TODO: make this optional?
ipywidgets = { version=">=8", optional=true }
lxml = {version = ">=4.9.2", extras = ["html_clean"] }
# Note: matplotlib gets additional handling in PoetryExport.sh for bazel.
matplotlib = ">=3.7.0" # old versions don't build in XCode
mpld3 = { version=">=0.5.6", optional=false } # TODO: make this optional
nbconvert = [
{platform="darwin", version="7.0.0"},
{platform="linux", version="6.4.0"},
]
nevergrad = { version=">=0.4.3", optional=true } # TODO: avoid expensive bayesian optimization dep
numpy = "^2.0.0"
psutil = { version=">=5.9.*", optional=true }
pycollada = { version=">=0.8", optional=true }
#pymcubes = ">=0.0.9"
pyvirtualdisplay = { version=">=3.0", optional=false } # TODO: remove this.
pyzmq = [
{platform="darwin", version=">=25.0.0", optional=true}, # needed for python 3.11?
{platform="linux", version=">=24.0.0", optional=true}, # <25.0.0 is currently needed for deepnote; this is pinned in htmlbook/Init.ipynb
]
scipy = { version=">=1.10.0", optional=true }
stable-baselines3 = { version=">=2.0.0", optional=true }
timeout-decorator = { version=">=0.4.1", optional=true }
torch = { version=">=2.0.1 <2.4.0", optional=true } # 2.4.0 doesn't support +cpu yet; needed for bazel on linux. additional logic in PoetryExport.sh.
torchvision = { version=">=0.10.1", optional=true }
tqdm = { version=">=4", optional=true }
trimesh = { version = ">=4.4.4", optional=true }
vhacdx = { version=">=0.0.5", optional=true }
#wandb = ">=0.14.0"
coacd = { version="^1.0.5", optional=true }
[tool.poetry.extras]
torch = ["torch", "torchvision"]
rl = ["stable_baselines3", "gymnasium"]
mesh = ["pycollada", "trimesh", "vhacdx", "coacd"]
grader = ["gradescope-utils", "timeout-decorator", "nbconvert", "nbformat"]
# 'all' should have all of the optional dependencies required to run bazel in this repo.
all = [
"cloudpickle",
"gradescope-utils",
"gymnasium",
"ipywidgets",
"nevergrad",
"psutil",
"pycollada",
"pyzmq",
"scipy",
"stable_baselines3",
"timeout-decorator",
"torch",
"torchvision",
"tqdm",
"trimesh",
"vhacdx",
"coacd"
]
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
# Must include all dependencies required to build the docs with sphinx +
# autodoc, even if it repeats some dependencies from main, because my sphinx
# script uses `poetry install --only docs`. This include any requirements
# needed to import for a file that sphinx autodoc is trying to index. None of
# these should be marked as optional.
drake = { version = ">=0.0.20250118 <1.0", source = "drake-nightly" }
#drake = ">=1.37.0"
ipython = ">=7.8.0"
lxml = {version = ">=4.9.2", extras = ["html_clean"] }
mpld3 = { version=">=0.5.6", optional=false }
myst-parser = ">=2.0.0"
pyvirtualdisplay = { version=">=3.0", optional=false }
sphinx = ">=7.2.6"
sphinx_rtd_theme = ">=2.0.0"
trimesh = { version = ">=4.4.4", optional=false }
vhacdx = { version=">=0.0.5", optional=false }
[tool.poetry.group.dev.dependencies]
# These should not appear as requirements in any BUILD.bazel (except htmlbook)
beautifulsoup4 = { version=">=4.6.3" }
black = { version = ">=23.*", extras = ["jupyter"] }
mysql-connector-python = { version=">=8.0.23" }
pre-commit = "^3.4.0"
poetry-pre-commit-plugin = "^0.1.2"
requests = { version=">=2.25.1" }
[tool.black]
include = '\.ipynb?$|\.pyi?$'
exclude = '''
/(
\.git
| \.history
| bazel-*
| \.venv
| build
| dist
)/
'''
[tool.isort]
profile = "black"
multi_line_output = 3
skip_glob = [
"**/.git/**",
"**/.history/**",
"bazel-*",
"**/.venv/**",
"**/build/**",
"**/dist/**",
]
[tool.autoflake]
in-place = true
recursive = true
expand-star-imports = true
ignore-init-module-imports = true
remove-all-unused-imports = true
remove-duplicate-keys = true
remove-unused-variables = true
[tool.pyright]
include = ["manipulation"]