deprecate Python 3.9
EOL was Oct 31 2025
Checklist
- [x] Did you update CHANGELOG.md with your changes?
- [x] Have you checked our Contributing document?
- [x] Have you ensured the PR clearly describes the problem and the solution?
- [ ] Is your contribution compliant with our coding style? This can be checked running
ruff check . && codespellfrom the source directory. - [ ] Have you checked to ensure that there aren't other open Pull Requests for the same change?
- [ ] Have you included the relevant issue number using "Fix #XXX" notation where XXX is the issue number? By including "Fix #XXX" you allow GitHub to close issue #XXX when the PR is merged.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 94.85%. Comparing base (293af8c) to head (e777f26).
Additional details and impacted files
@@ Coverage Diff @@
## dev #2141 +/- ##
==========================================
- Coverage 95.23% 94.85% -0.39%
==========================================
Files 29 29
Lines 2876 2876
Branches 740 740
==========================================
- Hits 2739 2728 -11
- Misses 83 93 +10
- Partials 54 55 +1
| Flag | Coverage Δ | |
|---|---|---|
| integration | 74.02% <ø> (-0.42%) |
:arrow_down: |
| unit | 84.94% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Thanks for this PR @bendichter ! It looks all good to me. This should be in a minor release. We should also explore adding Python 3.14 support in a separate PR.
We'll make a bugfix release imminently and then do a minor release with this PR deprecating python 3.9 shortly after