Update Python support for 3.13
As suggested by @khaeru in #880, we should drop support for the now outdated version 3.8 of Python and add support for the new 3.13. This PR does just that.
Please also see the analogous https://github.com/iiasa/ixmp/pull/544, which details some issues that need to be closed upstream before we can support 3.13.
How to review
- Read the diff and note that the CI checks all pass.
PR checklist
- [ ] Continuous integration checks all ✅
- [x] Update tests; coverage checks both ✅
- [x] Add, expand, or update documentation.
- [ ] Update release notes.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 95.6%. Comparing base (
23388f0) to head (19d20d1). Report is 49 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #881 +/- ##
=====================================
Coverage 95.5% 95.6%
=====================================
Files 46 46
Lines 4340 4335 -5
=====================================
- Hits 4148 4147 -1
+ Misses 192 188 -4
| Files with missing lines | Coverage Δ | |
|---|---|---|
| message_ix/__init__.py | 100.0% <100.0%> (+8.3%) |
:arrow_up: |
| message_ix/core.py | 97.7% <100.0%> (+<0.1%) |
:arrow_up: |
| message_ix/macro.py | 96.7% <100.0%> (+<0.1%) |
:arrow_up: |
| message_ix/models.py | 99.0% <100.0%> (+<0.1%) |
:arrow_up: |
| message_ix/report/__init__.py | 100.0% <100.0%> (ø) |
|
| message_ix/report/operator.py | 97.5% <100.0%> (+<0.1%) |
:arrow_up: |
| message_ix/report/pyam.py | 100.0% <100.0%> (ø) |
|
| message_ix/testing/__init__.py | 99.6% <100.0%> (+<0.1%) |
:arrow_up: |
| message_ix/tests/report/test_operator.py | 100.0% <100.0%> (ø) |
|
| message_ix/tests/test_feature_duration_time.py | 100.0% <100.0%> (ø) |
|
| ... and 6 more |
Rebased with the completion of #544. If there are no obstacles, we can update this with parallel improvements to the others made on that branch.
Thanks for finishing this, I don't think we need to discuss any commits here :) Happy to merge this if you are :)
Please do the honours 🚀