@@ -5,12 +5,14 @@ version = "2025.1"
5
5
description = " Open Data Hub / OpenShift AI Notebook / Workbench images, and tests for the same in Python."
6
6
readme = " README.md"
7
7
package-mode = false
8
- requires-python = " >=3.12,<3.13"
9
-
10
- # https://docs.astral.sh/uv/concepts/projects/dependencies/#managing-dependencies
11
- dependencies = []
8
+ requires-python = " >=3.11,<3.13"
12
9
13
10
[dependency-groups ]
11
+
12
+ # ###########################
13
+ # Python Dependency Groups #
14
+ # ###########################
15
+
14
16
dev = [
15
17
" pre-commit" ,
16
18
" pyright" ,
@@ -32,13 +34,280 @@ dev = [
32
34
" openshift-python-wrapper" ,
33
35
]
34
36
37
+ base = [
38
+
39
+ " wheel~=0.45.1" ,
40
+ " setuptools~=75.8.2" ,
41
+ ]
42
+
43
+ jupyter-base = [
44
+ " jupyterlab==4.2.7" ,
45
+ " jupyter-server~=2.15.0" ,
46
+ " jupyter-server-proxy~=4.4.0" ,
47
+ " jupyter-server-terminals~=0.5.3" ,
48
+ " jupyterlab-git~=0.50.1" ,
49
+ " nbdime~=4.0.2" ,
50
+ " nbgitpuller~=1.2.2" ,
51
+ ]
52
+
53
+ elyra-base = [
54
+ " odh-elyra==4.2.0" ,
55
+ " jupyterlab-lsp~=5.1.0" ,
56
+ " jupyterlab-widgets~=3.0.13" ,
57
+ " jupyter-resource-usage~=1.1.1" ,
58
+ ]
59
+
60
+ elyra-preferred = [
61
+ " jupyter-bokeh~=4.0.5" ,
62
+ ]
63
+
64
+ elyra-trustyai = [
65
+ " jupyter-bokeh~=3.0.5" ,
66
+ ]
67
+
68
+ db-connectors = [
69
+ " pymongo~=4.11.2" ,
70
+ " psycopg~=3.2.5" ,
71
+ " pyodbc~=5.2.0" ,
72
+ " mysql-connector-python~=9.2.0"
73
+ ]
74
+
75
+ # onnxconverter-common ~=1.13.0 required for skl2onnx, as upgraded version is not compatible with protobuf
76
+ datascience-base = [
77
+ " boto3 ~=1.37.8" ,
78
+ " kafka-python-ng ~=2.2.3" ,
79
+ " kfp ~=2.12.1" ,
80
+ " plotly ~=6.0.0" ,
81
+ " scipy ~=1.15.2" ,
82
+ " skl2onnx ~=1.18.0" ,
83
+ " onnxconverter-common ~=1.13.0" ,
84
+ " codeflare-sdk ~=0.27.0" ,
85
+ " kubeflow-training ==1.9.0"
86
+ ]
87
+
88
+ datascience-preferred = [
89
+ " matplotlib~=3.10.1" ,
90
+ " numpy~=2.2.3" ,
91
+ " pandas~=2.2.3" ,
92
+ " scikit-learn~=1.6.1" ,
93
+ ]
94
+
95
+ datascience-tensorflow = [
96
+ " matplotlib~=3.10.1" ,
97
+ " numpy~=1.26.4" ,
98
+ " pandas~=2.2.3" ,
99
+ " scikit-learn~=1.6.1" ,
100
+ ]
101
+
102
+ datascience-trustyai = [
103
+ " matplotlib ~=3.6.3" ,
104
+ " numpy ~=1.24.1" ,
105
+ " pandas ~=1.5.3" ,
106
+ " scikit-learn ~=1.2.1"
107
+ ]
108
+
109
+ tensorflowcuda = [
110
+ " tensorflow[and-cuda]~=2.18.0" ,
111
+ " tensorboard~=2.18.0" ,
112
+ " tf2onnx~=1.16.1" ,
113
+ ]
114
+ tensorflowrocm = [
115
+ " tensorflow-rocm~=2.14.0.600" ,
116
+ " tensorboard~=2.14.0" ,
117
+ " tf2onnx~=1.16.1" ,
118
+ ]
119
+ pytorchcuda = [
120
+ " tensorboard~=2.19.0" ,
121
+ " torch==2.6.0" ,
122
+ " torchvision==0.21.0" ,
123
+ ]
124
+ pytorchrocm = [
125
+ " tensorboard~=2.18.0" ,
126
+ " torch==2.6.0" ,
127
+ " torchvision==0.21.0" ,
128
+ " pytorch-triton-rocm~=3.2.0" ,
129
+ ]
130
+ trustyai = [
131
+ " torch==2.6.0" ,
132
+ " transformers~=4.49.0" ,
133
+ " datasets~=3.4.1" ,
134
+ " accelerate~=1.5.2" ,
135
+ " trustyai~=0.6.1" ,
136
+ ]
137
+
138
+ # ########################
139
+ # Workbench Image Groups #
140
+ # ########################
141
+
142
+ jupyter-minimal-image = [
143
+ { include-group = " dev" },
144
+ { include-group = " base" },
145
+ { include-group = " jupyter-base" },
146
+ ]
147
+
148
+ jupyter-datascience-image = [
149
+ { include-group = " dev" },
150
+ { include-group = " base" },
151
+ { include-group = " jupyter-base" },
152
+ { include-group = " elyra-base" },
153
+ { include-group = " elyra-preferred" },
154
+ { include-group = " datascience-base" },
155
+ { include-group = " datascience-preferred" },
156
+ { include-group = " db-connectors" },
157
+ ]
158
+
159
+ jupyter-tensorflow-image = [
160
+ { include-group = " dev" },
161
+ { include-group = " base" },
162
+ { include-group = " jupyter-base" },
163
+ { include-group = " elyra-base" },
164
+ { include-group = " elyra-preferred" },
165
+ { include-group = " datascience-base" },
166
+ { include-group = " datascience-tensorflow" },
167
+ { include-group = " db-connectors" },
168
+ { include-group = " tensorflowcuda" },
169
+ ]
170
+
171
+ jupyter-tensorflow-rocm-image = [
172
+ { include-group = " dev" },
173
+ { include-group = " base" },
174
+ { include-group = " jupyter-base" },
175
+ { include-group = " elyra-base" },
176
+ { include-group = " elyra-preferred" },
177
+ { include-group = " datascience-base" },
178
+ { include-group = " datascience-tensorflow" },
179
+ { include-group = " db-connectors" },
180
+ { include-group = " tensorflowrocm" },
181
+ ]
182
+
183
+ jupyter-pytorch-image = [
184
+ { include-group = " dev" },
185
+ { include-group = " base" },
186
+ { include-group = " jupyter-base" },
187
+ { include-group = " elyra-base" },
188
+ { include-group = " elyra-preferred" },
189
+ { include-group = " datascience-base" },
190
+ { include-group = " datascience-preferred" },
191
+ { include-group = " db-connectors" },
192
+ { include-group = " pytorchcuda" },
193
+ ]
194
+
195
+ jupyter-pytorch-rocm-image = [
196
+ { include-group = " dev" },
197
+ { include-group = " base" },
198
+ { include-group = " jupyter-base" },
199
+ { include-group = " elyra-base" },
200
+ { include-group = " elyra-preferred" },
201
+ { include-group = " datascience-base" },
202
+ { include-group = " datascience-preferred" },
203
+ { include-group = " db-connectors" },
204
+ { include-group = " pytorchrocm" },
205
+ ]
206
+
207
+ jupyter-trustyai-image = [
208
+ { include-group = " dev" },
209
+ { include-group = " base" },
210
+ { include-group = " jupyter-base" },
211
+ { include-group = " elyra-base" },
212
+ { include-group = " elyra-trustyai" },
213
+ { include-group = " datascience-base" },
214
+ { include-group = " datascience-trustyai" },
215
+ { include-group = " db-connectors" },
216
+ { include-group = " trustyai" },
217
+ ]
218
+
219
+ [tool .uv .sources ]
220
+ torch = [
221
+ { index = " pytorch-cuda" , group = " pytorchcuda" },
222
+ { index = " pytorch-cuda" , group = " trustyai" },
223
+ { index = " pytorch-rocm" , group = " pytorchrocm" },
224
+ ]
225
+ torchvision = [
226
+ { index = " pytorch-cuda" , group = " pytorchcuda" },
227
+ { index = " pytorch-rocm" , group = " pytorchrocm" },
228
+ ]
229
+ pytorch-triton-rocm = [
230
+ { index = " pytorch-rocm" },
231
+ ]
232
+
233
+
234
+ [[tool .uv .index ]]
235
+ name = " pytorch-cuda"
236
+ url = " https://download.pytorch.org/whl/cu126"
237
+ explicit = true
238
+
239
+ [[tool .uv .index ]]
240
+ name = " pytorch-rocm"
241
+ url = " https://download.pytorch.org/whl/rocm6.2.4"
242
+ explicit = true
243
+
244
+ [[tool .uv .index ]]
245
+ name = " pypi"
246
+ url = " https://pypi.org/simple/"
247
+ explicit = true
248
+
249
+ [[tool .uv .dependency-metadata ]]
250
+ name = " tf2onnx"
251
+ version = " 1.16.1"
252
+ requires-dist = [" protobuf" ]
253
+
254
+ [[tool .uv .dependency-metadata ]]
255
+ name = " tensorflow-rocm"
256
+ version = " 2.14.0.600"
257
+ requires-dist = [
258
+ " tensorflow-cpu-aws; platform_machine != 'x86_64'" ,
259
+ " tensorflow-estimator" ,
260
+ " tensorflow-io-gcs-filesystem" ,
261
+ ]
262
+
35
263
[tool .uv ]
36
264
package = false
37
265
environments = [
38
- " sys_platform == 'darwin'" ,
39
266
" sys_platform == 'linux'" ,
40
267
]
41
268
269
+ conflicts = [
270
+ [
271
+ { group = " elyra-preferred" },
272
+ { group = " elyra-trustyai" }
273
+ ],
274
+ [
275
+ { group = " elyra-preferred" },
276
+ { group = " trustyai" }
277
+ ],
278
+ [
279
+ { group = " datascience-preferred" },
280
+ { group = " trustyai" },
281
+ { group = " tensorflowcuda" },
282
+ ],
283
+ [
284
+ { group = " datascience-tensorflow" },
285
+ { group = " trustyai" }
286
+ ],
287
+ [
288
+ { group = " datascience-preferred" },
289
+ { group = " datascience-trustyai" },
290
+ { group = " datascience-tensorflow" },
291
+ ],
292
+ [
293
+ { group = " tensorflowcuda" },
294
+ { group = " tensorflowrocm" },
295
+ { group = " pytorchcuda" },
296
+ { group = " pytorchrocm" },
297
+ { group = " trustyai" },
298
+ ],
299
+ [
300
+ { group = " tensorflowcuda" },
301
+ { group = " tensorflowrocm" },
302
+ { group = " datascience-base" },
303
+ ],
304
+ [
305
+ { group = " tensorflowcuda" },
306
+ { group = " trustyai" },
307
+ { group = " datascience-trustyai" },
308
+ ]
309
+ ]
310
+
42
311
# https://github.com/astral-sh/uv/issues/3957#issuecomment-2659350181
43
312
[build-system ]
44
313
requires = [" uv-build" ]
0 commit comments