Skip to content

Commit 03b529f

Browse files
committed
Merge branch 'main' into lazy-class-methods
2 parents 03da771 + 755fea6 commit 03b529f

13 files changed

Lines changed: 4066 additions & 3813 deletions

File tree

.github/workflows/cd.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
dist:
1818
runs-on: ubuntu-latest
1919
steps:
20-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
20+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2121
with:
2222
fetch-depth: 0
2323

@@ -40,7 +40,7 @@ jobs:
4040
path: dist
4141

4242
- name: Generate artifact attestation for sdist and wheel
43-
uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0
43+
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
4444
with:
4545
subject-path: "dist/*"
4646

.github/workflows/ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ jobs:
2424
name: Lint
2525
runs-on: ubuntu-latest
2626
steps:
27-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
27+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2828
with:
2929
fetch-depth: 0
3030

31-
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
31+
- uses: prefix-dev/setup-pixi@a0af7a228712d6121d37aba47adf55c1332c9c2e # v0.9.4
3232
with:
33-
pixi-version: v0.62.0
33+
pixi-version: v0.62.2
3434
cache: true
3535
environments: lint
3636

@@ -45,21 +45,21 @@ jobs:
4545
matrix:
4646
environment:
4747
- tests-py311
48-
- tests-py313
48+
- tests-py314
4949
- tests-numpy1
5050
- tests-backends
5151
- tests-backends-py311
5252
- tests-nogil
5353
runs-on: [ubuntu-latest]
5454

5555
steps:
56-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
56+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5757
with:
5858
fetch-depth: 0
5959

60-
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
60+
- uses: prefix-dev/setup-pixi@a0af7a228712d6121d37aba47adf55c1332c9c2e # v0.9.4
6161
with:
62-
pixi-version: v0.62.0
62+
pixi-version: v0.62.2
6363
cache: true
6464
environments: ${{ matrix.environment }}
6565

.github/workflows/docs-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ jobs:
99
docs-build:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
12+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1313

14-
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
14+
- uses: prefix-dev/setup-pixi@a0af7a228712d6121d37aba47adf55c1332c9c2e # v0.9.4
1515
with:
1616
pixi-version: v0.62.0
1717
cache: true

.github/workflows/docs-deploy.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
environment:
1818
name: docs-deploy
1919
steps:
20-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
20+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2121

2222
- name: Download Artifact
23-
uses: dawidd6/action-download-artifact@0bd50d53a6d7fb5cb921e607957e9cc12b4ce392 # v12
23+
uses: dawidd6/action-download-artifact@5c98f0b039f36ef966fdb7dfa9779262785ecb05 # v14
2424
with:
2525
workflow: docs-build.yml
2626
name: docs-build
@@ -30,7 +30,7 @@ jobs:
3030
# See
3131
# https://github.com/JamesIves/github-pages-deploy-action/tree/dev#using-an-ssh-deploy-key-
3232
- name: Deploy
33-
uses: JamesIves/github-pages-deploy-action@9d877eea73427180ae43cf98e8914934fe157a1a # v4.7.6
33+
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4.8.0
3434
with:
3535
folder: docs/build/
3636
ssh-key: ${{ secrets.DEPLOY_KEY }}

RELEASING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
3. Push your changes
44
4. Cut a release via the GitHub GUI
55
5. Update the version to `{next micro version}.dev0` in `pyproject.toml`, `meson.build`, and `src/array_api_extra/__init__.py`
6-
6. `pixi clean cache --pypi; pixi update; pixi install`
6+
6. `pixi lock`
77
7. Push your changes
88
8. Merge the automated PR to conda-forge/array-api-extra-feedstock

docs/contributing.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Thanks to [all contributors](contributors.md) so far!
2020
- Import your function to `src/array_api_extra/__init__.py` and add it to
2121
`__all__` there.
2222
- Add a test class for your function in `tests/test_funcs.py`.
23+
- Ensure that `lazy_xp_function` is called on the function if lazy backends
24+
are supposed to be tested.
2325
- Add your function to `docs/api-reference.md`.
2426
- [Make a PR!](https://github.com/data-apis/array-api-extra/pulls)
2527

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
project(
22
'array-api-extra',
3-
version: '0.10.0.dev0'
3+
version: '0.10.1.dev0'
44
)
55

66
py = import('python').find_installation()

pixi.lock

Lines changed: 3616 additions & 3746 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "mesonpy"
44

55
[project]
66
name = "array-api-extra"
7-
version = "0.10.0.dev0"
7+
version = "0.10.1.dev0"
88
authors = [
99
{ name = "Lucas Colley", email = "lucas.colley8@gmail.com" },
1010
# { name = "Open Source Contributors" }, # https://github.com/pypi/warehouse/issues/14813
@@ -23,6 +23,7 @@ classifiers = [
2323
"Programming Language :: Python :: 3.11",
2424
"Programming Language :: Python :: 3.12",
2525
"Programming Language :: Python :: 3.13",
26+
"Programming Language :: Python :: 3.14",
2627
"Programming Language :: Python :: Free Threading :: 3 - Stable",
2728
"Typing :: Typed",
2829
]
@@ -56,20 +57,20 @@ array-api-compat = "*"
5657
### workspace environments ###
5758

5859
[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
60+
default = { features = ["py314"], solve-group = "py314" }
61+
lint = { features = ["py314", "lint"], solve-group = "py314" }
62+
docs = { features = ["py314", "docs"], solve-group = "py314" }
63+
tests = { features = ["py314", "tests"], solve-group = "py314" }
64+
tests-py314 = { features = ["py314", "tests"], solve-group = "py314" } # alias of tests
6465

6566
# 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" }
67+
dev = { features = ["py314", "lint", "tests", "docs", "dev", "backends"], solve-group = "backends" }
68+
tests-backends = { features = ["py314", "tests", "backends"], solve-group = "backends" }
6869
tests-backends-py311 = { features = ["py311", "tests", "backends"] }
6970

7071
# 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" }
72+
dev-cuda = { features = ["py314", "lint", "tests", "docs", "dev", "backends", "cuda-backends"], solve-group = "cuda" }
73+
tests-cuda = { features = ["py314", "tests", "backends", "cuda-backends"], solve-group = "cuda" }
7374
tests-cuda-py311 = { features = ["py311", "tests", "backends", "cuda-backends"] }
7475

7576
# Ungrouped environments
@@ -92,21 +93,21 @@ array-api-extra.path = "."
9293
typing-extensions = ">=4.15.0"
9394
pylint = ">=4.0.4"
9495
mypy = ">=1.19.1"
95-
basedpyright = ">=1.37.1"
96+
basedpyright = ">=1.38.0"
9697
numpydoc = ">=1.10.0,<2"
9798
# import dependencies for mypy:
9899
array-api-strict = ">=2.4.1,<2.5"
99100
numpy = ">=2.1.3"
100-
hypothesis = ">=6.148.8"
101-
dask-core = ">=2025.12.0" # No distributed, tornado, etc.
101+
hypothesis = ">=6.151.2"
102+
dask-core = ">=2026.1.2" # No distributed, tornado, etc.
102103
dprint = ">=0.50.0,<0.51"
103-
lefthook = ">=2.0.13,<3"
104-
ruff = ">=0.14.11,<0.15"
105-
typos = ">=1.42.0,<2"
104+
lefthook = ">=2.1.1,<3"
105+
ruff = ">=0.15.1,<0.16"
106+
typos = ">=1.43.4,<2"
106107
actionlint = ">=1.7.10,<2"
107108
blacken-docs = ">=1.20.0,<2"
108109
pytest = ">=9.0.2,<10"
109-
validate-pyproject = ">=0.24.1,<0.25"
110+
validate-pyproject = ">=0.25,<0.26"
110111
# NOTE: don't add cupy, jax, pytorch, or sparse here,
111112
# as they slow down mypy and are not portable across target OSs
112113

@@ -130,7 +131,7 @@ lint = { cmd = "lefthook run pre-commit --all-files --force", description = "Run
130131
[tool.pixi.feature.tests.dependencies]
131132
pytest = ">=9.0.2"
132133
pytest-cov = ">=7.0.0"
133-
hypothesis = ">=6.148.8"
134+
hypothesis = ">=6.151.2"
134135
array-api-strict = ">=2.4.1,<2.5"
135136
numpy = ">=1.22.0"
136137
scipy = ">=1.15.2,<2"
@@ -152,11 +153,11 @@ open-coverage = { cmd = "open htmlcov/index.html", depends-on = ["coverage"], de
152153
[tool.pixi.feature.docs.dependencies]
153154
sphinx = ">=7.4.7"
154155
furo = ">=2024.8.6"
155-
myst-parser = ">=4.0.1"
156+
myst-parser = ">=5.0.0"
156157
sphinx-copybutton = ">=0.5.2"
157158
sphinx-autodoc-typehints = ">=1.25.3"
158159
# Needed to import parsed modules with autodoc
159-
dask-core = ">=2025.12.0" # No distributed, tornado, etc.
160+
dask-core = ">=2026.1.2" # No distributed, tornado, etc.
160161
pytest = ">=9.0.2"
161162
typing-extensions = ">=4.15.0"
162163
numpy = ">=2.1.3"
@@ -174,8 +175,8 @@ ipython = { cmd = "ipython", description = "Launch ipython" }
174175
[tool.pixi.feature.py311.dependencies]
175176
python = "~=3.11.0"
176177

177-
[tool.pixi.feature.py313.dependencies]
178-
python = "~=3.13.0"
178+
[tool.pixi.feature.py314.dependencies]
179+
python = "~=3.14.0"
179180

180181
[tool.pixi.feature.numpy1.dependencies]
181182
# Oldest NumPy version supported by scikit-learn.
@@ -185,8 +186,8 @@ numpy = "=1.24.1"
185186
# Backends that can run on CPU-only hosts
186187
# Note: JAX and PyTorch will install CPU variants.
187188
[tool.pixi.feature.backends.dependencies]
188-
pytorch = ">=2.9.1"
189-
dask-core = ">=2025.12.0" # No distributed, tornado, etc.
189+
pytorch = ">=2.10.0"
190+
dask-core = ">=2026.1.2" # No distributed, tornado, etc.
190191
sparse = ">=0.17.0"
191192

192193
[tool.pixi.feature.backends.target.linux-64.dependencies]
@@ -213,7 +214,7 @@ system-requirements = { cuda = "12" }
213214
[tool.pixi.feature.cuda-backends.target.linux.dependencies]
214215
cupy = ">=13.6.0"
215216
jaxlib = { version = ">=0.7.2", build = "cuda12*" }
216-
pytorch = { version = ">=2.9.1", build = "cuda12*" }
217+
pytorch = { version = ">=2.10.0", build = "cuda12*" }
217218

218219
[tool.pixi.feature.cuda-backends.target.osx.dependencies]
219220
# cupy = "*" # unavailable
@@ -223,14 +224,14 @@ pytorch = { version = ">=2.9.1", build = "cuda12*" }
223224
[tool.pixi.feature.cuda-backends.target.win.dependencies]
224225
cupy = ">=13.6.0"
225226
# jaxlib = { version = "*", build = "cuda12*" } # unavailable
226-
pytorch = { version = ">=2.9.1", build = "cuda12*" }
227+
pytorch = { version = ">=2.10.0", build = "cuda12*" }
227228

228229
[tool.pixi.feature.nogil.dependencies]
229230
python-freethreading = "~=3.13.0"
230-
pytest-run-parallel = ">=0.8.1"
231+
pytest-run-parallel = ">=0.8.2"
231232
numpy = ">=2.3.5"
232233
# pytorch = "*" # Not available on Python 3.13t yet
233-
dask-core = ">=2025.12.0" # No distributed, tornado, etc.
234+
dask-core = ">=2026.1.2" # No distributed, tornado, etc.
234235
# sparse = "*" # numba not available on Python 3.13t yet
235236
# jax = "*" # ml_dtypes not available on Python 3.13t yet
236237

src/array_api_extra/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
one_hot,
1313
pad,
1414
partition,
15+
searchsorted,
1516
setdiff1d,
1617
sinc,
1718
union1d,
@@ -26,7 +27,7 @@
2627
)
2728
from ._lib._lazy import lazy_apply
2829

29-
__version__ = "0.10.0.dev0"
30+
__version__ = "0.10.1.dev0"
3031

3132
# pylint: disable=duplicate-code
3233
__all__ = [
@@ -49,6 +50,7 @@
4950
"one_hot",
5051
"pad",
5152
"partition",
53+
"searchsorted",
5254
"setdiff1d",
5355
"sinc",
5456
"union1d",

0 commit comments

Comments
 (0)