Skip to content

Commit 38d4d56

Browse files
committed
Drop Python 3.9; Test on Python 3.13; drop NumPy 1.21; skip CUDA install
1 parent 3e5fdc0 commit 38d4d56

18 files changed

+98
-89
lines changed

.github/workflows/array-api-tests-dask.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ jobs:
77
uses: ./.github/workflows/array-api-tests.yml
88
with:
99
package-name: dask
10-
package-version: '>= 2024.9.0'
1110
module-name: dask.array
1211
extra-requires: numpy
1312
# Dask is substantially slower then other libraries on unit tests.
@@ -16,3 +15,4 @@ jobs:
1615
# flakiness. Before changes to dask-xfails.txt or dask-skips.txt, please run
1716
# the full test suite with at least 200 examples.
1817
pytest-extra-args: --max-examples=5
18+
python-versions: '[''3.10'', ''3.13'']'

.github/workflows/array-api-tests-numpy-1-21.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Array API Tests (NumPy 1.22)
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
array-api-tests-numpy-1-22:
7+
uses: ./.github/workflows/array-api-tests.yml
8+
with:
9+
package-name: numpy
10+
package-version: '== 1.22.*'
11+
xfails-file-extra: '-1-22'
12+
python-versions: '[''3.10'']'

.github/workflows/array-api-tests-numpy-1-26.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ jobs:
99
package-name: numpy
1010
package-version: '== 1.26.*'
1111
xfails-file-extra: '-1-26'
12+
python-versions: '[''3.10'', ''3.12'']'

.github/workflows/array-api-tests-numpy-dev.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ jobs:
99
package-name: numpy
1010
extra-requires: '--pre --extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple'
1111
xfails-file-extra: '-dev'
12+
python-versions: '[''3.11'', ''3.13'']'
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Array API Tests (NumPy Latest)
1+
name: Array API Tests (NumPy latest)
22

33
on: [push, pull_request]
44

@@ -7,3 +7,4 @@ jobs:
77
uses: ./.github/workflows/array-api-tests.yml
88
with:
99
package-name: numpy
10+
python-versions: '[''3.10'', ''3.13'']'
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Array API Tests (PyTorch Latest)
1+
name: Array API Tests (PyTorch CPU)
22

33
on: [push, pull_request]
44

@@ -7,5 +7,7 @@ jobs:
77
uses: ./.github/workflows/array-api-tests.yml
88
with:
99
package-name: torch
10+
extra-requires: '--index-url https://download.pytorch.org/whl/cpu'
1011
extra-env-vars: |
1112
ARRAY_API_TESTS_SKIP_DTYPES=uint16,uint32,uint64
13+
python-versions: '[''3.10'', ''3.13'']'

.github/workflows/array-api-tests.yml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ on:
1616
required: false
1717
type: string
1818
default: '>= 0'
19+
python-versions:
20+
required: true
21+
type: string
22+
description: JSON array of Python versions to test against.
1923
pytest-extra-args:
2024
required: false
2125
type: string
@@ -30,7 +34,7 @@ on:
3034
extra-env-vars:
3135
required: false
3236
type: string
33-
description: "Multiline string of environment variables to set for the test run."
37+
description: Multiline string of environment variables to set for the test run.
3438

3539
env:
3640
PYTEST_ARGS: "--max-examples 200 -v -rxXfE --ci ${{ inputs.pytest-extra-args }} --hypothesis-disable-deadline --durations 10"
@@ -40,40 +44,42 @@ jobs:
4044
runs-on: ubuntu-latest
4145
strategy:
4246
matrix:
43-
# Min version of dask we need dropped support for Python 3.9
44-
# There is no numpy git tip for Python 3.9 or 3.10
45-
python-version: ${{ (inputs.package-name == 'dask' && fromJson('[''3.10'', ''3.11'', ''3.12'']')) || (inputs.package-name == 'numpy' && inputs.xfails-file-extra == '-dev' && fromJson('[''3.11'', ''3.12'']')) || fromJson('[''3.9'', ''3.10'', ''3.11'', ''3.12'']') }}
47+
python-version: ${{ fromJson(inputs.python-versions) }}
4648

4749
steps:
4850
- name: Checkout array-api-compat
4951
uses: actions/checkout@v4
5052
with:
5153
path: array-api-compat
54+
5255
- name: Checkout array-api-tests
5356
uses: actions/checkout@v4
5457
with:
5558
repository: data-apis/array-api-tests
5659
submodules: 'true'
5760
path: array-api-tests
61+
5862
- name: Set up Python ${{ matrix.python-version }}
5963
uses: actions/setup-python@v5
6064
with:
6165
python-version: ${{ matrix.python-version }}
66+
6267
- name: Set Extra Environment Variables
6368
# Set additional environment variables if provided
6469
if: inputs.extra-env-vars
6570
run: |
6671
echo "${{ inputs.extra-env-vars }}" >> $GITHUB_ENV
72+
6773
- name: Install dependencies
68-
# NumPy 1.21 doesn't support Python 3.11. There doesn't seem to be a way
69-
# to put this in the numpy 1.21 config file.
70-
if: "! ((matrix.python-version == '3.11' || matrix.python-version == '3.12') && inputs.package-name == 'numpy' && contains(inputs.package-version, '1.21'))"
7174
run: |
7275
python -m pip install --upgrade pip
7376
python -m pip install '${{ inputs.package-name }} ${{ inputs.package-version }}' ${{ inputs.extra-requires }}
7477
python -m pip install -r ${GITHUB_WORKSPACE}/array-api-tests/requirements.txt
78+
79+
- name: Dump pip environment
80+
run: pip freeze
81+
7582
- name: Run the array API testsuite (${{ inputs.package-name }})
76-
if: "! ((matrix.python-version == '3.11' || matrix.python-version == '3.12') && inputs.package-name == 'numpy' && contains(inputs.package-version, '1.21'))"
7783
env:
7884
ARRAY_API_TESTS_MODULE: array_api_compat.${{ inputs.module-name || inputs.package-name }}
7985
ARRAY_API_TESTS_VERSION: 2024.12

.github/workflows/tests.yml

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,23 @@ jobs:
55
runs-on: ubuntu-latest
66
strategy:
77
matrix:
8-
python-version: ['3.9', '3.10', '3.11', '3.12']
9-
numpy-version: ['1.21', '1.26', '2.0', 'dev']
10-
exclude:
11-
- python-version: '3.11'
12-
numpy-version: '1.21'
13-
- python-version: '3.12'
14-
numpy-version: '1.21'
15-
fail-fast: true
8+
include:
9+
- numpy-version: '1.22'
10+
python-version: '3.10'
11+
- numpy-version: '1.26'
12+
python-version: '3.10'
13+
- numpy-version: '1.26'
14+
python-version: '3.12'
15+
- numpy-version: 'latest'
16+
python-version: '3.10'
17+
- numpy-version: 'latest'
18+
python-version: '3.13'
19+
- numpy-version: 'dev'
20+
python-version: '3.11'
21+
- numpy-version: 'dev'
22+
python-version: '3.13'
23+
24+
fail-fast: false
1625
steps:
1726
- uses: actions/checkout@v4
1827
- uses: actions/setup-python@v5
@@ -21,22 +30,29 @@ jobs:
2130
- name: Install Dependencies
2231
run: |
2332
python -m pip install --upgrade pip
33+
python -m pip install pytest
34+
2435
if [ "${{ matrix.numpy-version }}" == "dev" ]; then
25-
PIP_EXTRA='numpy --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple'
26-
elif [ "${{ matrix.numpy-version }}" == "1.21" ]; then
27-
PIP_EXTRA='numpy==1.21.*'
36+
python -m pip install numpy --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
37+
elif [ "${{ matrix.numpy-version }}" == "1.22" ]; then
38+
python -m pip install 'numpy==1.22.*'
39+
elif [ "${{ matrix.numpy-version }}" == "1.26" ]; then
40+
python -m pip install 'numpy==1.26.*'
2841
else
29-
PIP_EXTRA='numpy==1.26.*'
42+
# Don't `pip install .[dev]` as it would pull in the whole torch cuda stack
43+
python -m pip install array-api-strict dask[array] jax[cpu] numpy sparse
44+
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
45+
if [ "${{ matrix.python-version }}" != "3.13" ]; then
46+
# onnx wheels are not available on Python 3.13 at the moment of writing
47+
python -m pip install ndonnx
48+
fi
3049
fi
3150
32-
python -m pip install .[dev] $PIP_EXTRA
51+
- name: Dump pip environment
52+
run: pip freeze
3353

34-
- name: Run Tests
35-
run: |
36-
if [[ "${{ matrix.numpy-version }}" == "1.21" || "${{ matrix.numpy-version }}" == "dev" ]]; then
37-
PYTEST_EXTRA=(-k "numpy and not jax and not torch and not dask and not sparse")
38-
fi
39-
pytest -v "${PYTEST_EXTRA[@]}"
54+
- name: Test it installs
55+
run: python -m pip install .
4056

41-
# Make sure it installs
42-
python -m pip install .
57+
- name: Run Tests
58+
run: pytest -v

array_api_compat/cupy/_typing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from cupy.cuda.device import Device
1111

1212
if TYPE_CHECKING:
13-
# NumPy 1.x on Python 3.9 and 3.10 fails to parse np.dtype[]
13+
# NumPy 1.x on Python 3.10 fails to parse np.dtype[]
1414
DType = cp.dtype[
1515
cp.intp
1616
| cp.int8

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy