11[build-system ]
2- requires = [" hatchling " ]
3- build-backend = " hatchling.build "
2+ requires = [" meson-python " ]
3+ build-backend = " mesonpy "
44
55[project ]
66name = " array-api-extra"
7+ version = " 0.10.0.dev0"
78authors = [
89 {
name =
" Lucas Colley" ,
email =
" [email protected] " },
910 # { name = "Open Source Contributors" }, # https://github.com/pypi/warehouse/issues/14813
1011]
1112description = " Extra array functions built on top of the array API standard."
1213readme = " README.md"
13- license.file = " LICENSE"
14+ license = " MIT"
15+ license-files = [" LICENSE" ]
1416requires-python = " >=3.11"
1517classifiers = [
1618 " Intended Audience :: Developers" ,
@@ -24,33 +26,67 @@ classifiers = [
2426 " Programming Language :: Python :: Free Threading :: 3 - Stable" ,
2527 " Typing :: Typed" ,
2628]
27- dynamic = [" version" ]
2829dependencies = [" array-api-compat>=1.13.0,<2" ]
2930
3031[project .urls ]
3132Homepage = " https://github.com/data-apis/array-api-extra"
3233"Bug Tracker" = " https://github.com/data-apis/array-api-extra/issues"
3334Changelog = " https://github.com/data-apis/array-api-extra/releases"
3435
35- # Hatch
36-
37- [tool .hatch ]
38- version.path = " src/array_api_extra/__init__.py"
39-
40- [tool .hatch .build .targets .sdist ]
41- exclude = [" codecov.yml" , " pixi.lock" , " RELEASING.md" , " renovate.json" ]
42-
43- # Pixi
36+ # Pixi
4437
4538[tool .pixi .workspace ]
4639channels = [" https://prefix.dev/conda-forge" ]
4740platforms = [" linux-64" , " osx-64" , " osx-arm64" , " win-64" ]
41+ preview = [" pixi-build" ]
42+
43+ # ## array-api-extra package definition ###
44+
45+ [tool .pixi .package .build .backend ]
46+ name = " pixi-build-python"
47+ version = " *"
48+
49+ [tool .pixi .package .host-dependencies ]
50+ meson-python = " *"
51+ uv = " *" # interfaces with meson-python instead of pip
52+
53+ [tool .pixi .package .run-dependencies ]
54+ array-api-compat = " *"
55+
56+ # ## workspace environments ###
57+
58+ [tool .pixi .environments ]
59+ default = { features = [" py313" ], solve-group = " py313" }
60+ lint = { features = [" py313" , " lint" ], solve-group = " py313" }
61+ docs = { features = [" py313" , " docs" ], solve-group = " py313" }
62+ tests = { features = [" py313" , " tests" ], solve-group = " py313" }
63+ tests-py313 = { features = [" py313" , " tests" ], solve-group = " py313" } # alias of tests
64+
65+ # Some backends may pin numpy; use separate solve-group
66+ dev = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" ], solve-group = " backends" }
67+ tests-backends = { features = [" py313" , " tests" , " backends" ], solve-group = " backends" }
68+ tests-backends-py311 = { features = [" py311" , " tests" , " backends" ] }
69+
70+ # CUDA not available on free github actions and on some developers' PCs
71+ dev-cuda = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" , " cuda-backends" ], solve-group = " cuda" }
72+ tests-cuda = { features = [" py313" , " tests" , " backends" , " cuda-backends" ], solve-group = " cuda" }
73+ tests-cuda-py311 = { features = [" py311" , " tests" , " backends" , " cuda-backends" ] }
74+
75+ # Ungrouped environments
76+ tests-numpy1 = [" py311" , " tests" , " numpy1" ]
77+ tests-py311 = [" py311" , " tests" ]
78+ tests-nogil = [" nogil" , " tests" ]
79+
80+ # ## default feature definition ###
81+
82+ [tool .pixi .dev ]
83+ # this pulls in array-api-extra's host and run dependencies
84+ array-api-extra.path = " ."
4885
4986[tool .pixi .dependencies ]
50- array-api-compat = " >=1.12.0,<2 "
87+ array-api-extra.path = " . "
5188
52- [tool .pixi .pypi-dependencies ]
53- array-api-extra = { path = " ." , editable = true }
89+ # ## non-default feature definitions ###
5490
5591[tool .pixi .feature .lint .dependencies ]
5692typing-extensions = " >=4.15.0"
@@ -197,28 +233,6 @@ dask-core = ">=2025.12.0" # No distributed, tornado, etc.
197233# sparse = "*" # numba not available on Python 3.13t yet
198234# jax = "*" # ml_dtypes not available on Python 3.13t yet
199235
200- [tool .pixi .environments ]
201- default = { features = [" py313" ], solve-group = " py313" }
202- lint = { features = [" py313" , " lint" ], solve-group = " py313" }
203- docs = { features = [" py313" , " docs" ], solve-group = " py313" }
204- tests = { features = [" py313" , " tests" ], solve-group = " py313" }
205- tests-py313 = { features = [" py313" , " tests" ], solve-group = " py313" } # alias of tests
206-
207- # Some backends may pin numpy; use separate solve-group
208- dev = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" ], solve-group = " backends" }
209- tests-backends = { features = [" py313" , " tests" , " backends" ], solve-group = " backends" }
210- tests-backends-py311 = { features = [" py311" , " tests" , " backends" ] }
211-
212- # CUDA not available on free github actions and on some developers' PCs
213- dev-cuda = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" , " cuda-backends" ], solve-group = " cuda" }
214- tests-cuda = { features = [" py313" , " tests" , " backends" , " cuda-backends" ], solve-group = " cuda" }
215- tests-cuda-py311 = { features = [" py311" , " tests" , " backends" , " cuda-backends" ] }
216-
217- # Ungrouped environments
218- tests-numpy1 = [" py311" , " tests" , " numpy1" ]
219- tests-py311 = [" py311" , " tests" ]
220- tests-nogil = [" nogil" , " tests" ]
221-
222236# pytest
223237
224238[tool .pytest .ini_options ]
0 commit comments