Skip to content

Commit cd47a09

Browse files
authored
Merge branch 'master' into free_threaded
2 parents 6695eb2 + 673962f commit cd47a09

File tree

8 files changed

+296
-1259
lines changed

8 files changed

+296
-1259
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -205,41 +205,21 @@ jobs:
205205
with:
206206
submodules: recursive
207207
fetch-depth: 0
208-
- name: Install the latest version of uv
208+
- name: Setup uv and Python ${{ matrix.python-version }}
209209
uses: astral-sh/setup-uv@v7
210-
- name: Set up Python ${{ matrix.python-version }}
211-
if: "!endsWith(matrix.python-version, 't')"
210+
with:
211+
python-version: ${{ matrix.python-version }}
212+
activate-environment: ${{ matrix.architecture != 'x86' }}
213+
- name: Setup 32-bit Python ${{ matrix.python-version }}
214+
if: matrix.architecture == 'x86'
212215
uses: actions/setup-python@v6
213216
with:
214217
python-version: ${{ matrix.python-version }}
215218
architecture: ${{ matrix.architecture }}
216-
allow-prereleases: true
217-
- name: Set up Python ${{ matrix.python-version }}
218-
if: endsWith(matrix.python-version, 't')
219-
run: |
220-
echo "UV_PYTHON=${IMPL}-${VERSION}-${OS%-*}-${ARCH}-${LIBC}" >> $GITHUB_ENV
221-
source $GITHUB_ENV
222-
uv python install $UV_PYTHON
223-
env:
224-
IMPL: cpython
225-
VERSION: ${{ matrix.python-version }}
226-
# uv expects linux|macos|windows, we can drop the -* but need to rename ubuntu
227-
OS: ${{ matrix.os == 'ubuntu-latest' && 'linux' ||
228-
startsWith(matrix.os, 'macos') && 'macos' ||
229-
matrix.os }}
230-
# uv expects x86, x86_64, aarch64 (among others)
231-
ARCH: ${{ matrix.architecture == 'x64' && 'x86_64' ||
232-
matrix.architecture == 'arm64' && 'aarch64' ||
233-
matrix.architecture }}
234-
# windows and macos have no options, gnu is the only option for the archs
235-
LIBC: ${{ matrix.os == 'ubuntu-latest' && 'gnu' || 'none' }}
236219
- name: Display Python version
237220
run: python -c "import sys; print(sys.version)"
238221
- name: Install tox
239-
run: |
240-
uv tool install -v tox \
241-
--with=tox-uv \
242-
--with=git+https://github.com/effigies/tox-gh-actions@abiflags
222+
run: uv tool install -v tox --with=tox-uv --with=tox-gh-actions
243223
- name: Show tox config
244224
run: tox c
245225
- name: Setup test suite

.zenodo.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,10 @@
402402
},
403403
{
404404
"name": "freec84"
405+
},
406+
{
407+
"name": "Ayala, Leonardo",
408+
"orcid": "0000-0002-3574-2085"
405409
}
406410
],
407411
"keywords": [

doc/source/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ contributed code and discussion (in rough order of appearance):
133133
* Guillaume Becq
134134
* Joshua Newton
135135
* Sandro from the Fedora Project
136+
* `Leonardo Ayala`_
136137

137138
License reprise
138139
===============

doc/source/links_names.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@
250250
.. _Nolan Nichols: http://www.nolan-nichols.com
251251
.. _Satrajit Ghosh: http://satra.cogitatum.org
252252
.. _Chris Rorden: http://www.mccauslandcenter.sc.edu/crnl/chris-rorden
253+
.. _Leonardo Ayala: https://leoyala.github.io/
253254

254255
.. Substitutions
255256
.. |emdash| unicode:: U+02014

nibabel/pydicom_compat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from __future__ import annotations
2424

2525
import warnings
26-
from typing import Callable
26+
from collections.abc import Callable
2727

2828
from .deprecated import deprecate_with_version
2929
from .optpkg import optional_package

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ authors = [{ name = "NiBabel developers", email = "neuroimaging@python.org" }]
99
maintainers = [{ name = "Christopher Markiewicz" }]
1010
readme = "README.rst"
1111
license = "MIT"
12-
requires-python = ">=3.9"
12+
requires-python = ">=3.10"
1313
dependencies = [
1414
"numpy >=1.25",
1515
"packaging >=20",
@@ -22,7 +22,6 @@ classifiers = [
2222
"Intended Audience :: Science/Research",
2323
"Operating System :: OS Independent",
2424
"Programming Language :: Python",
25-
"Programming Language :: Python :: 3.9",
2625
"Programming Language :: Python :: 3.10",
2726
"Programming Language :: Python :: 3.11",
2827
"Programming Language :: Python :: 3.12",

tox.ini

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ requires =
88
tox-uv
99
envlist =
1010
# No preinstallations
11-
py3{9,10,11,12,13,13t}-none
11+
py3{10-12}-none
12+
py3{13-14}{,t}-none
1213
# Minimum Python with minimum deps
13-
py3{9,10}-min
14+
py310-min
1415
# Run full and pre dependencies against all archs
15-
py3{9,10,11,12,13,13t}-{full,pre}-{x86,x64,arm64}
16+
py3{10-12}-{full,pre}-{x86,x64,arm64}
17+
py3{13-14}{,t}-{full,pre}-{x86,x64,arm64}
1618
# Python development versions
17-
py3{14,14t}-pre-{x64,arm64}
19+
py315{,t}-pre-{x64,arm64}
1820
install
1921
doctest
2022
style
@@ -24,7 +26,6 @@ skip_missing_interpreters = true
2426
# Configuration that allows us to split tests across GitHub runners effectively
2527
[gh-actions]
2628
python =
27-
3.9: py39
2829
3.10: py310
2930
3.11: py311
3031
3.12: py312
@@ -37,7 +38,7 @@ python =
3738
DEPENDS =
3839
none: none
3940
pre: pre
40-
full: full, install
41+
full: full
4142
min: min
4243

4344
ARCH =
@@ -64,13 +65,11 @@ pass_env =
6465
NO_COLOR
6566
CLICOLOR
6667
CLICOLOR_FORCE
67-
# uv needs help in this case
68-
py313t-x86: UV_PYTHON
6968
set_env =
7069
pre: PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
7170
pre: UV_INDEX=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
7271
pre: UV_INDEX_STRATEGY=unsafe-best-match
73-
py3{13,14}t: PYTHONGIL={env:PYTHONGIL:0}
72+
py3{13-15}t: PYTHONGIL={env:PYTHONGIL:0}
7473
extras =
7574
test
7675

@@ -90,11 +89,8 @@ extras =
9089
{full,pre}-{x,arm}64: spm
9190

9291
# No free-threaded wheels for: h5py
93-
py3{9,10,11,12,13}-{full,pre}-{x,arm}64: minc2
94-
py314-pre-{x,arm}64: minc2
95-
96-
# win32 (x86) wheels still exist for scipy+py39
97-
py39-full-x86: spm
92+
py3{10-14}-{full,pre}-{x,arm}64: minc2
93+
py315-pre-{x,arm}64: minc2
9894

9995
deps =
10096
pre: pydicom @ git+https://github.com/pydicom/pydicom.git@main
@@ -109,7 +105,7 @@ commands =
109105
--durations=20 --durations-min=1.0 \
110106
--pyargs nibabel {posargs:-n auto}
111107

112-
[testenv:py3{9,10,11,12,13,13t,14,14t}-{full,none}-{x,arm}64]
108+
[testenv:py3{10-15}{,t}-{full,none}-{x,arm}64]
113109
runner = uv-venv-lock-runner
114110

115111
[testenv:install]

0 commit comments

Comments
 (0)