@@ -61,42 +61,42 @@ mypy = ">=1.16.1"
6161basedpyright = " >=1.29.4"
6262numpydoc = " >=1.8.0,<2"
6363# import dependencies for mypy:
64- array-api-strict = " >=2.3.1"
64+ array-api-strict = " >=2.3.1,<2.4 "
6565numpy = " >=2.1.3"
6666pytest = " >=8.4.0"
6767hypothesis = " >=6.131.28"
68- dask-core = " >=2025.5.1" # No distributed, tornado, etc.
68+ dask-core = " >=2025.5.1" # No distributed, tornado, etc.
6969# NOTE: don't add cupy, jax, pytorch, or sparse here,
7070# as they slow down mypy and are not portable across target OSs
7171
7272[tool .pixi .feature .lint .tasks ]
73- pre-commit-install = { cmd = " pre-commit install" , description = " Install pre-commit" }
74- pre-commit = { cmd = " pre-commit run --all-files" , description = " Run pre-commit" }
75- mypy = { cmd = " mypy" , description = " Type check with mypy" }
76- pylint = { cmd = " pylint array_api_extra" , cwd = " src" , description = " Lint using pylint" }
77- pyright = { cmd = " basedpyright" , description = " Type check with basedpyright" }
78- lint = { depends-on = [" pre-commit" , " pylint" , " mypy" , " pyright" ] , description = " Run pre-commit, pylint, mypy, and pyright" }
73+ pre-commit-install = { cmd = " pre-commit install" , description = " Install pre-commit" }
74+ pre-commit = { cmd = " pre-commit run --all-files" , description = " Run pre-commit" }
75+ mypy = { cmd = " mypy" , description = " Type check with mypy" }
76+ pylint = { cmd = " pylint array_api_extra" , cwd = " src" , description = " Lint using pylint" }
77+ pyright = { cmd = " basedpyright" , description = " Type check with basedpyright" }
78+ lint = { depends-on = [" pre-commit" , " pylint" , " mypy" , " pyright" ], description = " Run pre-commit, pylint, mypy, and pyright" }
7979
8080[tool .pixi .feature .tests .dependencies ]
8181pytest = " >=8.4.0"
8282pytest-cov = " >=6.2.1"
8383hypothesis = " >=6.131.28"
84- array-api-strict = " >=2.3.1"
84+ array-api-strict = " >=2.3.1,<2.4 "
8585numpy = " >=1.22.0"
8686
8787[tool .pixi .feature .tests .tasks ]
88- tests = { cmd = " pytest -v" , description = " Run tests" }
89- tests-cov = { cmd = " pytest -v -ra --cov --cov-report=xml --cov-report=term --durations=20" , description = " Run tests with coverage" }
88+ tests = { cmd = " pytest -v" , description = " Run tests" }
89+ tests-cov = { cmd = " pytest -v -ra --cov --cov-report=xml --cov-report=term --durations=20" , description = " Run tests with coverage" }
9090
91- clean-vendor-compat = { cmd = " rm -rf vendor_tests/array_api_compat" , description = " Delete the existing vendored version of array-api-compat" }
92- clean-vendor-extra = { cmd = " rm -rf vendor_tests/array_api_extra" , description = " Delete the existing vendored version of array-api-extra" }
93- copy-vendor-compat = { cmd = " cp -r $(python -c 'import site; print(site.getsitepackages()[0])')/array_api_compat vendor_tests/" , depends-on = [" clean-vendor-compat" ] , description = " Vendor a clean copy of array-api-compat" }
94- copy-vendor-extra = { cmd = " cp -r src/array_api_extra vendor_tests/" , depends-on = [" clean-vendor-extra" ] , description = " Vendor a clean copy of array-api-extra" }
95- tests-vendor = { cmd = " pytest -v vendor_tests" , depends-on = [" copy-vendor-compat" , " copy-vendor-extra" ] , description = " Check that array-api-extra and array-api-compat can be vendored together" }
91+ clean-vendor-compat = { cmd = " rm -rf vendor_tests/array_api_compat" , description = " Delete the existing vendored version of array-api-compat" }
92+ clean-vendor-extra = { cmd = " rm -rf vendor_tests/array_api_extra" , description = " Delete the existing vendored version of array-api-extra" }
93+ copy-vendor-compat = { cmd = " cp -r $(python -c 'import site; print(site.getsitepackages()[0])')/array_api_compat vendor_tests/" , depends-on = [" clean-vendor-compat" ], description = " Vendor a clean copy of array-api-compat" }
94+ copy-vendor-extra = { cmd = " cp -r src/array_api_extra vendor_tests/" , depends-on = [" clean-vendor-extra" ], description = " Vendor a clean copy of array-api-extra" }
95+ tests-vendor = { cmd = " pytest -v vendor_tests" , depends-on = [" copy-vendor-compat" , " copy-vendor-extra" ], description = " Check that array-api-extra and array-api-compat can be vendored together" }
9696
97- tests-ci = { depends-on = [" tests-cov" , " tests-vendor" ] , description = " Run tests with coverage and vendor tests" }
98- coverage = { cmd = " coverage html" , depends-on = [" tests-cov" ], description = " Generate test coverage html report" }
99- open-coverage = { cmd = " open htmlcov/index.html" , depends-on = [" coverage" ] , description = " Open test coverage report" }
97+ tests-ci = { depends-on = [" tests-cov" , " tests-vendor" ], description = " Run tests with coverage and vendor tests" }
98+ coverage = { cmd = " coverage html" , depends-on = [" tests-cov" ], description = " Generate test coverage html report" }
99+ open-coverage = { cmd = " open htmlcov/index.html" , depends-on = [" coverage" ], description = " Open test coverage report" }
100100
101101[tool .pixi .feature .docs .dependencies ]
102102sphinx = " >=7.4.7"
@@ -105,20 +105,20 @@ myst-parser = ">=4.0.1"
105105sphinx-copybutton = " >=0.5.2"
106106sphinx-autodoc-typehints = " >=1.25.3"
107107# Needed to import parsed modules with autodoc
108- dask-core = " >=2025.5.1" # No distributed, tornado, etc.
108+ dask-core = " >=2025.5.1" # No distributed, tornado, etc.
109109pytest = " >=8.4.0"
110110typing-extensions = " >=4.14.0"
111111numpy = " >=2.1.3"
112112
113113[tool .pixi .feature .docs .tasks ]
114- docs = { cmd = " sphinx-build -E -W . build/" , cwd = " docs" , description = " Build docs" }
115- open-docs = { cmd = " open build/index.html" , cwd = " docs" , depends-on = [" docs" ] , description = " Open the generated docs" }
114+ docs = { cmd = " sphinx-build -E -W . build/" , cwd = " docs" , description = " Build docs" }
115+ open-docs = { cmd = " open build/index.html" , cwd = " docs" , depends-on = [" docs" ], description = " Open the generated docs" }
116116
117117[tool .pixi .feature .dev .dependencies ]
118118ipython = " >=7.33.0"
119119
120120[tool .pixi .feature .dev .tasks ]
121- ipython = { cmd = " ipython" , description = " Launch ipython" }
121+ ipython = { cmd = " ipython" , description = " Launch ipython" }
122122
123123[tool .pixi .feature .py310 .dependencies ]
124124python = " ~=3.10.0"
@@ -135,7 +135,7 @@ numpy = "=1.22.0"
135135# Note: JAX and PyTorch will install CPU variants.
136136[tool .pixi .feature .backends .dependencies ]
137137pytorch = " >=2.7.0"
138- dask-core = " >=2025.5.1" # No distributed, tornado, etc.
138+ dask-core = " >=2025.5.1" # No distributed, tornado, etc.
139139sparse = " >=0.17.0"
140140
141141[tool .pixi .feature .backends .target .linux-64 .dependencies ]
@@ -184,7 +184,7 @@ python-freethreading = "~=3.13.0"
184184pytest-run-parallel = " >=0.4.4"
185185numpy = " >=2.3.0"
186186# pytorch = "*" # Not available on Python 3.13t yet
187- dask-core = " >=2025.5.1" # No distributed, tornado, etc.
187+ dask-core = " >=2025.5.1" # No distributed, tornado, etc.
188188# sparse = "*" # numba not available on Python 3.13t yet
189189# jax = "*" # ml_dtypes not available on Python 3.13t yet
190190
@@ -245,7 +245,7 @@ ignore_missing_imports = true
245245
246246[[tool .mypy .overrides ]]
247247module = [" tests/*" ]
248- disable_error_code = [" no-untyped-def" ] # test(...) without -> None
248+ disable_error_code = [" no-untyped-def" ] # test(...) without -> None
249249
250250# pyright
251251
0 commit comments