Skip to content

Commit bff3bf4

Browse files
authored
Drop Python 3.9; test on Python 3.13; drop NumPy 1.21; skip CUDA install (#304)
reviewed at #304
1 parent 3e5fdc0 commit bff3bf4

23 files changed

+114
-185
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: 15 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"
@@ -39,41 +43,44 @@ jobs:
3943
tests:
4044
runs-on: ubuntu-latest
4145
strategy:
46+
fail-fast: false
4247
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'']') }}
48+
python-version: ${{ fromJson(inputs.python-versions) }}
4649

4750
steps:
4851
- name: Checkout array-api-compat
4952
uses: actions/checkout@v4
5053
with:
5154
path: array-api-compat
55+
5256
- name: Checkout array-api-tests
5357
uses: actions/checkout@v4
5458
with:
5559
repository: data-apis/array-api-tests
5660
submodules: 'true'
5761
path: array-api-tests
62+
5863
- name: Set up Python ${{ matrix.python-version }}
5964
uses: actions/setup-python@v5
6065
with:
6166
python-version: ${{ matrix.python-version }}
67+
6268
- name: Set Extra Environment Variables
6369
# Set additional environment variables if provided
6470
if: inputs.extra-env-vars
6571
run: |
6672
echo "${{ inputs.extra-env-vars }}" >> $GITHUB_ENV
73+
6774
- 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'))"
7175
run: |
7276
python -m pip install --upgrade pip
7377
python -m pip install '${{ inputs.package-name }} ${{ inputs.package-version }}' ${{ inputs.extra-requires }}
7478
python -m pip install -r ${GITHUB_WORKSPACE}/array-api-tests/requirements.txt
79+
80+
- name: Dump pip environment
81+
run: pip freeze
82+
7583
- 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'))"
7784
env:
7885
ARRAY_API_TESTS_MODULE: array_api_compat.${{ inputs.module-name || inputs.package-name }}
7986
ARRAY_API_TESTS_VERSION: 2024.12

.github/workflows/tests.yml

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,24 @@ jobs:
44
tests:
55
runs-on: ubuntu-latest
66
strategy:
7+
fail-fast: false
78
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
9+
include:
10+
- numpy-version: '1.22'
11+
python-version: '3.10'
12+
- numpy-version: '1.26'
13+
python-version: '3.10'
14+
- numpy-version: '1.26'
15+
python-version: '3.12'
16+
- numpy-version: 'latest'
17+
python-version: '3.10'
18+
- numpy-version: 'latest'
19+
python-version: '3.13'
20+
- numpy-version: 'dev'
21+
python-version: '3.11'
22+
- numpy-version: 'dev'
23+
python-version: '3.13'
24+
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