@@ -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