array-api-extra 0.10.1__tar.gz → 0.10.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/.all-contributorsrc +23 -1
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/CONTRIBUTORS.md +3 -1
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/PKG-INFO +8 -4
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/README.md +6 -2
- array_api_extra-0.10.3/docs/_templates/autosummary/class.rst +5 -0
- array_api_extra-0.10.3/docs/_templates/autosummary/function.rst +5 -0
- array_api_extra-0.10.3/docs/_templates/testing-function.rst +5 -0
- array_api_extra-0.10.1/docs/api-reference.md → array_api_extra-0.10.3/docs/api-assorted.md +2 -1
- array_api_extra-0.10.3/docs/api-lazy.md +26 -0
- array_api_extra-0.10.3/docs/api-testing.md +19 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/docs/conf.py +2 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/docs/index.md +5 -2
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/lefthook.yml +5 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/meson.build +1 -1
- array_api_extra-0.10.3/pixi.toml +219 -0
- array_api_extra-0.10.3/pyproject.toml +225 -0
- array_api_extra-0.10.3/run_deps_tests/test_run_deps.py +15 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/__init__.py +7 -3
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_delegation.py +157 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_at.py +21 -6
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_backends.py +2 -1
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_funcs.py +59 -120
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_lazy.py +4 -4
- array_api_extra-0.10.3/src/array_api_extra/_lib/_testing.py +37 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/_helpers.py +2 -34
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/testing.py +501 -16
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_at.py +11 -12
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_funcs.py +246 -158
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_helpers.py +13 -14
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_lazy.py +26 -26
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_testing.py +134 -65
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/typos.toml +1 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/vendor_tests/_array_api_compat_vendor.py +5 -2
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/vendor_tests/test_vendor.py +15 -5
- array_api_extra-0.10.1/docs/api-lazy.md +0 -15
- array_api_extra-0.10.1/pyproject.toml +0 -379
- array_api_extra-0.10.1/src/array_api_extra/_lib/_testing.py +0 -304
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/.dprint.jsonc +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/.editorconfig +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/LICENSE +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/docs/contributing.md +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/docs/contributors.md +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/__init__.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/__init__.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/_compat.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/_compat.pyi +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/_typing.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/_lib/_utils/_typing.pyi +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/src/array_api_extra/py.typed +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/__init__.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/conftest.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/meson.build +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/tests/test_version.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/vendor_tests/__init__.py +0 -0
- {array_api_extra-0.10.1 → array_api_extra-0.10.3}/vendor_tests/meson.build +0 -0
|
@@ -233,7 +233,8 @@
|
|
|
233
233
|
"profile": "https://github.com/NeilGirdhar",
|
|
234
234
|
"contributions": [
|
|
235
235
|
"code",
|
|
236
|
-
"test"
|
|
236
|
+
"test",
|
|
237
|
+
"review"
|
|
237
238
|
]
|
|
238
239
|
},
|
|
239
240
|
{
|
|
@@ -319,6 +320,27 @@
|
|
|
319
320
|
"ideas",
|
|
320
321
|
"test"
|
|
321
322
|
]
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"login": "prady0t",
|
|
326
|
+
"name": "Pradyot Ranjan",
|
|
327
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/99216956?v=4",
|
|
328
|
+
"profile": "https://github.com/prady0t",
|
|
329
|
+
"contributions": [
|
|
330
|
+
"code",
|
|
331
|
+
"doc",
|
|
332
|
+
"ideas",
|
|
333
|
+
"test"
|
|
334
|
+
]
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"login": "lundybernard",
|
|
338
|
+
"name": "Lundy Bernard",
|
|
339
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/17297695?v=4",
|
|
340
|
+
"profile": "https://github.com/lundybernard",
|
|
341
|
+
"contributions": [
|
|
342
|
+
"review"
|
|
343
|
+
]
|
|
322
344
|
}
|
|
323
345
|
]
|
|
324
346
|
}
|
|
@@ -33,7 +33,7 @@ This project exists thanks to the following contributors
|
|
|
33
33
|
<td align="center" valign="top" width="14.28%"><a href="http://www.vanderplas.com/"><img src="https://avatars.githubusercontent.com/u/781659?v=4?s=100" width="100px;" alt="Jake Vanderplas"/><br /><sub><b>Jake Vanderplas</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakevdp" title="Reviewed Pull Requests">👀</a></td>
|
|
34
34
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KotlinIsland"><img src="https://avatars.githubusercontent.com/u/65446343?v=4?s=100" width="100px;" alt="kotlinisland"/><br /><sub><b>kotlinisland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akotlinisland" title="Reviewed Pull Requests">👀</a></td>
|
|
35
35
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DetachHead"><img src="https://avatars.githubusercontent.com/u/57028336?v=4?s=100" width="100px;" alt="detachhead"/><br /><sub><b>detachhead</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Adetachhead" title="Reviewed Pull Requests">👀</a></td>
|
|
36
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a></td>
|
|
36
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3ANeilGirdhar" title="Reviewed Pull Requests">👀</a></td>
|
|
37
37
|
</tr>
|
|
38
38
|
<tr>
|
|
39
39
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lithomas1"><img src="https://avatars.githubusercontent.com/u/47963215?v=4?s=100" width="100px;" alt="Thomas Li"/><br /><sub><b>Thomas Li</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alithomas1" title="Bug reports">🐛</a> <a href="#tool-lithomas1" title="Tools">🔧</a></td>
|
|
@@ -46,6 +46,8 @@ This project exists thanks to the following contributors
|
|
|
46
46
|
</tr>
|
|
47
47
|
<tr>
|
|
48
48
|
<td align="center" valign="top" width="14.28%"><a href="http://steppi.github.io"><img src="https://avatars.githubusercontent.com/u/1953382?v=4?s=100" width="100px;" alt="Albert Steppi"/><br /><sub><b>Albert Steppi</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Code">💻</a> <a href="#ideas-steppi" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Tests">⚠️</a></td>
|
|
49
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/prady0t"><img src="https://avatars.githubusercontent.com/u/99216956?v=4?s=100" width="100px;" alt="Pradyot Ranjan"/><br /><sub><b>Pradyot Ranjan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Documentation">📖</a> <a href="#ideas-prady0t" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Tests">⚠️</a></td>
|
|
50
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lundybernard"><img src="https://avatars.githubusercontent.com/u/17297695?v=4?s=100" width="100px;" alt="Lundy Bernard"/><br /><sub><b>Lundy Bernard</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Alundybernard" title="Reviewed Pull Requests">👀</a></td>
|
|
49
51
|
</tr>
|
|
50
52
|
</tbody>
|
|
51
53
|
</table>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: array-api-extra
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.3
|
|
4
4
|
Summary: Extra array functions built on top of the array API standard.
|
|
5
5
|
Author-Email: Lucas Colley <lucas.colley8@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -20,7 +20,7 @@ Project-URL: Homepage, https://github.com/data-apis/array-api-extra
|
|
|
20
20
|
Project-URL: Bug Tracker, https://github.com/data-apis/array-api-extra/issues
|
|
21
21
|
Project-URL: Changelog, https://github.com/data-apis/array-api-extra/releases
|
|
22
22
|
Requires-Python: >=3.11
|
|
23
|
-
Requires-Dist: array-api-compat<2,>=1.
|
|
23
|
+
Requires-Dist: array-api-compat<2,>=1.14.0
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
|
|
26
26
|
# array-api-extra
|
|
@@ -61,8 +61,10 @@ Used by:
|
|
|
61
61
|
|
|
62
62
|
- [SciPy](https://github.com/scipy/scipy) — Fundamental algorithms for
|
|
63
63
|
scientific computing.
|
|
64
|
-
- [scikit-learn](https://github.com/scikit-learn/scikit-learn)
|
|
64
|
+
- [scikit-learn](https://github.com/scikit-learn/scikit-learn) — Machine
|
|
65
65
|
Learning in Python.
|
|
66
|
+
- [SysIdentPy](https://github.com/wilsonrljr/sysidentpy) — System Identification Using NARMAX Models.
|
|
67
|
+
- [GLASS](https://github.com/glass-dev/glass) — Generator for Large Scale Structure.
|
|
66
68
|
- *your library? Let us know!*
|
|
67
69
|
|
|
68
70
|
## Installation
|
|
@@ -113,7 +115,7 @@ This project exists thanks to the following contributors
|
|
|
113
115
|
<td align="center" valign="top" width="14.28%"><a href="http://www.vanderplas.com/"><img src="https://avatars.githubusercontent.com/u/781659?v=4?s=100" width="100px;" alt="Jake Vanderplas"/><br /><sub><b>Jake Vanderplas</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakevdp" title="Reviewed Pull Requests">👀</a></td>
|
|
114
116
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KotlinIsland"><img src="https://avatars.githubusercontent.com/u/65446343?v=4?s=100" width="100px;" alt="kotlinisland"/><br /><sub><b>kotlinisland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akotlinisland" title="Reviewed Pull Requests">👀</a></td>
|
|
115
117
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DetachHead"><img src="https://avatars.githubusercontent.com/u/57028336?v=4?s=100" width="100px;" alt="detachhead"/><br /><sub><b>detachhead</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Adetachhead" title="Reviewed Pull Requests">👀</a></td>
|
|
116
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a></td>
|
|
118
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3ANeilGirdhar" title="Reviewed Pull Requests">👀</a></td>
|
|
117
119
|
</tr>
|
|
118
120
|
<tr>
|
|
119
121
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lithomas1"><img src="https://avatars.githubusercontent.com/u/47963215?v=4?s=100" width="100px;" alt="Thomas Li"/><br /><sub><b>Thomas Li</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alithomas1" title="Bug reports">🐛</a> <a href="#tool-lithomas1" title="Tools">🔧</a></td>
|
|
@@ -126,6 +128,8 @@ This project exists thanks to the following contributors
|
|
|
126
128
|
</tr>
|
|
127
129
|
<tr>
|
|
128
130
|
<td align="center" valign="top" width="14.28%"><a href="http://steppi.github.io"><img src="https://avatars.githubusercontent.com/u/1953382?v=4?s=100" width="100px;" alt="Albert Steppi"/><br /><sub><b>Albert Steppi</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Code">💻</a> <a href="#ideas-steppi" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Tests">⚠️</a></td>
|
|
131
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/prady0t"><img src="https://avatars.githubusercontent.com/u/99216956?v=4?s=100" width="100px;" alt="Pradyot Ranjan"/><br /><sub><b>Pradyot Ranjan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Documentation">📖</a> <a href="#ideas-prady0t" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Tests">⚠️</a></td>
|
|
132
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lundybernard"><img src="https://avatars.githubusercontent.com/u/17297695?v=4?s=100" width="100px;" alt="Lundy Bernard"/><br /><sub><b>Lundy Bernard</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Alundybernard" title="Reviewed Pull Requests">👀</a></td>
|
|
129
133
|
</tr>
|
|
130
134
|
</tbody>
|
|
131
135
|
</table>
|
|
@@ -36,8 +36,10 @@ Used by:
|
|
|
36
36
|
|
|
37
37
|
- [SciPy](https://github.com/scipy/scipy) — Fundamental algorithms for
|
|
38
38
|
scientific computing.
|
|
39
|
-
- [scikit-learn](https://github.com/scikit-learn/scikit-learn)
|
|
39
|
+
- [scikit-learn](https://github.com/scikit-learn/scikit-learn) — Machine
|
|
40
40
|
Learning in Python.
|
|
41
|
+
- [SysIdentPy](https://github.com/wilsonrljr/sysidentpy) — System Identification Using NARMAX Models.
|
|
42
|
+
- [GLASS](https://github.com/glass-dev/glass) — Generator for Large Scale Structure.
|
|
41
43
|
- *your library? Let us know!*
|
|
42
44
|
|
|
43
45
|
## Installation
|
|
@@ -88,7 +90,7 @@ This project exists thanks to the following contributors
|
|
|
88
90
|
<td align="center" valign="top" width="14.28%"><a href="http://www.vanderplas.com/"><img src="https://avatars.githubusercontent.com/u/781659?v=4?s=100" width="100px;" alt="Jake Vanderplas"/><br /><sub><b>Jake Vanderplas</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakevdp" title="Reviewed Pull Requests">👀</a></td>
|
|
89
91
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KotlinIsland"><img src="https://avatars.githubusercontent.com/u/65446343?v=4?s=100" width="100px;" alt="kotlinisland"/><br /><sub><b>kotlinisland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akotlinisland" title="Reviewed Pull Requests">👀</a></td>
|
|
90
92
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DetachHead"><img src="https://avatars.githubusercontent.com/u/57028336?v=4?s=100" width="100px;" alt="detachhead"/><br /><sub><b>detachhead</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Adetachhead" title="Reviewed Pull Requests">👀</a></td>
|
|
91
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a></td>
|
|
93
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NeilGirdhar"><img src="https://avatars.githubusercontent.com/u/730137?v=4?s=100" width="100px;" alt="Neil Girdhar"/><br /><sub><b>Neil Girdhar</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=NeilGirdhar" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3ANeilGirdhar" title="Reviewed Pull Requests">👀</a></td>
|
|
92
94
|
</tr>
|
|
93
95
|
<tr>
|
|
94
96
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lithomas1"><img src="https://avatars.githubusercontent.com/u/47963215?v=4?s=100" width="100px;" alt="Thomas Li"/><br /><sub><b>Thomas Li</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alithomas1" title="Bug reports">🐛</a> <a href="#tool-lithomas1" title="Tools">🔧</a></td>
|
|
@@ -101,6 +103,8 @@ This project exists thanks to the following contributors
|
|
|
101
103
|
</tr>
|
|
102
104
|
<tr>
|
|
103
105
|
<td align="center" valign="top" width="14.28%"><a href="http://steppi.github.io"><img src="https://avatars.githubusercontent.com/u/1953382?v=4?s=100" width="100px;" alt="Albert Steppi"/><br /><sub><b>Albert Steppi</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Code">💻</a> <a href="#ideas-steppi" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=steppi" title="Tests">⚠️</a></td>
|
|
106
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/prady0t"><img src="https://avatars.githubusercontent.com/u/99216956?v=4?s=100" width="100px;" alt="Pradyot Ranjan"/><br /><sub><b>Pradyot Ranjan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Documentation">📖</a> <a href="#ideas-prady0t" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=prady0t" title="Tests">⚠️</a></td>
|
|
107
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lundybernard"><img src="https://avatars.githubusercontent.com/u/17297695?v=4?s=100" width="100px;" alt="Lundy Bernard"/><br /><sub><b>Lundy Bernard</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Alundybernard" title="Reviewed Pull Requests">👀</a></td>
|
|
104
108
|
</tr>
|
|
105
109
|
</tbody>
|
|
106
110
|
</table>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Tools for lazy backends
|
|
2
|
+
|
|
3
|
+
Additional functions with special behaviour for lazy backends,
|
|
4
|
+
e.g. Dask or JAX:
|
|
5
|
+
|
|
6
|
+
```{eval-rst}
|
|
7
|
+
.. currentmodule:: array_api_extra
|
|
8
|
+
.. autosummary::
|
|
9
|
+
:nosignatures:
|
|
10
|
+
:toctree: generated
|
|
11
|
+
|
|
12
|
+
lazy_apply
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Testing utilities:
|
|
16
|
+
|
|
17
|
+
```{eval-rst}
|
|
18
|
+
.. currentmodule:: array_api_extra
|
|
19
|
+
.. autosummary::
|
|
20
|
+
:nosignatures:
|
|
21
|
+
:template: testing-function.rst
|
|
22
|
+
:toctree: generated
|
|
23
|
+
|
|
24
|
+
testing.lazy_xp_function
|
|
25
|
+
testing.patch_lazy_xp_functions
|
|
26
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Testing utilities (`xpx.testing`)
|
|
2
|
+
|
|
3
|
+
These testing utilities are intended to help transition from using
|
|
4
|
+
{py:mod}`numpy.testing`.
|
|
5
|
+
|
|
6
|
+
```{eval-rst}
|
|
7
|
+
.. currentmodule:: array_api_extra.testing
|
|
8
|
+
.. autosummary::
|
|
9
|
+
:nosignatures:
|
|
10
|
+
:template: testing-function.rst
|
|
11
|
+
:toctree: generated
|
|
12
|
+
|
|
13
|
+
assert_close
|
|
14
|
+
assert_close_nulp
|
|
15
|
+
assert_equal
|
|
16
|
+
assert_less
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
See also utilities specific to testing lazy backends in {doc}`api-lazy`.
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
:maxdepth: 2
|
|
5
5
|
:hidden:
|
|
6
6
|
self
|
|
7
|
-
api-
|
|
7
|
+
api-assorted.md
|
|
8
|
+
api-testing.md
|
|
8
9
|
api-lazy.md
|
|
9
10
|
contributing.md
|
|
10
11
|
contributors.md
|
|
@@ -27,6 +28,8 @@ It is currently used by:
|
|
|
27
28
|
scientific computing.
|
|
28
29
|
- [scikit-learn](https://github.com/scikit-learn/scikit-learn) — Machine
|
|
29
30
|
Learning in Python.
|
|
31
|
+
- [SysIdentPy](https://github.com/wilsonrljr/sysidentpy) — System Identification Using NARMAX Models.
|
|
32
|
+
- [GLASS](https://github.com/glass-dev/glass) — Generator for Large Scale Structure.
|
|
30
33
|
- *your library? Let us know!*
|
|
31
34
|
|
|
32
35
|
(installation)=
|
|
@@ -114,7 +117,7 @@ def array_namespace(*xs, **kwargs):
|
|
|
114
117
|
See [an example of this in SciPy][scipy-vendor-example].
|
|
115
118
|
```
|
|
116
119
|
|
|
117
|
-
[scipy-vendor-example]: https://github.com/scipy/scipy/blob/main/scipy/
|
|
120
|
+
[scipy-vendor-example]: https://github.com/scipy/scipy/blob/main/scipy/_external/_array_api_compat_vendor.py
|
|
118
121
|
|
|
119
122
|
## Versioning
|
|
120
123
|
|
|
@@ -39,11 +39,16 @@ pre-commit:
|
|
|
39
39
|
- name: mypy
|
|
40
40
|
glob: "*.{py,pyi}"
|
|
41
41
|
run: pixi {run} mypy
|
|
42
|
+
- name: pyrefly
|
|
43
|
+
glob: "*.{py, pyi}"
|
|
44
|
+
run: pixi {run} pyrefly
|
|
42
45
|
- name: typos
|
|
43
46
|
stage_fixed: true
|
|
44
47
|
run: pixi {run} typos
|
|
45
48
|
- name: actionlint
|
|
46
49
|
run: pixi {run} actionlint
|
|
50
|
+
- name: zizmor
|
|
51
|
+
run: pixi {run} zizmor
|
|
47
52
|
- name: blacken-docs
|
|
48
53
|
glob: "*.md"
|
|
49
54
|
stage_fixed: true
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
[workspace]
|
|
2
|
+
channels = ["https://prefix.dev/conda-forge"]
|
|
3
|
+
platforms = ["linux-64", "osx-64", "osx-arm64", "win-64"]
|
|
4
|
+
preview = ["pixi-build"]
|
|
5
|
+
requires-pixi = ">=0.68.0"
|
|
6
|
+
|
|
7
|
+
### array-api-extra package definition ###
|
|
8
|
+
|
|
9
|
+
[package.build.backend]
|
|
10
|
+
name = "pixi-build-python"
|
|
11
|
+
version = "*"
|
|
12
|
+
|
|
13
|
+
[package.host-dependencies]
|
|
14
|
+
meson-python = "*"
|
|
15
|
+
uv = "*" # interfaces with meson-python instead of pip
|
|
16
|
+
|
|
17
|
+
[package.run-dependencies]
|
|
18
|
+
array-api-compat = "*"
|
|
19
|
+
|
|
20
|
+
### workspace environments ###
|
|
21
|
+
|
|
22
|
+
[environments]
|
|
23
|
+
default = { features = ["py314"], solve-group = "py314" }
|
|
24
|
+
lint = { features = ["py314", "lint"], solve-group = "py314" }
|
|
25
|
+
docs = { features = ["py314", "docs"], solve-group = "py314" }
|
|
26
|
+
tests = { features = ["py314", "tests"], solve-group = "py314" }
|
|
27
|
+
tests-py314 = { features = ["py314", "tests"], solve-group = "py314" } # alias of tests
|
|
28
|
+
tests-run-deps = { features = ["py314", "tests-run-deps"], solve-group = "py314" }
|
|
29
|
+
|
|
30
|
+
# Some backends may pin numpy; use separate solve-group
|
|
31
|
+
dev = { features = ["py314", "lint", "tests", "docs", "dev", "backends"], solve-group = "backends" }
|
|
32
|
+
tests-backends = { features = ["py314", "tests", "backends"], solve-group = "backends" }
|
|
33
|
+
tests-backends-py311 = { features = ["py311", "tests", "backends"] }
|
|
34
|
+
|
|
35
|
+
# CUDA not available on free github actions and on some developers' PCs
|
|
36
|
+
dev-cuda = { features = ["py314", "lint", "tests", "docs", "dev", "backends", "cuda-backends"], solve-group = "cuda" }
|
|
37
|
+
tests-cuda = { features = ["py314", "tests", "backends", "cuda-backends"], solve-group = "cuda" }
|
|
38
|
+
tests-cuda-py311 = { features = ["py311", "tests", "backends", "cuda-backends"] }
|
|
39
|
+
|
|
40
|
+
# Ungrouped environments
|
|
41
|
+
tests-numpy1 = ["py311", "tests", "numpy1"]
|
|
42
|
+
tests-py311 = ["py311", "tests"]
|
|
43
|
+
tests-nogil = ["nogil", "tests"]
|
|
44
|
+
|
|
45
|
+
### default feature definition ###
|
|
46
|
+
|
|
47
|
+
[dev]
|
|
48
|
+
# this pulls in array-api-extra's host and run dependencies
|
|
49
|
+
array-api-extra.path = "."
|
|
50
|
+
|
|
51
|
+
[dependencies]
|
|
52
|
+
array-api-extra.path = "."
|
|
53
|
+
|
|
54
|
+
### non-default feature definitions ###
|
|
55
|
+
|
|
56
|
+
[feature.lint.dependencies]
|
|
57
|
+
typing-extensions = ">=4.15.0"
|
|
58
|
+
pylint = ">=4.0.5"
|
|
59
|
+
mypy = ">=1.20.2"
|
|
60
|
+
basedpyright = ">=1.39.5"
|
|
61
|
+
numpydoc = ">=1.10.0,<2"
|
|
62
|
+
# import dependencies for mypy:
|
|
63
|
+
array-api-strict = ">=2.5,<2.6"
|
|
64
|
+
numpy = ">=2.1.3"
|
|
65
|
+
hypothesis = ">=6.152.2"
|
|
66
|
+
dask-core = ">=2026.3.0" # No distributed, tornado, etc.
|
|
67
|
+
dprint = ">=0.50.0,<0.51"
|
|
68
|
+
lefthook = ">=2.1.8,<3"
|
|
69
|
+
ruff = ">=0.15.13,<0.16"
|
|
70
|
+
typos = ">=1.46.2,<2"
|
|
71
|
+
actionlint = ">=1.7.12,<2"
|
|
72
|
+
blacken-docs = ">=1.20.0,<2"
|
|
73
|
+
pytest = ">=9.0.3,<10"
|
|
74
|
+
validate-pyproject = ">=0.25,<0.26"
|
|
75
|
+
pyrefly = ">=1.0.0,<1.1"
|
|
76
|
+
zizmor = ">=1.25.2,<1.26"
|
|
77
|
+
# NOTE: don't add cupy, jax, pytorch, or sparse here,
|
|
78
|
+
# as they slow down mypy and are not portable across target OSs
|
|
79
|
+
|
|
80
|
+
[feature.lint.tasks]
|
|
81
|
+
lefthook = { cmd = "lefthook", description = "Run lefthook", default-environment = "lint" }
|
|
82
|
+
hooks = { cmd = "lefthook install", description = "Install pre-commit hooks", default-environment = "lint" }
|
|
83
|
+
pre-commit = { cmd = "lefthook run pre-commit", description = "Run pre-commit checks", default-environment = "lint" }
|
|
84
|
+
pylint = { cmd = "pylint array_api_extra", cwd = "src", description = "Lint with pylint", default-environment = "lint" }
|
|
85
|
+
mypy = { cmd = "mypy", description = "Type check with mypy", default-environment = "lint" }
|
|
86
|
+
pyrefly = { cmd = "pyrefly check", description = "Type check with pyrefly", default-environment = "lint" }
|
|
87
|
+
pyright = { cmd = "basedpyright", description = "Type check with basedpyright", default-environment = "lint" }
|
|
88
|
+
ruff-check = { cmd = "ruff check --fix", description = "Lint with ruff", default-environment = "lint" }
|
|
89
|
+
ruff-format = { cmd = "ruff format", description = "Format with ruff", default-environment = "lint" }
|
|
90
|
+
dprint = { cmd = "dprint fmt", description = "Format with dprint", default-environment = "lint" }
|
|
91
|
+
typos = { cmd = "typos --write-changes --force-exclude", description = "Fix typos", default-environment = "lint" }
|
|
92
|
+
actionlint = { cmd = "actionlint", description = "Lint actions with actionlint", default-environment = "lint" }
|
|
93
|
+
zizmor = { cmd = "zizmor .github -p", description = "GHA static analysis with zizmor", default-environment = "lint" }
|
|
94
|
+
blacken-docs = { cmd = "blacken-docs", description = "Format Python markdown blocks with Black", default-environment = "lint" }
|
|
95
|
+
validate-pyproject = { cmd = "validate-pyproject pyproject.toml", description = "Validate pyproject.toml", default-environment = "lint" }
|
|
96
|
+
numpydoc = { cmd = "numpydoc lint", description = "Validate docstrings with numpydoc", default-environment = "lint" }
|
|
97
|
+
lint = { cmd = "lefthook run pre-commit --all-files --force", description = "Run all linters", default-environment = "lint" }
|
|
98
|
+
|
|
99
|
+
[feature.tests.dependencies]
|
|
100
|
+
pytest = ">=9.0.3"
|
|
101
|
+
pytest-cov = ">=7.1.0"
|
|
102
|
+
hypothesis = ">=6.152.2"
|
|
103
|
+
array-api-strict = ">=2.5,<2.6"
|
|
104
|
+
numpy = ">=1.22.0"
|
|
105
|
+
scipy = ">=1.15.2,<2"
|
|
106
|
+
|
|
107
|
+
[feature.tests.tasks]
|
|
108
|
+
tests = { cmd = "pytest -v", description = "Run tests", default-environment = "tests" }
|
|
109
|
+
tests-cov = { cmd = "pytest -v -ra --cov --cov-report=xml --cov-report=term --durations=20", description = "Run tests with coverage", default-environment = "tests" }
|
|
110
|
+
|
|
111
|
+
clean-vendor-compat = { cmd = "rm -rf vendor_tests/array_api_compat", description = "Delete the existing vendored version of array-api-compat", default-environment = "tests" }
|
|
112
|
+
clean-vendor-extra = { cmd = "rm -rf vendor_tests/array_api_extra", description = "Delete the existing vendored version of array-api-extra", default-environment = "tests" }
|
|
113
|
+
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", default-environment = "tests" }
|
|
114
|
+
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", default-environment = "tests" }
|
|
115
|
+
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", default-environment = "tests" }
|
|
116
|
+
|
|
117
|
+
tests-ci = { depends-on = ["tests-cov", "tests-vendor"], description = "Run tests with coverage and vendor tests" }
|
|
118
|
+
coverage = { cmd = "coverage html", depends-on = ["tests-cov"], description = "Generate test coverage html report", default-environment = "tests" }
|
|
119
|
+
open-coverage = { cmd = "open htmlcov/index.html", depends-on = ["coverage"], description = "Open test coverage report", default-environment = "tests" }
|
|
120
|
+
|
|
121
|
+
# tests with only run dependencies
|
|
122
|
+
[feature.tests-run-deps.dependencies]
|
|
123
|
+
pytest = ">=9.0.3"
|
|
124
|
+
pytest-cov = ">=7.1.0"
|
|
125
|
+
|
|
126
|
+
[feature.tests-run-deps.tasks.tests-run-deps]
|
|
127
|
+
cmd = "pytest -v run_deps_tests"
|
|
128
|
+
description = "Run run-dependency tests"
|
|
129
|
+
default-environment = "tests-run-deps"
|
|
130
|
+
|
|
131
|
+
[feature.tests-run-deps.tasks.tests-run-deps-cov]
|
|
132
|
+
cmd = "pytest -v -ra --cov --cov-report=xml --cov-report=term --durations=20 run_deps_tests"
|
|
133
|
+
description = "Run run-dependency tests with coverage"
|
|
134
|
+
default-environment = "tests-run-deps"
|
|
135
|
+
|
|
136
|
+
[feature.docs.dependencies]
|
|
137
|
+
sphinx = ">=7.4.7"
|
|
138
|
+
furo = ">=2025.12.19"
|
|
139
|
+
myst-parser = ">=5.1.0"
|
|
140
|
+
sphinx-copybutton = ">=0.5.2"
|
|
141
|
+
sphinx-autodoc-typehints = ">=1.25.3"
|
|
142
|
+
# Needed to import parsed modules with autodoc
|
|
143
|
+
dask-core = ">=2026.3.0" # No distributed, tornado, etc.
|
|
144
|
+
pytest = ">=9.0.3"
|
|
145
|
+
typing-extensions = ">=4.15.0"
|
|
146
|
+
numpy = ">=2.1.3"
|
|
147
|
+
|
|
148
|
+
[feature.docs.tasks]
|
|
149
|
+
docs = { cmd = "sphinx-build -E -W . build/", cwd = "docs", description = "Build docs", default-environment = "docs" }
|
|
150
|
+
open-docs = { cmd = "open build/index.html", cwd = "docs", depends-on = ["docs"], description = "Open the generated docs", default-environment = "docs" }
|
|
151
|
+
|
|
152
|
+
[feature.dev.dependencies]
|
|
153
|
+
ipython = ">=9.13.0"
|
|
154
|
+
|
|
155
|
+
[feature.dev.tasks]
|
|
156
|
+
ipython = { cmd = "ipython", description = "Launch ipython", default-environment = "dev" }
|
|
157
|
+
|
|
158
|
+
[feature.py311.dependencies]
|
|
159
|
+
python = "~=3.11.0"
|
|
160
|
+
|
|
161
|
+
[feature.py314.dependencies]
|
|
162
|
+
python = "~=3.14.0"
|
|
163
|
+
|
|
164
|
+
[feature.numpy1.dependencies]
|
|
165
|
+
# Oldest NumPy version supported by scikit-learn.
|
|
166
|
+
# Note that this is older than what SPEC0 recommends.
|
|
167
|
+
numpy = "=1.24.1"
|
|
168
|
+
|
|
169
|
+
# Backends that can run on CPU-only hosts
|
|
170
|
+
# Note: JAX and PyTorch will install CPU variants.
|
|
171
|
+
[feature.backends.dependencies]
|
|
172
|
+
pytorch = ">=2.10.0"
|
|
173
|
+
dask-core = ">=2026.3.0" # No distributed, tornado, etc.
|
|
174
|
+
sparse = ">=0.18.0"
|
|
175
|
+
|
|
176
|
+
[feature.backends.target.linux-64.dependencies]
|
|
177
|
+
jax = ">=0.9.2"
|
|
178
|
+
|
|
179
|
+
[feature.backends.target.osx-64.dependencies]
|
|
180
|
+
jax = ">=0.9.2"
|
|
181
|
+
|
|
182
|
+
[feature.backends.target.osx-arm64.dependencies]
|
|
183
|
+
jax = ">=0.9.2"
|
|
184
|
+
|
|
185
|
+
[feature.backends.target.win-64.dependencies]
|
|
186
|
+
# jax = "*" # unavailable
|
|
187
|
+
|
|
188
|
+
# Backends that require a GPU host and a CUDA driver.
|
|
189
|
+
# Note that JAX and PyTorch automatically prefer CUDA variants
|
|
190
|
+
# thanks to the `system-requirements` below, *if available*.
|
|
191
|
+
# We request them explicitly below to ensure that we don't
|
|
192
|
+
# quietly revert to CPU-only in the future, e.g. when CUDA 13
|
|
193
|
+
# is released and CUDA 12 builds are dropped upstream.
|
|
194
|
+
[feature.cuda-backends]
|
|
195
|
+
system-requirements = { cuda = "12" }
|
|
196
|
+
|
|
197
|
+
[feature.cuda-backends.target.linux.dependencies]
|
|
198
|
+
cupy = ">=14.0.1"
|
|
199
|
+
jaxlib = { version = ">=0.9.2", build = "cuda12*" }
|
|
200
|
+
pytorch = { version = ">=2.10.0", build = "cuda12*" }
|
|
201
|
+
|
|
202
|
+
[feature.cuda-backends.target.osx.dependencies]
|
|
203
|
+
# cupy = "*" # unavailable
|
|
204
|
+
# jaxlib = { version = "*", build = "cuda12*" } # unavailable
|
|
205
|
+
# pytorch = { version = "*", build = "cuda12*" } # unavailable
|
|
206
|
+
|
|
207
|
+
[feature.cuda-backends.target.win.dependencies]
|
|
208
|
+
cupy = ">=14.0.1"
|
|
209
|
+
# jaxlib = { version = "*", build = "cuda12*" } # unavailable
|
|
210
|
+
pytorch = { version = ">=2.10.0", build = "cuda12*" }
|
|
211
|
+
|
|
212
|
+
[feature.nogil.dependencies]
|
|
213
|
+
python-freethreading = "~=3.13.0"
|
|
214
|
+
pytest-run-parallel = ">=0.8.2"
|
|
215
|
+
numpy = ">=2.3.5"
|
|
216
|
+
# pytorch = "*" # Not available on Python 3.13t yet
|
|
217
|
+
dask-core = ">=2026.3.0" # No distributed, tornado, etc.
|
|
218
|
+
# sparse = "*" # numba not available on Python 3.13t yet
|
|
219
|
+
# jax = "*" # ml_dtypes not available on Python 3.13t yet
|