@@ -26,7 +26,7 @@ classifiers = [
26
26
" Typing :: Typed" ,
27
27
]
28
28
dynamic = [" version" ]
29
- dependencies = [" array-api-compat>=1.1.1 " ]
29
+ dependencies = [" array-api-compat>=1.10.0,<2 " ]
30
30
31
31
[project .optional-dependencies ]
32
32
tests = [
@@ -62,8 +62,8 @@ channels = ["https://prefix.dev/conda-forge"]
62
62
platforms = [" linux-64" , " osx-arm64" , " win-64" ]
63
63
64
64
[tool .pixi .dependencies ]
65
- python = " >=3.10.15 ,<3.14"
66
- array-api-compat = " >=1.1.1 "
65
+ python = " >=3.10,<3.14"
66
+ array-api-compat = " >=1.10.0,<2 "
67
67
68
68
[tool .pixi .pypi-dependencies ]
69
69
array-api-extra = { path = " ." , editable = true }
@@ -130,6 +130,35 @@ python = "~=3.10.0"
130
130
[tool .pixi .feature .py313 .dependencies ]
131
131
python = " ~=3.13.0"
132
132
133
+ # Backends that can run on CPU-only hosts
134
+ [tool .pixi .feature .backends .target .linux-64 .dependencies ]
135
+ pytorch = " *"
136
+ dask = " *"
137
+ sparse = " >=0.15"
138
+ jax = " *"
139
+
140
+ [tool .pixi .feature .backends .target .osx-arm64 .dependencies ]
141
+ pytorch = " *"
142
+ dask = " *"
143
+ sparse = " >=0.15"
144
+ jax = " *"
145
+
146
+ [tool .pixi .feature .backends .target .win-64 .dependencies ]
147
+ # pytorch = "*" # Package unavailable on Windows
148
+ dask = " *"
149
+ sparse = " >=0.15"
150
+ # jax = "*" # Package unavailable on Windows
151
+
152
+ # Backends that require a GPU host and a CUDA driver
153
+ [tool .pixi .feature .cuda-backends .target .linux-64 .dependencies ]
154
+ cupy = " *"
155
+
156
+ [tool .pixi .feature .cuda-backends .target .osx-arm64 .dependencies ]
157
+ # cupy = "*" # Package unavailable on macOSX
158
+
159
+ [tool .pixi .feature .cuda-backends .target .win-64 .dependencies ]
160
+ cupy = " *"
161
+
133
162
[tool .pixi .environments ]
134
163
default = { solve-group = " default" }
135
164
lint = { features = [" lint" ], solve-group = " default" }
@@ -138,7 +167,9 @@ docs = { features = ["docs"], solve-group = "default" }
138
167
dev = { features = [" lint" , " tests" , " docs" , " dev" ], solve-group = " default" }
139
168
ci-py310 = [" py310" , " tests" ]
140
169
ci-py313 = [" py313" , " tests" ]
141
-
170
+ # CUDA not available on free github actions
171
+ ci-backends = [" py310" , " tests" , " backends" ]
172
+ tests-backends = [" py310" , " tests" , " backends" , " cuda-backends" ]
142
173
143
174
# pytest
144
175
@@ -195,6 +226,8 @@ reportAny = false
195
226
reportExplicitAny = false
196
227
# data-apis/array-api-strict#6
197
228
reportUnknownMemberType = false
229
+ # no array-api-compat type stubs
230
+ reportUnknownVariableType = false
198
231
199
232
200
233
# Ruff
@@ -236,6 +269,7 @@ ignore = [
236
269
" PLR09" , # Too many <...>
237
270
" PLR2004" , # Magic value used in comparison
238
271
" ISC001" , # Conflicts with formatter
272
+ " N801" , # Class name should use CapWords convention
239
273
" N802" , # Function name should be lowercase
240
274
" N806" , # Variable in function should be lowercase
241
275
]
@@ -271,6 +305,7 @@ checks = [
271
305
" ES01" ,
272
306
]
273
307
exclude = [ # don't report on objects that match any of these regex
308
+ ' .*test_at.*' ,
274
309
' .*test_funcs.*' ,
275
310
' .*test_utils.*' ,
276
311
' .*test_version.*' ,
0 commit comments