Repository navigation
Release v4.4.0 — Python 3.9 support restored
4.4.0 - 2026-07-21
- Python 3.9 support restored. Minimum Python is now 3.9 (was 3.10).
- Replace
X | Yin module-level type aliases withUnion[X, Y]/Optional[X]. - Add
from __future__ import annotationsto_decorator.pysoX | Yin function signatures is not evaluated at runtime. - Add conditional
ParamSpecimport with a runtime stub for Python 3.9. - Unwrap
staticmethodobjects inon_predicateandon_exception(Python 3.9 doesn't allow callingstaticmethodobjects directly, fixed in 3.10+). - Relax
warn_unused_ignores = falsein mypy config to support multiple mypy versions safely. - Regenerate
pdm.lockwith target>=3.9. - Update CI matrix to include Python 3.9.
- Update ruff
target-version = "py39".
Validation: All checks pass on Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14 — ruff, mypy, and 551 tests.