|
5 | 5 | [tox]
|
6 | 6 | requires =
|
7 | 7 | tox>=4
|
| 8 | + tox-uv |
8 | 9 | envlist =
|
9 | 10 | # No preinstallations
|
10 | 11 | py3{9,10,11,12,13,13t}-none
|
@@ -71,41 +72,40 @@ set_env =
|
71 | 72 | dev: PIP_ONLY_BINARY=numpy,scipy,h5py
|
72 | 73 | !dev: PIP_ONLY_BINARY=numpy,scipy,h5py,pillow,matplotlib
|
73 | 74 | pre,dev: PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
|
74 |
| - pre,dev: UV_INDEX=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple |
75 |
| -extras = test |
| 75 | + pre,dev: UV_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple |
| 76 | + py313t: PYTHONGIL=0 |
| 77 | +extras = |
| 78 | + test |
| 79 | + |
| 80 | + # Simple, thanks pillow |
| 81 | + !none: dicomfs |
| 82 | + !none: indexed_gzip |
| 83 | + |
| 84 | + # Matplotlib has wheels for everything except win32 (x86) |
| 85 | + {min,full,pre,dev}-{x,arm}64: viewers |
| 86 | + |
| 87 | + # Nightly, but not released cp313t wheels for: scipy |
| 88 | + # When released, remove the py3* line and add min/full to the pre,dev line |
| 89 | + py3{9,10,11,12,13}-{min,full}-{x,arm}64: spm |
| 90 | + {pre,dev}-{x,arm}64: spm |
| 91 | + |
| 92 | + # No cp313t wheels for: h5py, pyzstd |
| 93 | + py3{9,10,11,12,13}-{min,full,pre-dev}-{x,arm}64: minc2 |
| 94 | + py3{9,10,11,12,13}-{min,full,pre-dev}-{x,arm}64: zstd |
| 95 | + |
| 96 | + # No win32 wheels for scipy/matplotlib after py39 |
| 97 | + py39-full-x86: spm |
| 98 | + py39-full-x86: viewers |
| 99 | + |
76 | 100 | deps =
|
77 |
| - # General minimum dependencies: pin based on API usage |
78 |
| - # matplotlib 3.5 requires packaging 20 |
79 |
| - min: packaging ==20 |
80 |
| - min: importlib_resources ==5.12; python_version < '3.12' |
81 |
| - min: typing_extensions ==4.6; python_version < '3.13' |
82 |
| - # NEP29/SPEC0 + 1yr: Test on minor release series within the last 3 years |
83 |
| - # We're extending this to all optional dependencies |
84 |
| - # This only affects the range that we test on; numpy is the only non-optional |
85 |
| - # dependency, and will be the only one to affect pip environment resolution. |
86 |
| - min: numpy ==1.22 |
87 |
| - min: h5py ==3.5 |
88 |
| - min: indexed_gzip ==1.6 |
89 |
| - min: matplotlib ==3.5 |
90 |
| - min: pillow ==8.4 |
91 |
| - min: pydicom ==2.3 |
92 |
| - min: pyzstd ==0.15.2 |
93 |
| - min: scipy ==1.8 |
94 | 101 | # Numpy 2.0 is a major breaking release; we cannot put much effort into
|
95 | 102 | # supporting until it's at least RC stable
|
96 | 103 | dev: numpy >=2.1.dev0
|
97 |
| - # Scipy stopped producing win32 wheels at py310 |
98 |
| - py39-full-x86,x64,arm64: scipy >=1.8 |
99 |
| - # Matplotlib depends on scipy, so cannot be built for py310 on x86 |
100 |
| - py39-full-x86,x64,arm64: matplotlib >=3.5 |
101 |
| - # h5py stopped producing win32 wheels at py39 |
102 |
| - {full,pre}-{x64,arm64}: h5py >=3.5 |
103 |
| - full,pre,dev: pillow >=8.4 |
104 |
| - full,pre: indexed_gzip >=1.6 |
105 |
| - full,pre,dev: pyzstd >=0.15.2 |
106 |
| - full,pre: pydicom >=2.3 |
107 | 104 | dev: pydicom @ git+https://github.com/pydicom/pydicom.git@main
|
108 | 105 |
|
| 106 | +uv_resolution = |
| 107 | + min: lowest-direct |
| 108 | + |
109 | 109 | commands =
|
110 | 110 | pytest --doctest-modules --doctest-plus \
|
111 | 111 | --cov nibabel --cov-report xml:cov.xml \
|
|
0 commit comments