Skip to content

Commit 87319fe

Browse files
authored
MNT: Drop Python 3.8, update dependencies (#896)
* MNT: Drop Python 3.8 support * Drop traits constraint * Bump dependencies
1 parent 5882de7 commit 87319fe

File tree

4 files changed

+119
-65
lines changed

4 files changed

+119
-65
lines changed

.github/workflows/pythonpackage.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,14 +122,14 @@ jobs:
122122
runs-on: ubuntu-latest
123123
strategy:
124124
matrix:
125-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
125+
python-version: ["3.9", "3.10", "3.11", "3.12"]
126126
install: [repo]
127127
include:
128-
- python-version: "3.11"
128+
- python-version: "3.12"
129129
install: sdist
130-
- python-version: "3.11"
130+
- python-version: "3.12"
131131
install: wheel
132-
- python-version: "3.11"
132+
- python-version: "3.12"
133133
install: editable
134134

135135
env:
@@ -201,7 +201,8 @@ jobs:
201201
runs-on: ubuntu-latest
202202
strategy:
203203
matrix:
204-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
204+
# Only run --pre tests on Python versions within SPEC0 support
205+
python-version: ["3.11", "3.12"]
205206
install: [repo]
206207
pip-flags: ['--pre']
207208

env.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ dependencies:
1010
- mkl-service=2.4
1111
# Base scientific python stack; required by FSL, so pinned here
1212
- numpy=1.26
13-
- scipy=1.11
14-
- matplotlib=3.8
13+
- scipy=1.14
14+
- matplotlib=3.9
1515
- pandas=2.2
16-
- h5py=3.10
16+
- h5py=3.12
1717
# Dependencies compiled against numpy, best to stick with conda
18-
- scikit-image=0.22
19-
- scikit-learn=1.4
18+
- scikit-image=0.24
19+
- scikit-learn=1.5
2020
# Utilities
2121
- graphviz=9.0
2222
# Workflow dependencies: ANTs

pyproject.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@ dynamic = ["version"]
88
description = "NeuroImaging Workflows provides processing tools for magnetic resonance images of the brain."
99
readme = "README.rst"
1010
license = {file = "LICENSE"}
11-
requires-python = ">= 3.8"
11+
requires-python = ">= 3.9"
1212
authors = [
1313
{ name = "The NiPreps Developers", email = "nipreps@gmail.com" },
1414
]
1515
classifiers = [
1616
"Development Status :: 4 - Beta",
1717
"Intended Audience :: Science/Research",
1818
"License :: OSI Approved :: Apache Software License",
19-
"Programming Language :: Python :: 3.8",
2019
"Programming Language :: Python :: 3.9",
2120
"Programming Language :: Python :: 3.10",
2221
"Programming Language :: Python :: 3.11",
@@ -44,7 +43,6 @@ dependencies = [
4443
"seaborn",
4544
"svgutils >= 0.3.4",
4645
"templateflow >= 0.7.2",
47-
"traits < 6.4",
4846
"transforms3d",
4947
]
5048

requirements.txt

Lines changed: 107 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,111 @@
11
# This file was autogenerated by uv via the following command:
2-
# uv pip compile pyproject.toml -c - -p 3.11 -o requirements.txt
2+
# uv pip compile pyproject.toml -p 3.11 -o requirements.txt
3+
acres==0.1.0
4+
# via niworkflows (pyproject.toml)
35
astor==0.8.1
46
# via formulaic
5-
attrs==23.2.0
6-
bids-validator==1.14.1
7+
attrs==24.2.0
8+
# via
9+
# niworkflows (pyproject.toml)
10+
# jsonschema
11+
# referencing
12+
bids-validator==1.14.7.post0
713
# via pybids
8-
certifi==2024.7.4
14+
bidsschematools==0.11.3
15+
# via bids-validator
16+
certifi==2024.8.30
917
# via requests
10-
charset-normalizer==3.3.2
18+
charset-normalizer==3.4.0
1119
# via requests
1220
ci-info==0.3.0
1321
# via etelemetry
1422
click==8.1.7
1523
# via
24+
# bidsschematools
1625
# nipype
1726
# pybids
18-
contourpy==1.2.0
27+
contourpy==1.3.0
1928
# via matplotlib
2029
cycler==0.12.1
2130
# via matplotlib
2231
docopt==0.6.2
2332
# via num2words
2433
etelemetry==0.3.1
2534
# via nipype
26-
filelock==3.13.1
35+
filelock==3.16.1
2736
# via nipype
28-
fonttools==4.49.0
37+
fonttools==4.54.1
2938
# via matplotlib
3039
formulaic==0.5.2
3140
# via pybids
32-
greenlet==3.0.3
41+
fsspec==2024.10.0
42+
# via universal-pathlib
43+
greenlet==3.1.1
3344
# via sqlalchemy
34-
h5py==3.10.0
45+
h5py==3.12.1
3546
# via nitransforms
36-
idna==3.6
47+
idna==3.10
3748
# via requests
38-
imageio==2.34.0
49+
imageio==2.36.0
3950
# via scikit-image
51+
importlib-resources==6.4.5
52+
# via nibabel
4053
interface-meta==1.3.0
4154
# via formulaic
4255
isodate==0.6.1
4356
# via rdflib
44-
jinja2==3.1.3
45-
joblib==1.3.2
57+
jinja2==3.1.4
58+
# via niworkflows (pyproject.toml)
59+
joblib==1.4.2
4660
# via
4761
# nilearn
4862
# scikit-learn
49-
kiwisolver==1.4.5
63+
jsonschema==4.23.0
64+
# via bidsschematools
65+
jsonschema-specifications==2024.10.1
66+
# via jsonschema
67+
kiwisolver==1.4.7
5068
# via matplotlib
51-
lazy-loader==0.3
69+
lazy-loader==0.4
5270
# via scikit-image
5371
looseversion==1.3.0
54-
# via nipype
55-
lxml==5.1.0
72+
# via
73+
# niworkflows (pyproject.toml)
74+
# nipype
75+
lxml==5.3.0
5676
# via
5777
# nilearn
5878
# prov
5979
# svgutils
60-
markupsafe==2.1.5
80+
markupsafe==3.0.2
6181
# via jinja2
62-
matplotlib==3.8.3
63-
# via seaborn
64-
networkx==3.2.1
82+
matplotlib==3.9.2
83+
# via
84+
# niworkflows (pyproject.toml)
85+
# seaborn
86+
networkx==3.4.2
6587
# via
6688
# nipype
6789
# prov
6890
# scikit-image
69-
nibabel==5.2.1
91+
nibabel==5.3.2
7092
# via
93+
# niworkflows (pyproject.toml)
7194
# nilearn
7295
# nipype
7396
# nitransforms
7497
# pybids
75-
nilearn==0.10.3
76-
nipype==1.8.6
77-
nitransforms==23.0.1
98+
nilearn==0.10.4
99+
# via niworkflows (pyproject.toml)
100+
nipype==1.9.0
101+
# via niworkflows (pyproject.toml)
102+
nitransforms==24.0.2
103+
# via niworkflows (pyproject.toml)
78104
num2words==0.5.13
79105
# via pybids
80106
numpy==1.26.4
81107
# via
108+
# niworkflows (pyproject.toml)
82109
# contourpy
83110
# formulaic
84111
# h5py
@@ -95,32 +122,40 @@ numpy==1.26.4
95122
# scipy
96123
# seaborn
97124
# tifffile
98-
packaging==23.2
125+
# transforms3d
126+
packaging==24.1
99127
# via
128+
# niworkflows (pyproject.toml)
100129
# etelemetry
130+
# lazy-loader
101131
# matplotlib
102132
# nibabel
103133
# nilearn
104134
# nipype
105135
# scikit-image
106-
pandas==2.2.1
136+
pandas==2.2.3
107137
# via
138+
# niworkflows (pyproject.toml)
108139
# formulaic
109140
# nilearn
110141
# pybids
111142
# seaborn
112-
pillow==10.2.0
143+
pillow==11.0.0
113144
# via
114145
# imageio
115146
# matplotlib
116147
# scikit-image
117-
prov==2.0.0
148+
prov==2.0.1
118149
# via nipype
119-
pybids==0.16.4
120-
# via templateflow
121-
pydot==2.0.0
150+
puremagic==1.28
122151
# via nipype
123-
pyparsing==3.1.2
152+
pybids==0.17.2
153+
# via
154+
# niworkflows (pyproject.toml)
155+
# templateflow
156+
pydot==3.0.2
157+
# via nipype
158+
pyparsing==3.2.0
124159
# via
125160
# matplotlib
126161
# pydot
@@ -131,23 +166,36 @@ python-dateutil==2.9.0.post0
131166
# nipype
132167
# pandas
133168
# prov
134-
pytz==2024.1
169+
pytz==2024.2
135170
# via pandas
136-
pyyaml==6.0.1
137-
rdflib==7.0.0
171+
pyyaml==6.0.2
172+
# via
173+
# niworkflows (pyproject.toml)
174+
# bidsschematools
175+
rdflib==6.3.2
138176
# via
139177
# nipype
140178
# prov
141-
requests==2.31.0
179+
referencing==0.35.1
180+
# via
181+
# jsonschema
182+
# jsonschema-specifications
183+
requests==2.32.3
142184
# via
143185
# etelemetry
144186
# nilearn
145187
# templateflow
146-
scikit-image==0.22.0
147-
scikit-learn==1.4.1.post1
188+
rpds-py==0.20.1
189+
# via
190+
# jsonschema
191+
# referencing
192+
scikit-image==0.24.0
193+
# via niworkflows (pyproject.toml)
194+
scikit-learn==1.5.2
148195
# via nilearn
149-
scipy==1.11.4
196+
scipy==1.14.1
150197
# via
198+
# niworkflows (pyproject.toml)
151199
# formulaic
152200
# nilearn
153201
# nipype
@@ -156,32 +204,39 @@ scipy==1.11.4
156204
# scikit-image
157205
# scikit-learn
158206
seaborn==0.13.2
159-
simplejson==3.19.2
207+
# via niworkflows (pyproject.toml)
208+
simplejson==3.19.3
160209
# via nipype
161210
six==1.16.0
162211
# via
163212
# isodate
164213
# python-dateutil
165-
sqlalchemy==2.0.28
214+
sqlalchemy==2.0.36
166215
# via pybids
167216
svgutils==0.3.4
168-
templateflow==24.0.0
169-
threadpoolctl==3.3.0
217+
# via niworkflows (pyproject.toml)
218+
templateflow==24.2.2
219+
# via niworkflows (pyproject.toml)
220+
threadpoolctl==3.5.0
170221
# via scikit-learn
171-
tifffile==2024.2.12
222+
tifffile==2024.9.20
172223
# via scikit-image
173-
tqdm==4.66.2
224+
tqdm==4.66.6
174225
# via templateflow
175-
traits==6.3.2
226+
traits==6.4.3
176227
# via nipype
177-
transforms3d==0.4.1
178-
typing-extensions==4.10.0
228+
transforms3d==0.4.2
229+
# via niworkflows (pyproject.toml)
230+
typing-extensions==4.12.2
179231
# via
180232
# formulaic
233+
# nibabel
181234
# sqlalchemy
182-
tzdata==2024.1
235+
tzdata==2024.2
183236
# via pandas
184-
urllib3==2.2.1
237+
universal-pathlib==0.2.5
238+
# via pybids
239+
urllib3==2.2.3
185240
# via requests
186241
wrapt==1.16.0
187242
# via formulaic

0 commit comments

Comments
 (0)