Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 85b4e02

Browse filesBrowse files
QuLogicandfoy
andcommitted
CI: Add CI to test matplotlib against free-threaded Python
Co-authored-by: Edgar Andrés Margffoy Tuay <andfoy@gmail.com>
1 parent 5c8012d commit 85b4e02
Copy full SHA for 85b4e02

File tree

Expand file treeCollapse file tree

1 file changed

+35
-0
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+35
-0
lines changed

‎.github/workflows/tests.yml

Copy file name to clipboardExpand all lines: .github/workflows/tests.yml
+35Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,13 @@ jobs:
9191
pyqt6-ver: '!=6.6.0'
9292
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
9393
pyside6-ver: '!=6.5.1'
94+
- name-suffix: "Free-threaded"
95+
os: ubuntu-22.04
96+
python-version: '3.13t'
97+
# https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html
98+
pyqt6-ver: '!=6.6.0'
99+
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
100+
pyside6-ver: '!=6.5.1'
94101
- os: macos-12 # This runner is on Intel chips.
95102
python-version: '3.10'
96103
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
@@ -111,10 +118,18 @@ jobs:
111118

112119
- name: Set up Python ${{ matrix.python-version }}
113120
uses: actions/setup-python@v5
121+
if: matrix.python-version != '3.13t'
114122
with:
115123
python-version: ${{ matrix.python-version }}
116124
allow-prereleases: true
117125

126+
- name: Set up Python ${{ matrix.python-version }}
127+
uses: deadsnakes/action@6c8b9b82fe0b4344f4b98f2775fcc395df45e494 # v3.1.0
128+
if: matrix.python-version == '3.13t'
129+
with:
130+
python-version: '3.13'
131+
nogil: true
132+
118133
- name: Install OS dependencies
119134
run: |
120135
case "${{ runner.os }}" in
@@ -160,6 +175,11 @@ jobs:
160175
texlive-luatex \
161176
texlive-pictures \
162177
texlive-xetex
178+
if [[ "${{ matrix.python-version }}" = '3.13t' ]]; then
179+
# TODO: Remove this once setup-python supports nogil distributions.
180+
sudo apt-get install -yy --no-install-recommends \
181+
python3.13-tk-nogil
182+
fi
163183
if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
164184
sudo apt-get install -yy --no-install-recommends libopengl0
165185
else # ubuntu-22.04
@@ -216,6 +236,15 @@ jobs:
216236
4-${{ runner.os }}-py${{ matrix.python-version }}-mpl-${{ github.ref }}-
217237
4-${{ runner.os }}-py${{ matrix.python-version }}-mpl-
218238
239+
- name: Install the nightly dependencies
240+
if: matrix.python-version == '3.13t'
241+
run: |
242+
python -m pip install pytz tzdata python-dateutil # Must be installed for Pandas.
243+
python -m pip install \
244+
--pre \
245+
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
246+
--upgrade --only-binary=:all: numpy pandas pillow contourpy
247+
219248
- name: Install Python dependencies
220249
run: |
221250
# Upgrade pip and setuptools and wheel to get as clean an install as
@@ -241,6 +270,7 @@ jobs:
241270
# Sphinx is needed to run sphinxext tests
242271
python -m pip install --upgrade sphinx!=6.1.2
243272
273+
if [[ "${{ matrix.python-version }}" != '3.13t' ]]; then
244274
# GUI toolkits are pip-installable only for some versions of Python
245275
# so don't fail if we can't install them. Make it easier to check
246276
# whether the install was successful by trying to import the toolkit
@@ -286,6 +316,8 @@ jobs:
286316
echo 'wxPython is available' ||
287317
echo 'wxPython is not available'
288318
319+
fi # Skip backends on Python 3.13t.
320+
289321
- name: Install the nightly dependencies
290322
# Only install the nightly dependencies during the scheduled event
291323
if: github.event_name == 'schedule' && matrix.name-suffix != '(Minimum Versions)'
@@ -324,6 +356,9 @@ jobs:
324356

325357
- name: Run pytest
326358
run: |
359+
if [[ "${{ matrix.python-version }}" == '3.13t' ]]; then
360+
export PYTHON_GIL=0
361+
fi
327362
pytest -rfEsXR -n auto \
328363
--maxfail=50 --timeout=300 --durations=25 \
329364
--cov-report=xml --cov=lib --log-level=DEBUG --color=yes

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.