Skip to content

Commit 1111918

Browse files
Fix Python 3.9 compatibility: CI environment names (#2630)
* Replace TypeAlias import from typing with typing_extensions for compatibility * Update tox environment names for Python 3.12 and adjust coverage report renaming logic * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Specify bash as the shell for tox commands in CI configuration --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 570f602 commit 1111918

2 files changed

Lines changed: 57 additions & 36 deletions

File tree

.github/workflows/test.yaml

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,20 @@ jobs:
2525
os: [ubuntu-24.04, windows-latest, macos-latest]
2626
tox_env: ['']
2727
include:
28-
- tox_env: py3.12-black24-parallel
29-
name: py3.12-black24
30-
- tox_env: py3.12-black23-parallel
31-
name: py3.12-black23
32-
- tox_env: py3.12-black22-parallel
33-
name: py3.12-black22
34-
- tox_env: py3.12-isort7-parallel
35-
name: py3.12-isort7
36-
- tox_env: py3.12-isort6-parallel
37-
name: py3.12-isort6
38-
- tox_env: py3.12-isort5-parallel
39-
name: py3.12-isort5
40-
- tox_env: py3.12-pydantic1-parallel
41-
name: py3.12-pydantic1
28+
- tox_env: py312-black24-parallel
29+
name: py312-black24
30+
- tox_env: py312-black23-parallel
31+
name: py312-black23
32+
- tox_env: py312-black22-parallel
33+
name: py312-black22
34+
- tox_env: py312-isort7-parallel
35+
name: py312-isort7
36+
- tox_env: py312-isort6-parallel
37+
name: py312-isort6
38+
- tox_env: py312-isort5-parallel
39+
name: py312-isort5
40+
- tox_env: py312-pydantic1-parallel
41+
name: py312-pydantic1
4242
runs-on: ${{ matrix.os == '' && 'ubuntu-24.04' || matrix.os }}
4343
env:
4444
OS: ${{ matrix.os == '' && 'ubuntu-24.04' || matrix.os}}
@@ -54,18 +54,39 @@ jobs:
5454
- name: Install tox
5555
run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
5656
- name: Setup Python test environment
57-
run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.py && format('{0}-parallel', matrix.py) || matrix.tox_env }}
57+
run: |
58+
if [ -n "${{ matrix.py }}" ]; then
59+
TOX_ENV="py${{ matrix.py }}-parallel"
60+
TOX_ENV="${TOX_ENV//.}"
61+
else
62+
TOX_ENV="${{ matrix.tox_env }}"
63+
fi
64+
tox run -vv --notest --skip-missing-interpreters false -e $TOX_ENV
65+
shell: bash
5866
env:
5967
UV_PYTHON_PREFERENCE: "only-managed"
6068
- name: Run test suite
61-
run: tox run --skip-uv-sync --skip-pkg-install -e ${{ matrix.py && format('{0}-parallel', matrix.py) || matrix.tox_env }}
69+
run: |
70+
if [ -n "${{ matrix.py }}" ]; then
71+
TOX_ENV="py${{ matrix.py }}-parallel"
72+
TOX_ENV="${TOX_ENV//.}"
73+
else
74+
TOX_ENV="${{ matrix.tox_env }}"
75+
fi
76+
tox run --skip-uv-sync --skip-pkg-install -e $TOX_ENV
77+
shell: bash
6278
env:
6379
UV_PYTHON_PREFERENCE: "only-managed"
6480
- name: Rename coverage report file
6581
run: |
6682
import os; import sys
67-
env_name = "${{ matrix.py && format('{0}-parallel', matrix.py) || matrix.tox_env }}"
68-
base_name = "${{ matrix.py || matrix.tox_env }}"
83+
py = "${{ matrix.py }}"
84+
if py:
85+
env_name = f"py{py.replace('.', '')}-parallel"
86+
base_name = py
87+
else:
88+
env_name = "${{ matrix.tox_env }}"
89+
base_name = "${{ matrix.tox_env }}"
6990
os.rename(f".tox/.coverage.{env_name}", f".tox/.coverage.{base_name}-${{ matrix.os }}")
7091
shell: python
7192
- name: Upload coverage data

tox.ini

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ requires =
44
tox-uv>=1.23
55
env_list =
66
fix
7-
3.14-parallel
8-
3.13-parallel
9-
3.12-parallel
10-
3.11-parallel
11-
3.10-parallel
12-
3.9-parallel
13-
py3.12-pydantic1-parallel
7+
py314-parallel
8+
py313-parallel
9+
py312-parallel
10+
py312-pydantic1-parallel
11+
py312-black{24, 23, 22}-parallel
12+
py312-isort{7, 6, 5}-parallel
13+
py311-parallel
14+
py310-parallel
15+
py39-parallel
1416
readme
1517
coverage
16-
py3.12-black{24, 23, 22}-parallel
17-
py3.12-isort{7, 6, 5}-parallel
1818
pkg_meta
1919
skip_missing_interpreters = true
2020

@@ -83,15 +83,15 @@ commands =
8383
coverage html -d {work_dir}/htmlcov
8484
diff-cover --compare-branch {env:DIFF_AGAINST:origin/main} {work_dir}/coverage.xml
8585
depends =
86-
3.14-parallel
87-
3.13-parallel
88-
3.12-parallel
89-
3.11-parallel
90-
3.10-parallel
91-
3.9-parallel
92-
py3.12-pydantic1-parallel
93-
py3.12-black{24, 23, 22}-parallel
94-
py3.12-isort{7, 6, 5}-parallel
86+
py314-parallel
87+
py313-parallel
88+
py312-parallel
89+
py312-pydantic1-parallel
90+
py312-black{24, 23, 22}-parallel
91+
py312-isort{7, 6, 5}-parallel
92+
py311-parallel
93+
py310-parallel
94+
py39-parallel
9595
dependency_groups = coverage
9696

9797
[testenv:pkg_meta]

0 commit comments

Comments
 (0)