iiasa / ixmp

The ix modeling platform for integrated and cross-cutting scenario analysis
https://docs.messageix.org/ixmp
Apache License 2.0
38 stars 112 forks source link

Confirm support for Python 3.13 and drop 3.8 #544

Closed khaeru closed 3 days ago

khaeru commented 2 months ago

Python 3.13 will be released 2024-10-01. This PR is to:

These changes would then be on main and ready for the next release at any time.

How to review

PR checklist

codecov[bot] commented 2 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 98.9%. Comparing base (02c887a) to head (dcf15af). Report is 14 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #544 +/- ## ======================================= - Coverage 98.9% 98.9% -0.1% ======================================= Files 44 44 Lines 4819 4790 -29 ======================================= - Hits 4769 4740 -29 Misses 50 50 ``` | [Files with missing lines](https://app.codecov.io/gh/iiasa/ixmp/pull/544?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa) | Coverage Δ | | |---|---|---| | [ixmp/\_config.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2F_config.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9fY29uZmlnLnB5) | `96.7% <100.0%> (ø)` | | | [ixmp/backend/\_\_init\_\_.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fbackend%2F__init__.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9iYWNrZW5kL19faW5pdF9fLnB5) | `100.0% <100.0%> (ø)` | | | [ixmp/backend/base.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fbackend%2Fbase.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9iYWNrZW5kL2Jhc2UucHk=) | `100.0% <100.0%> (ø)` | | | [ixmp/backend/jdbc.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fbackend%2Fjdbc.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9iYWNrZW5kL2pkYmMucHk=) | `97.2% <100.0%> (ø)` | | | [ixmp/cli.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fcli.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9jbGkucHk=) | `100.0% <100.0%> (ø)` | | | [ixmp/core/platform.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fcore%2Fplatform.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9jb3JlL3BsYXRmb3JtLnB5) | `98.9% <100.0%> (+<0.1%)` | :arrow_up: | | [ixmp/core/scenario.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fcore%2Fscenario.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9jb3JlL3NjZW5hcmlvLnB5) | `99.6% <100.0%> (+<0.1%)` | :arrow_up: | | [ixmp/core/timeseries.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fcore%2Ftimeseries.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9jb3JlL3RpbWVzZXJpZXMucHk=) | `98.6% <100.0%> (+<0.1%)` | :arrow_up: | | [ixmp/model/\_\_init\_\_.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fmodel%2F__init__.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9tb2RlbC9fX2luaXRfXy5weQ==) | `100.0% <100.0%> (ø)` | | | [ixmp/model/base.py](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree&filepath=ixmp%2Fmodel%2Fbase.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa#diff-aXhtcC9tb2RlbC9iYXNlLnB5) | `100.0% <100.0%> (ø)` | | | ... and [11 more](https://app.codecov.io/gh/iiasa/ixmp/pull/544?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=iiasa) | |

🚨 Try these New Features:

khaeru commented 4 days ago

There doesn't appear to be any upstream response in the last 2+ months. One possibility is we switch away from this to an alternative that seems to be maintained. Alternatives I'm aware of include:

IIRC pretenders is also a source of flakiness, so a switch could side-step those issues.

khaeru commented 4 days ago
  • pytest-httpserver —I have not used this, but it shows signs of being actively maintained.

Okay, that was pretty easily done and the tests where it was used are simplified.

glatterf42 commented 3 days ago

Thanks, great news! Especially since the one failed test just failed due to a segfault, so this PR might be complete :)