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 = " lucas.colley8@gmail.com" },
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,50 +26,84 @@ classifiers = [
2426 " Programming Language :: Python :: Free Threading :: 3 - Stable" ,
2527 " Typing :: Typed" ,
2628]
27- dynamic = [" version" ]
28- dependencies = [" array-api-compat>=1.12.0,<2" ]
29+ dependencies = [" 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"
5793pylint = " >=4.0.4"
5894mypy = " >=1.19.1"
59- basedpyright = " >=1.36 .1"
95+ basedpyright = " >=1.37 .1"
6096numpydoc = " >=1.10.0,<2"
6197# import dependencies for mypy:
6298array-api-strict = " >=2.4.1,<2.5"
6399numpy = " >=2.1.3"
64- hypothesis = " >=6.148.7 "
100+ hypothesis = " >=6.148.8 "
65101dask-core = " >=2025.12.0" # No distributed, tornado, etc.
66102dprint = " >=0.50.0,<0.51"
67103lefthook = " >=2.0.13,<3"
68- ruff = " >=0.14.10 ,<0.15"
69- typos = " >=1.40 .0,<2"
70- actionlint = " >=1.7.9 ,<2"
104+ ruff = " >=0.14.11 ,<0.15"
105+ typos = " >=1.42 .0,<2"
106+ actionlint = " >=1.7.10 ,<2"
71107blacken-docs = " >=1.20.0,<2"
72108pytest = " >=9.0.2,<10"
73109validate-pyproject = " >=0.24.1,<0.25"
@@ -94,7 +130,7 @@ lint = { cmd = "lefthook run pre-commit --all-files --force", description = "Run
94130[tool .pixi .feature .tests .dependencies ]
95131pytest = " >=9.0.2"
96132pytest-cov = " >=7.0.0"
97- hypothesis = " >=6.148.7 "
133+ hypothesis = " >=6.148.8 "
98134array-api-strict = " >=2.4.1,<2.5"
99135numpy = " >=1.22.0"
100136scipy = " >=1.15.2,<2"
@@ -198,28 +234,6 @@ dask-core = ">=2025.12.0" # No distributed, tornado, etc.
198234# sparse = "*" # numba not available on Python 3.13t yet
199235# jax = "*" # ml_dtypes not available on Python 3.13t yet
200236
201- [tool .pixi .environments ]
202- default = { features = [" py313" ], solve-group = " py313" }
203- lint = { features = [" py313" , " lint" ], solve-group = " py313" }
204- docs = { features = [" py313" , " docs" ], solve-group = " py313" }
205- tests = { features = [" py313" , " tests" ], solve-group = " py313" }
206- tests-py313 = { features = [" py313" , " tests" ], solve-group = " py313" } # alias of tests
207-
208- # Some backends may pin numpy; use separate solve-group
209- dev = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" ], solve-group = " backends" }
210- tests-backends = { features = [" py313" , " tests" , " backends" ], solve-group = " backends" }
211- tests-backends-py311 = { features = [" py311" , " tests" , " backends" ] }
212-
213- # CUDA not available on free github actions and on some developers' PCs
214- dev-cuda = { features = [" py313" , " lint" , " tests" , " docs" , " dev" , " backends" , " cuda-backends" ], solve-group = " cuda" }
215- tests-cuda = { features = [" py313" , " tests" , " backends" , " cuda-backends" ], solve-group = " cuda" }
216- tests-cuda-py311 = { features = [" py311" , " tests" , " backends" , " cuda-backends" ] }
217-
218- # Ungrouped environments
219- tests-numpy1 = [" py311" , " tests" , " numpy1" ]
220- tests-py311 = [" py311" , " tests" ]
221- tests-nogil = [" nogil" , " tests" ]
222-
223237# pytest
224238
225239[tool .pytest .ini_options ]
0 commit comments