Description:
SPEC 0 recommends dropping Python 3.12 and several core dependency versions in 2026 Q4. This issue tracks that bump for scikit-image and the code cleanups it unlocks.
Raise Python floor to 3.13
Dependency floors (SPEC 0 2026 Q4)
| Package |
Current |
New |
SPEC 0 drop |
| numpy |
>=2.1 |
>=2.3 |
2.2.0 (Dec 2024) |
| networkx |
>=3.0 |
>=3.5 |
3.4 (Oct 2024) |
| scikit-learn |
>=1.6 |
>=1.7 |
1.6.0 (Dec 2024) |
| scipy (emscripten) |
>=1.14 |
>=1.15 |
align with the non-emscripten pin |
Code cleanups unlocked by the 3.13 floor
Follow-up: adopt new stdlib
from warnings import deprecated
@deprecated("Use Spam instead")
class Ham: ...
Description:
SPEC 0 recommends dropping Python 3.12 and several core dependency versions in 2026 Q4. This issue tracks that bump for scikit-image and the code cleanups it unlocks.
Raise Python floor to 3.13
pyproject.toml:requires-python = '>=3.13'Programming Language :: Python :: 3.12classifierspin/ tooling configDependency floors (SPEC 0 2026 Q4)
>=2.1>=2.3>=3.0>=3.5>=1.6>=1.7>=1.14>=1.15pyproject.tomland regeneraterequirements/*.txtwithtools/generate_requirements.pynumpy>=2.3, remove anynp.__version__guards for pre-2.3 behaviorCode cleanups unlocked by the 3.13 floor
src/_skimage2/_shared/utils.py(~L722): drop thesys.version_info[:2] < (3, 13)branch; keep the un-indented.. deprecated::notesrc/_skimage2/measure/_regionprops.py(~L1481): keep only the>= (3, 13)doc-parse regex; drop the fallbacktests/skimage2/_shared/test_utils.py(~L227): inline theinspect.cleandoc-adjusted expected docstring; drop the version checksrc/_skimage2/_shared/utils.py(~L794): remove thesys.version < '3'Python 2 branchFollow-up: adopt new stdlib
deprecate_func(src/_skimage2/_shared/utils.py) with the stdlibwarnings.deprecateddecorator (PEP 702). Example: