array-api-extra 0.1.0__tar.gz → 0.2.0__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.2.0/.all-contributorsrc +148 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.github/workflows/cd.yml +1 -1
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.github/workflows/ci.yml +8 -8
- array_api_extra-0.2.0/.github/workflows/dependabot-auto-merge.yml +23 -0
- array_api_extra-0.2.0/.github/workflows/docs-build.yml +20 -0
- array_api_extra-0.2.0/.github/workflows/docs-deploy.yml +32 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.pre-commit-config.yaml +0 -1
- array_api_extra-0.2.0/CONTRIBUTORS.md +31 -0
- array_api_extra-0.2.0/PKG-INFO +117 -0
- array_api_extra-0.2.0/README.md +61 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/docs/api-reference.md +5 -0
- array_api_extra-0.2.0/docs/contributing.md +87 -0
- array_api_extra-0.2.0/docs/contributors.md +3 -0
- array_api_extra-0.2.0/docs/index.md +130 -0
- array_api_extra-0.2.0/pixi.lock +5442 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/pyproject.toml +26 -20
- array_api_extra-0.2.0/src/array_api_extra/__init__.py +15 -0
- array_api_extra-0.2.0/src/array_api_extra/_funcs.py +484 -0
- array_api_extra-0.2.0/src/array_api_extra/_typing.py +8 -0
- array_api_extra-0.2.0/tests/test_funcs.py +282 -0
- array_api_extra-0.1.0/.readthedocs.yaml +0 -24
- array_api_extra-0.1.0/PKG-INFO +0 -85
- array_api_extra-0.1.0/README.md +0 -28
- array_api_extra-0.1.0/docs/index.md +0 -11
- array_api_extra-0.1.0/pixi.lock +0 -5519
- array_api_extra-0.1.0/src/array_api_extra/__init__.py +0 -7
- array_api_extra-0.1.0/src/array_api_extra/_funcs.py +0 -48
- array_api_extra-0.1.0/src/array_api_extra/_typing.py +0 -9
- array_api_extra-0.1.0/tests/test_funcs.py +0 -69
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.gitattributes +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.github/dependabot.yml +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/.gitignore +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/LICENSE +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/docs/conf.py +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/docs/requirements.txt +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/src/array_api_extra/py.typed +0 -0
- {array_api_extra-0.1.0 → array_api_extra-0.2.0}/tests/test_version.py +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"projectName": "array-api-extra",
|
|
3
|
+
"projectOwner": "data-apis",
|
|
4
|
+
"repoType": "github",
|
|
5
|
+
"repoHost": "https://github.com",
|
|
6
|
+
"files": [
|
|
7
|
+
"README.md", "CONTRIBUTORS.md"
|
|
8
|
+
],
|
|
9
|
+
"imageSize": 100,
|
|
10
|
+
"commitType": "docs",
|
|
11
|
+
"commitConvention": "angular",
|
|
12
|
+
"contributorsPerLine": 7,
|
|
13
|
+
"contributors": [
|
|
14
|
+
{
|
|
15
|
+
"login": "lucascolley",
|
|
16
|
+
"name": "Lucas Colley",
|
|
17
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/51488791?v=4",
|
|
18
|
+
"profile": "https://lucascolley.github.io/",
|
|
19
|
+
"contributions": [
|
|
20
|
+
"code",
|
|
21
|
+
"doc",
|
|
22
|
+
"example",
|
|
23
|
+
"ideas",
|
|
24
|
+
"infra",
|
|
25
|
+
"maintenance",
|
|
26
|
+
"tool",
|
|
27
|
+
"test",
|
|
28
|
+
"bug"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"login": "mdhaber",
|
|
33
|
+
"name": "Matt Haberland",
|
|
34
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/6570539?v=4",
|
|
35
|
+
"profile": "https://github.com/mdhaber",
|
|
36
|
+
"contributions": [
|
|
37
|
+
"code",
|
|
38
|
+
"ideas"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"login": "j-bowhay",
|
|
43
|
+
"name": "Jake Bowhay",
|
|
44
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/60778417?v=4",
|
|
45
|
+
"profile": "https://github.com/j-bowhay",
|
|
46
|
+
"contributions": [
|
|
47
|
+
"code",
|
|
48
|
+
"review"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"login": "asmeurer",
|
|
53
|
+
"name": "Aaron Meurer",
|
|
54
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/71486?v=4",
|
|
55
|
+
"profile": "https://github.com/asmeurer",
|
|
56
|
+
"contributions": [
|
|
57
|
+
"review",
|
|
58
|
+
"ideas",
|
|
59
|
+
"infra"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"login": "betatim",
|
|
64
|
+
"name": "Tim Head",
|
|
65
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/1448859?v=4",
|
|
66
|
+
"profile": "https://github.com/betatim",
|
|
67
|
+
"contributions": [
|
|
68
|
+
"ideas"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"login": "kgryte",
|
|
73
|
+
"name": "Athan",
|
|
74
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/2643044?v=4",
|
|
75
|
+
"profile": "https://github.com/stdlib-js/stdlib",
|
|
76
|
+
"contributions": [
|
|
77
|
+
"review",
|
|
78
|
+
"ideas"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"login": "vnmabus",
|
|
83
|
+
"name": "Carlos Ramos Carreño",
|
|
84
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/2364173?v=4",
|
|
85
|
+
"profile": "https://github.com/vnmabus",
|
|
86
|
+
"contributions": [
|
|
87
|
+
"ideas"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"login": "rgommers",
|
|
92
|
+
"name": "Ralf Gommers",
|
|
93
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/98330?v=4",
|
|
94
|
+
"profile": "https://github.com/rgommers/",
|
|
95
|
+
"contributions": [
|
|
96
|
+
"ideas",
|
|
97
|
+
"infra",
|
|
98
|
+
"review"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"login": "jorenham",
|
|
103
|
+
"name": "Joren Hammudoglu",
|
|
104
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/6208662?v=4",
|
|
105
|
+
"profile": "https://github.com/jorenham",
|
|
106
|
+
"contributions": [
|
|
107
|
+
"review"
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"login": "thomasjpfan",
|
|
112
|
+
"name": "Thomas J. Fan",
|
|
113
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/5402633?v=4",
|
|
114
|
+
"profile": "https://www.thomasjpfan.com/",
|
|
115
|
+
"contributions": [
|
|
116
|
+
"ideas"
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"login": "izaid",
|
|
121
|
+
"name": "Irwin Zaid",
|
|
122
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/482179?v=4",
|
|
123
|
+
"profile": "https://github.com/izaid",
|
|
124
|
+
"contributions": [
|
|
125
|
+
"ideas"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"login": "jakirkham",
|
|
130
|
+
"name": "jakirkham",
|
|
131
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/3019665?v=4",
|
|
132
|
+
"profile": "https://github.com/jakirkham",
|
|
133
|
+
"contributions": [
|
|
134
|
+
"code",
|
|
135
|
+
"review"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"login": "tupui",
|
|
140
|
+
"name": "Pamphile Roy",
|
|
141
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/23188539?v=4",
|
|
142
|
+
"profile": "https://github.com/tupui",
|
|
143
|
+
"contributions": [
|
|
144
|
+
"code"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
extra_args: --hook-stage manual --all-files
|
|
33
33
|
- uses: prefix-dev/setup-pixi@v0.8.1
|
|
34
34
|
with:
|
|
35
|
-
pixi-version: v0.
|
|
35
|
+
pixi-version: v0.37.0
|
|
36
36
|
cache: true
|
|
37
37
|
- name: Run Pylint & Mypy
|
|
38
38
|
run: |
|
|
@@ -46,7 +46,7 @@ jobs:
|
|
|
46
46
|
strategy:
|
|
47
47
|
fail-fast: false
|
|
48
48
|
matrix:
|
|
49
|
-
environment: [ci-
|
|
49
|
+
environment: [ci-py310, ci-py313]
|
|
50
50
|
runs-on: [ubuntu-latest]
|
|
51
51
|
|
|
52
52
|
steps:
|
|
@@ -56,14 +56,14 @@ jobs:
|
|
|
56
56
|
|
|
57
57
|
- uses: prefix-dev/setup-pixi@v0.8.1
|
|
58
58
|
with:
|
|
59
|
-
pixi-version: v0.
|
|
59
|
+
pixi-version: v0.37.0
|
|
60
60
|
cache: true
|
|
61
61
|
environments: ${{ matrix.environment }}
|
|
62
62
|
|
|
63
63
|
- name: Test package
|
|
64
|
-
run: pixi run -e ${{ matrix.environment }}
|
|
64
|
+
run: pixi run -e ${{ matrix.environment }} tests-ci
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
- name: Upload coverage report
|
|
67
|
+
uses: codecov/codecov-action@v4.5.0
|
|
68
|
+
with:
|
|
69
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#approve-a-pull-request
|
|
2
|
+
name: Dependabot auto-merge
|
|
3
|
+
on: pull_request
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
pull-requests: write
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
dependabot:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
if: github.actor == 'dependabot[bot]'
|
|
13
|
+
steps:
|
|
14
|
+
- name: Dependabot metadata
|
|
15
|
+
id: metadata
|
|
16
|
+
uses: dependabot/fetch-metadata@v2
|
|
17
|
+
with:
|
|
18
|
+
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
19
|
+
- name: Enable auto-merge for Dependabot PRs
|
|
20
|
+
run: gh pr merge --auto --merge "$PR_URL"
|
|
21
|
+
env:
|
|
22
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
|
23
|
+
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Docs Build
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
docs-build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- uses: actions/checkout@v4
|
|
10
|
+
- uses: prefix-dev/setup-pixi@v0.8.1
|
|
11
|
+
with:
|
|
12
|
+
pixi-version: v0.37.0
|
|
13
|
+
cache: true
|
|
14
|
+
- name: Build Docs
|
|
15
|
+
run: pixi run -e docs docs
|
|
16
|
+
- name: Upload Artifact
|
|
17
|
+
uses: actions/upload-artifact@v4
|
|
18
|
+
with:
|
|
19
|
+
name: docs-build
|
|
20
|
+
path: docs/build/
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Docs Deploy
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_run:
|
|
5
|
+
workflows: ["Docs Build"]
|
|
6
|
+
types: [completed]
|
|
7
|
+
branches:
|
|
8
|
+
- "main"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
docs-deploy:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
if: ${{ github.event.workflow_run.event == 'push' }}
|
|
14
|
+
environment:
|
|
15
|
+
name: docs-deploy
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- name: Download Artifact
|
|
19
|
+
uses: dawidd6/action-download-artifact@v6
|
|
20
|
+
with:
|
|
21
|
+
workflow: docs-build.yml
|
|
22
|
+
name: docs-build
|
|
23
|
+
path: docs/build/
|
|
24
|
+
|
|
25
|
+
# Note, the gh-pages deployment requires setting up a SSH deploy key.
|
|
26
|
+
# See
|
|
27
|
+
# https://github.com/JamesIves/github-pages-deploy-action/tree/dev#using-an-ssh-deploy-key-
|
|
28
|
+
- name: Deploy
|
|
29
|
+
uses: JamesIves/github-pages-deploy-action@v4
|
|
30
|
+
with:
|
|
31
|
+
folder: docs/build/
|
|
32
|
+
ssh-key: ${{ secrets.DEPLOY_KEY }}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## Contributors
|
|
2
|
+
|
|
3
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
4
|
+
<!-- prettier-ignore-start -->
|
|
5
|
+
<!-- markdownlint-disable -->
|
|
6
|
+
<table>
|
|
7
|
+
<tbody>
|
|
8
|
+
<tr>
|
|
9
|
+
<td align="center" valign="top" width="14.28%"><a href="https://lucascolley.github.io/"><img src="https://avatars.githubusercontent.com/u/51488791?v=4?s=100" width="100px;" alt="Lucas Colley"/><br /><sub><b>Lucas Colley</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Documentation">📖</a> <a href="#example-lucascolley" title="Examples">💡</a> <a href="#ideas-lucascolley" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-lucascolley" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-lucascolley" title="Maintenance">🚧</a> <a href="#tool-lucascolley" title="Tools">🔧</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alucascolley" title="Bug reports">🐛</a></td>
|
|
10
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mdhaber"><img src="https://avatars.githubusercontent.com/u/6570539?v=4?s=100" width="100px;" alt="Matt Haberland"/><br /><sub><b>Matt Haberland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=mdhaber" title="Code">💻</a> <a href="#ideas-mdhaber" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
11
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j-bowhay"><img src="https://avatars.githubusercontent.com/u/60778417?v=4?s=100" width="100px;" alt="Jake Bowhay"/><br /><sub><b>Jake Bowhay</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=j-bowhay" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aj-bowhay" title="Reviewed Pull Requests">👀</a></td>
|
|
12
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/asmeurer"><img src="https://avatars.githubusercontent.com/u/71486?v=4?s=100" width="100px;" alt="Aaron Meurer"/><br /><sub><b>Aaron Meurer</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aasmeurer" title="Reviewed Pull Requests">👀</a> <a href="#ideas-asmeurer" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-asmeurer" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
13
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/betatim"><img src="https://avatars.githubusercontent.com/u/1448859?v=4?s=100" width="100px;" alt="Tim Head"/><br /><sub><b>Tim Head</b></sub></a><br /><a href="#ideas-betatim" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
14
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/stdlib-js/stdlib"><img src="https://avatars.githubusercontent.com/u/2643044?v=4?s=100" width="100px;" alt="Athan"/><br /><sub><b>Athan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akgryte" title="Reviewed Pull Requests">👀</a> <a href="#ideas-kgryte" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
15
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vnmabus"><img src="https://avatars.githubusercontent.com/u/2364173?v=4?s=100" width="100px;" alt="Carlos Ramos Carreño"/><br /><sub><b>Carlos Ramos Carreño</b></sub></a><br /><a href="#ideas-vnmabus" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
16
|
+
</tr>
|
|
17
|
+
<tr>
|
|
18
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rgommers/"><img src="https://avatars.githubusercontent.com/u/98330?v=4?s=100" width="100px;" alt="Ralf Gommers"/><br /><sub><b>Ralf Gommers</b></sub></a><br /><a href="#ideas-rgommers" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-rgommers" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Argommers" title="Reviewed Pull Requests">👀</a></td>
|
|
19
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jorenham"><img src="https://avatars.githubusercontent.com/u/6208662?v=4?s=100" width="100px;" alt="Joren Hammudoglu"/><br /><sub><b>Joren Hammudoglu</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajorenham" title="Reviewed Pull Requests">👀</a></td>
|
|
20
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.thomasjpfan.com/"><img src="https://avatars.githubusercontent.com/u/5402633?v=4?s=100" width="100px;" alt="Thomas J. Fan"/><br /><sub><b>Thomas J. Fan</b></sub></a><br /><a href="#ideas-thomasjpfan" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
21
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/izaid"><img src="https://avatars.githubusercontent.com/u/482179?v=4?s=100" width="100px;" alt="Irwin Zaid"/><br /><sub><b>Irwin Zaid</b></sub></a><br /><a href="#ideas-izaid" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
22
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jakirkham"><img src="https://avatars.githubusercontent.com/u/3019665?v=4?s=100" width="100px;" alt="jakirkham"/><br /><sub><b>jakirkham</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=jakirkham" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakirkham" title="Reviewed Pull Requests">👀</a></td>
|
|
23
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tupui"><img src="https://avatars.githubusercontent.com/u/23188539?v=4?s=100" width="100px;" alt="Pamphile Roy"/><br /><sub><b>Pamphile Roy</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=tupui" title="Code">💻</a></td>
|
|
24
|
+
</tr>
|
|
25
|
+
</tbody>
|
|
26
|
+
</table>
|
|
27
|
+
|
|
28
|
+
<!-- markdownlint-restore -->
|
|
29
|
+
<!-- prettier-ignore-end -->
|
|
30
|
+
|
|
31
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: array-api-extra
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Extra array functions built on top of the array API standard.
|
|
5
|
+
Project-URL: Homepage, https://github.com/data-apis/array-api-extra
|
|
6
|
+
Project-URL: Bug Tracker, https://github.com/data-apis/array-api-extra/issues
|
|
7
|
+
Project-URL: Discussions, https://github.com/data-apis/array-api-extra/discussions
|
|
8
|
+
Project-URL: Changelog, https://github.com/data-apis/array-api-extra/releases
|
|
9
|
+
Author: Open Source Contributors
|
|
10
|
+
Author-email: Lucas Colley <lucas.colley8@gmail.com>
|
|
11
|
+
License: MIT License
|
|
12
|
+
|
|
13
|
+
Copyright (c) 2024 Consortium for Python Data API Standards
|
|
14
|
+
|
|
15
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
16
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
17
|
+
in the Software without restriction, including without limitation the rights
|
|
18
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
19
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
20
|
+
furnished to do so, subject to the following conditions:
|
|
21
|
+
|
|
22
|
+
The above copyright notice and this permission notice shall be included in all
|
|
23
|
+
copies or substantial portions of the Software.
|
|
24
|
+
|
|
25
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
26
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
27
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
28
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
29
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
30
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
31
|
+
SOFTWARE.
|
|
32
|
+
Classifier: Intended Audience :: Developers
|
|
33
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
34
|
+
Classifier: Operating System :: OS Independent
|
|
35
|
+
Classifier: Programming Language :: Python
|
|
36
|
+
Classifier: Programming Language :: Python :: 3
|
|
37
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
38
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
39
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
40
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
41
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
42
|
+
Classifier: Typing :: Typed
|
|
43
|
+
Requires-Python: >=3.10
|
|
44
|
+
Provides-Extra: docs
|
|
45
|
+
Requires-Dist: furo>=2023.08.17; extra == 'docs'
|
|
46
|
+
Requires-Dist: myst-parser>=0.13; extra == 'docs'
|
|
47
|
+
Requires-Dist: sphinx-autodoc-typehints; extra == 'docs'
|
|
48
|
+
Requires-Dist: sphinx-copybutton; extra == 'docs'
|
|
49
|
+
Requires-Dist: sphinx>=7.0; extra == 'docs'
|
|
50
|
+
Provides-Extra: tests
|
|
51
|
+
Requires-Dist: array-api-strict; extra == 'tests'
|
|
52
|
+
Requires-Dist: numpy; extra == 'tests'
|
|
53
|
+
Requires-Dist: pytest-cov>=3; extra == 'tests'
|
|
54
|
+
Requires-Dist: pytest>=6; extra == 'tests'
|
|
55
|
+
Description-Content-Type: text/markdown
|
|
56
|
+
|
|
57
|
+
# array-api-extra
|
|
58
|
+
|
|
59
|
+
[![Actions Status][actions-badge]][actions-link]
|
|
60
|
+
[![docs - here!][docs-badge]][docs-link]
|
|
61
|
+
[](https://pixi.sh)
|
|
62
|
+
[](#contributors)
|
|
63
|
+
|
|
64
|
+
[![PyPI version][pypi-version]][pypi-link]
|
|
65
|
+
[![Conda-Forge][conda-badge]][conda-link]
|
|
66
|
+
[![PyPI platforms][pypi-platforms]][pypi-link]
|
|
67
|
+
|
|
68
|
+
<!-- SPHINX-START -->
|
|
69
|
+
|
|
70
|
+
<!-- prettier-ignore-start -->
|
|
71
|
+
[actions-badge]: https://github.com/data-apis/array-api-extra/workflows/CI/badge.svg
|
|
72
|
+
[actions-link]: https://github.com/data-apis/array-api-extra/actions
|
|
73
|
+
[conda-badge]: https://img.shields.io/conda/vn/conda-forge/array-api-extra
|
|
74
|
+
[conda-link]: https://github.com/conda-forge/array-api-extra-feedstock
|
|
75
|
+
[github-discussions-badge]: https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github
|
|
76
|
+
[github-discussions-link]: https://github.com/data-apis/array-api-extra/discussions
|
|
77
|
+
[pypi-link]: https://pypi.org/project/array-api-extra/
|
|
78
|
+
[pypi-platforms]: https://img.shields.io/pypi/pyversions/array-api-extra
|
|
79
|
+
[pypi-version]: https://img.shields.io/pypi/v/array-api-extra
|
|
80
|
+
[docs-badge]: https://img.shields.io/badge/docs-here!-2ea44f
|
|
81
|
+
[docs-link]: https://data-apis.org/array-api-extra/index.html
|
|
82
|
+
|
|
83
|
+
<!-- prettier-ignore-end -->
|
|
84
|
+
|
|
85
|
+
Extra array functions built on top of the array API standard.
|
|
86
|
+
|
|
87
|
+
## Contributors
|
|
88
|
+
|
|
89
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
90
|
+
<!-- prettier-ignore-start -->
|
|
91
|
+
<!-- markdownlint-disable -->
|
|
92
|
+
<table>
|
|
93
|
+
<tbody>
|
|
94
|
+
<tr>
|
|
95
|
+
<td align="center" valign="top" width="14.28%"><a href="https://lucascolley.github.io/"><img src="https://avatars.githubusercontent.com/u/51488791?v=4?s=100" width="100px;" alt="Lucas Colley"/><br /><sub><b>Lucas Colley</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Documentation">📖</a> <a href="#example-lucascolley" title="Examples">💡</a> <a href="#ideas-lucascolley" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-lucascolley" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-lucascolley" title="Maintenance">🚧</a> <a href="#tool-lucascolley" title="Tools">🔧</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alucascolley" title="Bug reports">🐛</a></td>
|
|
96
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mdhaber"><img src="https://avatars.githubusercontent.com/u/6570539?v=4?s=100" width="100px;" alt="Matt Haberland"/><br /><sub><b>Matt Haberland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=mdhaber" title="Code">💻</a> <a href="#ideas-mdhaber" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
97
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j-bowhay"><img src="https://avatars.githubusercontent.com/u/60778417?v=4?s=100" width="100px;" alt="Jake Bowhay"/><br /><sub><b>Jake Bowhay</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=j-bowhay" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aj-bowhay" title="Reviewed Pull Requests">👀</a></td>
|
|
98
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/asmeurer"><img src="https://avatars.githubusercontent.com/u/71486?v=4?s=100" width="100px;" alt="Aaron Meurer"/><br /><sub><b>Aaron Meurer</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aasmeurer" title="Reviewed Pull Requests">👀</a> <a href="#ideas-asmeurer" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-asmeurer" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
99
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/betatim"><img src="https://avatars.githubusercontent.com/u/1448859?v=4?s=100" width="100px;" alt="Tim Head"/><br /><sub><b>Tim Head</b></sub></a><br /><a href="#ideas-betatim" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
100
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/stdlib-js/stdlib"><img src="https://avatars.githubusercontent.com/u/2643044?v=4?s=100" width="100px;" alt="Athan"/><br /><sub><b>Athan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akgryte" title="Reviewed Pull Requests">👀</a> <a href="#ideas-kgryte" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
101
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vnmabus"><img src="https://avatars.githubusercontent.com/u/2364173?v=4?s=100" width="100px;" alt="Carlos Ramos Carreño"/><br /><sub><b>Carlos Ramos Carreño</b></sub></a><br /><a href="#ideas-vnmabus" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
102
|
+
</tr>
|
|
103
|
+
<tr>
|
|
104
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rgommers/"><img src="https://avatars.githubusercontent.com/u/98330?v=4?s=100" width="100px;" alt="Ralf Gommers"/><br /><sub><b>Ralf Gommers</b></sub></a><br /><a href="#ideas-rgommers" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-rgommers" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Argommers" title="Reviewed Pull Requests">👀</a></td>
|
|
105
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jorenham"><img src="https://avatars.githubusercontent.com/u/6208662?v=4?s=100" width="100px;" alt="Joren Hammudoglu"/><br /><sub><b>Joren Hammudoglu</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajorenham" title="Reviewed Pull Requests">👀</a></td>
|
|
106
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.thomasjpfan.com/"><img src="https://avatars.githubusercontent.com/u/5402633?v=4?s=100" width="100px;" alt="Thomas J. Fan"/><br /><sub><b>Thomas J. Fan</b></sub></a><br /><a href="#ideas-thomasjpfan" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
107
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/izaid"><img src="https://avatars.githubusercontent.com/u/482179?v=4?s=100" width="100px;" alt="Irwin Zaid"/><br /><sub><b>Irwin Zaid</b></sub></a><br /><a href="#ideas-izaid" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
108
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jakirkham"><img src="https://avatars.githubusercontent.com/u/3019665?v=4?s=100" width="100px;" alt="jakirkham"/><br /><sub><b>jakirkham</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=jakirkham" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakirkham" title="Reviewed Pull Requests">👀</a></td>
|
|
109
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tupui"><img src="https://avatars.githubusercontent.com/u/23188539?v=4?s=100" width="100px;" alt="Pamphile Roy"/><br /><sub><b>Pamphile Roy</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=tupui" title="Code">💻</a></td>
|
|
110
|
+
</tr>
|
|
111
|
+
</tbody>
|
|
112
|
+
</table>
|
|
113
|
+
|
|
114
|
+
<!-- markdownlint-restore -->
|
|
115
|
+
<!-- prettier-ignore-end -->
|
|
116
|
+
|
|
117
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# array-api-extra
|
|
2
|
+
|
|
3
|
+
[![Actions Status][actions-badge]][actions-link]
|
|
4
|
+
[![docs - here!][docs-badge]][docs-link]
|
|
5
|
+
[](https://pixi.sh)
|
|
6
|
+
[](#contributors)
|
|
7
|
+
|
|
8
|
+
[![PyPI version][pypi-version]][pypi-link]
|
|
9
|
+
[![Conda-Forge][conda-badge]][conda-link]
|
|
10
|
+
[![PyPI platforms][pypi-platforms]][pypi-link]
|
|
11
|
+
|
|
12
|
+
<!-- SPHINX-START -->
|
|
13
|
+
|
|
14
|
+
<!-- prettier-ignore-start -->
|
|
15
|
+
[actions-badge]: https://github.com/data-apis/array-api-extra/workflows/CI/badge.svg
|
|
16
|
+
[actions-link]: https://github.com/data-apis/array-api-extra/actions
|
|
17
|
+
[conda-badge]: https://img.shields.io/conda/vn/conda-forge/array-api-extra
|
|
18
|
+
[conda-link]: https://github.com/conda-forge/array-api-extra-feedstock
|
|
19
|
+
[github-discussions-badge]: https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github
|
|
20
|
+
[github-discussions-link]: https://github.com/data-apis/array-api-extra/discussions
|
|
21
|
+
[pypi-link]: https://pypi.org/project/array-api-extra/
|
|
22
|
+
[pypi-platforms]: https://img.shields.io/pypi/pyversions/array-api-extra
|
|
23
|
+
[pypi-version]: https://img.shields.io/pypi/v/array-api-extra
|
|
24
|
+
[docs-badge]: https://img.shields.io/badge/docs-here!-2ea44f
|
|
25
|
+
[docs-link]: https://data-apis.org/array-api-extra/index.html
|
|
26
|
+
|
|
27
|
+
<!-- prettier-ignore-end -->
|
|
28
|
+
|
|
29
|
+
Extra array functions built on top of the array API standard.
|
|
30
|
+
|
|
31
|
+
## Contributors
|
|
32
|
+
|
|
33
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
34
|
+
<!-- prettier-ignore-start -->
|
|
35
|
+
<!-- markdownlint-disable -->
|
|
36
|
+
<table>
|
|
37
|
+
<tbody>
|
|
38
|
+
<tr>
|
|
39
|
+
<td align="center" valign="top" width="14.28%"><a href="https://lucascolley.github.io/"><img src="https://avatars.githubusercontent.com/u/51488791?v=4?s=100" width="100px;" alt="Lucas Colley"/><br /><sub><b>Lucas Colley</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Documentation">📖</a> <a href="#example-lucascolley" title="Examples">💡</a> <a href="#ideas-lucascolley" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-lucascolley" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-lucascolley" title="Maintenance">🚧</a> <a href="#tool-lucascolley" title="Tools">🔧</a> <a href="https://github.com/data-apis/array-api-extra/commits?author=lucascolley" title="Tests">⚠️</a> <a href="https://github.com/data-apis/array-api-extra/issues?q=author%3Alucascolley" title="Bug reports">🐛</a></td>
|
|
40
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mdhaber"><img src="https://avatars.githubusercontent.com/u/6570539?v=4?s=100" width="100px;" alt="Matt Haberland"/><br /><sub><b>Matt Haberland</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=mdhaber" title="Code">💻</a> <a href="#ideas-mdhaber" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
41
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j-bowhay"><img src="https://avatars.githubusercontent.com/u/60778417?v=4?s=100" width="100px;" alt="Jake Bowhay"/><br /><sub><b>Jake Bowhay</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=j-bowhay" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aj-bowhay" title="Reviewed Pull Requests">👀</a></td>
|
|
42
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/asmeurer"><img src="https://avatars.githubusercontent.com/u/71486?v=4?s=100" width="100px;" alt="Aaron Meurer"/><br /><sub><b>Aaron Meurer</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Aasmeurer" title="Reviewed Pull Requests">👀</a> <a href="#ideas-asmeurer" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-asmeurer" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
43
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/betatim"><img src="https://avatars.githubusercontent.com/u/1448859?v=4?s=100" width="100px;" alt="Tim Head"/><br /><sub><b>Tim Head</b></sub></a><br /><a href="#ideas-betatim" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
44
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/stdlib-js/stdlib"><img src="https://avatars.githubusercontent.com/u/2643044?v=4?s=100" width="100px;" alt="Athan"/><br /><sub><b>Athan</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Akgryte" title="Reviewed Pull Requests">👀</a> <a href="#ideas-kgryte" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
45
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vnmabus"><img src="https://avatars.githubusercontent.com/u/2364173?v=4?s=100" width="100px;" alt="Carlos Ramos Carreño"/><br /><sub><b>Carlos Ramos Carreño</b></sub></a><br /><a href="#ideas-vnmabus" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rgommers/"><img src="https://avatars.githubusercontent.com/u/98330?v=4?s=100" width="100px;" alt="Ralf Gommers"/><br /><sub><b>Ralf Gommers</b></sub></a><br /><a href="#ideas-rgommers" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-rgommers" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Argommers" title="Reviewed Pull Requests">👀</a></td>
|
|
49
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jorenham"><img src="https://avatars.githubusercontent.com/u/6208662?v=4?s=100" width="100px;" alt="Joren Hammudoglu"/><br /><sub><b>Joren Hammudoglu</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajorenham" title="Reviewed Pull Requests">👀</a></td>
|
|
50
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.thomasjpfan.com/"><img src="https://avatars.githubusercontent.com/u/5402633?v=4?s=100" width="100px;" alt="Thomas J. Fan"/><br /><sub><b>Thomas J. Fan</b></sub></a><br /><a href="#ideas-thomasjpfan" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
51
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/izaid"><img src="https://avatars.githubusercontent.com/u/482179?v=4?s=100" width="100px;" alt="Irwin Zaid"/><br /><sub><b>Irwin Zaid</b></sub></a><br /><a href="#ideas-izaid" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
52
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jakirkham"><img src="https://avatars.githubusercontent.com/u/3019665?v=4?s=100" width="100px;" alt="jakirkham"/><br /><sub><b>jakirkham</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=jakirkham" title="Code">💻</a> <a href="https://github.com/data-apis/array-api-extra/pulls?q=is%3Apr+reviewed-by%3Ajakirkham" title="Reviewed Pull Requests">👀</a></td>
|
|
53
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tupui"><img src="https://avatars.githubusercontent.com/u/23188539?v=4?s=100" width="100px;" alt="Pamphile Roy"/><br /><sub><b>Pamphile Roy</b></sub></a><br /><a href="https://github.com/data-apis/array-api-extra/commits?author=tupui" title="Code">💻</a></td>
|
|
54
|
+
</tr>
|
|
55
|
+
</tbody>
|
|
56
|
+
</table>
|
|
57
|
+
|
|
58
|
+
<!-- markdownlint-restore -->
|
|
59
|
+
<!-- prettier-ignore-end -->
|
|
60
|
+
|
|
61
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Contributions are welcome from any "array-consuming" library contributors who
|
|
4
|
+
have found themselves writing private array-agnostic functions in the process of
|
|
5
|
+
converting code to consume the standard!
|
|
6
|
+
|
|
7
|
+
## How to contribute a function
|
|
8
|
+
|
|
9
|
+
- Add the implementation of your function to `src/array_api_extra/_funcs.py`.
|
|
10
|
+
- Ensure that your function includes type annotations and a
|
|
11
|
+
[numpydoc-style docstring](https://numpydoc.readthedocs.io/en/latest/format.html).
|
|
12
|
+
- Add your function to `__all__` at the top of the file.
|
|
13
|
+
- Import your function to `src/array_api_extra/__init__.py` and add it to
|
|
14
|
+
`__all__` there.
|
|
15
|
+
- Add a test class for your function in `tests/test_funcs.py`.
|
|
16
|
+
- Add your function to `docs/api-reference.md`.
|
|
17
|
+
- [Make a PR!](https://github.com/data-apis/array-api-extra/pulls)
|
|
18
|
+
|
|
19
|
+
## Development workflow
|
|
20
|
+
|
|
21
|
+
If you are an experienced contributor to Python packages, feel free to develop
|
|
22
|
+
however you feel comfortable! However, if you would like some guidance,
|
|
23
|
+
development of array-api-extra is made easy with
|
|
24
|
+
[Pixi](https://pixi.sh/latest/):
|
|
25
|
+
|
|
26
|
+
- [Clone the repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
|
|
27
|
+
at <https://github.com/data-apis/array-api-extra>.
|
|
28
|
+
- `cd array-api-extra`.
|
|
29
|
+
- [Install Pixi](https://pixi.sh/latest/#installation).
|
|
30
|
+
- To enter a development environment:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
pixi shell -e dev
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- To run the tests:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pixi run tests
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- To build the docs locally:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
pixi run docs
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- To open and preview the locally-built docs:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
pixi run open-docs
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- To install a [pre-commit](https://pre-commit.com) hook:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
pixi run pre-commit-install
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- To run the lint suite:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
pixi run lint
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- To enter an interactive Python prompt:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
pixi run ipython
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- To run individual parts of the lint suite separately:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
pixi run pre-commit
|
|
76
|
+
pixi run pylint
|
|
77
|
+
pixi run mypy
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Alternative environments are available with a subset of the dependencies and
|
|
81
|
+
tasks available in the `dev` environment:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
pixi shell -e docs
|
|
85
|
+
pixi shell -e tests
|
|
86
|
+
pixi shell -e lint
|
|
87
|
+
```
|