What’s changed
🚀 Enhancements
- Bump default python to 3.12 and add python 3.13 jpbede (492)
🧰 Maintenance
- Make ruff and pytest happy jpbede (561)
- Bump actions/upload-artifact and actions/download-artifact jpbede (563)
- Bump year jpbede (562)
⬆️ Dependency updates
<details>
- ⬆️ Update dependency ruff to v0.6.5 [renovate[bot]](https://github.com/apps/renovate) (#431)
- ⬆️ Update github/codeql-action action to v3.26.7 [renovate[bot]](https://github.com/apps/renovate) (#432)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#433)
- ⬆️ Update github/codeql-action action to v3.26.8 [renovate[bot]](https://github.com/apps/renovate) (#434)
- ⬆️ Update dependency ruff to v0.6.6 [renovate[bot]](https://github.com/apps/renovate) (#436)
- ⬆️ Update actions/setup-node digest to 0a44ba7 [renovate[bot]](https://github.com/apps/renovate) (#435)
- ⬆️ Update dependency pylint to v3.3.0 [renovate[bot]](https://github.com/apps/renovate) (#437)
- ⬆️ Update dependency pytest-httpx to v0.31.0 [renovate[bot]](https://github.com/apps/renovate) (#438)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.10.2 [renovate[bot]](https://github.com/apps/renovate) (#439)
- ⬆️ Update dependency ruff to v0.6.7 [renovate[bot]](https://github.com/apps/renovate) (#440)
- ⬆️ Update dependency pytest-httpx to v0.31.1 [renovate[bot]](https://github.com/apps/renovate) (#441)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#442)
- ⬆️ Update dependency pytest-httpx to v0.31.2 [renovate[bot]](https://github.com/apps/renovate) (#443)
- ⬆️ Update dependency pylint to v3.3.1 [renovate[bot]](https://github.com/apps/renovate) (#444)
- ⬆️ Update github/codeql-action action to v3.26.9 [renovate[bot]](https://github.com/apps/renovate) (#445)
- ⬆️ Update dependency ruff to v0.6.8 [renovate[bot]](https://github.com/apps/renovate) (#447)
- ⬆️ Update actions/checkout action to v4.2.0 [renovate[bot]](https://github.com/apps/renovate) (#446)
- ⬆️ Update dependency pytest-httpx to v0.32.0 [renovate[bot]](https://github.com/apps/renovate) (#448)
- ⬆️ Update dependency safety to v3.2.8 [renovate[bot]](https://github.com/apps/renovate) (#449)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#450)
- ⬆️ Update github/codeql-action action to v3.26.10 [renovate[bot]](https://github.com/apps/renovate) (#451)
- ⬆️ Update dependency node to v20.18.0 [renovate[bot]](https://github.com/apps/renovate) (#452)
- ⬆️ Update github/codeql-action action to v3.26.11 [renovate[bot]](https://github.com/apps/renovate) (#453)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.10.3 [renovate[bot]](https://github.com/apps/renovate) (#454)
- ⬆️ Update dependency ruff to v0.6.9 [renovate[bot]](https://github.com/apps/renovate) (#455)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#458)
- ⬆️ Update actions/checkout action to v4.2.1 [renovate[bot]](https://github.com/apps/renovate) (#459)
- ⬆️ Update github/codeql-action action to v3.26.12 [renovate[bot]](https://github.com/apps/renovate) (#460)
- ⬆️ Update dependency coverage to v7.6.2 [renovate[bot]](https://github.com/apps/renovate) (#461)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#463)
- ⬆️ Update dependency coverage to v7.6.3 [renovate[bot]](https://github.com/apps/renovate) (#462)
- ⬆️ Update github/codeql-action action to v3.26.13 [renovate[bot]](https://github.com/apps/renovate) (#464)
- ⬆️ Update dependency mypy to v1.12.0 [renovate[bot]](https://github.com/apps/renovate) (#465)
- ⬆️ Update dependency pre-commit to v4 [renovate[bot]](https://github.com/apps/renovate) (#456)
- ⬆️ Update dependency pre-commit-hooks to v5 [renovate[bot]](https://github.com/apps/renovate) (#457)
- ⬆️ Update dependency ruff to v0.7.0 [renovate[bot]](https://github.com/apps/renovate) (#466)
- ⬆️ Update dependency orjson to v3.10.9 [renovate[bot]](https://github.com/apps/renovate) (#467)
- ⬆️ Update dependency mypy to v1.12.1 [renovate[bot]](https://github.com/apps/renovate) (#468)
- ⬆️ Update dependency coverage to v7.6.4 [renovate[bot]](https://github.com/apps/renovate) (#469)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#470)
- ⬆️ Update dependency orjson to v3.10.10 [renovate[bot]](https://github.com/apps/renovate) (#471)
- ⬆️ Update github/codeql-action action to v3.27.0 [renovate[bot]](https://github.com/apps/renovate) (#472)
- ⬆️ Update dependency mypy to v1.13.0 [renovate[bot]](https://github.com/apps/renovate) (#473)
- ⬆️ Update actions/checkout action to v4.2.2 [renovate[bot]](https://github.com/apps/renovate) (#474)
- ⬆️ Update dependency mashumaro to v3.14 [renovate[bot]](https://github.com/apps/renovate) (#475)
- ⬆️ Update actions/setup-python action to v5.3.0 [renovate[bot]](https://github.com/apps/renovate) (#477)
- ⬆️ Update dependency ruff to v0.7.1 [renovate[bot]](https://github.com/apps/renovate) (#478)
- ⬆️ Update dependency safety to v3.2.9 [renovate[bot]](https://github.com/apps/renovate) (#479)
- ⬆️ Update actions/setup-node digest to 39370e3 [renovate[bot]](https://github.com/apps/renovate) (#476)
- ⬆️ Update dependency safety to v3.2.10 [renovate[bot]](https://github.com/apps/renovate) (#480)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#481)
- ⬆️ Update dependency pytest-httpx to v0.33.0 [renovate[bot]](https://github.com/apps/renovate) (#482)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.11.0 [renovate[bot]](https://github.com/apps/renovate) (#485)
- ⬆️ Update dependency pytest-cov to v6 [renovate[bot]](https://github.com/apps/renovate) (#484)
- ⬆️ Update dependency node to v22 [renovate[bot]](https://github.com/apps/renovate) (#483)
- ⬆️ Update dependency ruff to v0.7.2 [renovate[bot]](https://github.com/apps/renovate) (#486)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#488)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.12.0 [renovate[bot]](https://github.com/apps/renovate) (#489)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.12.2 [renovate[bot]](https://github.com/apps/renovate) (#490)
- ⬆️ Update dependency ruff to v0.7.3 [renovate[bot]](https://github.com/apps/renovate) (#491)
- ⬆️ Update github/codeql-action action to v3.27.1 [renovate[bot]](https://github.com/apps/renovate) (#493)
- Bump default python to 3.12 and add python 3.13 jpbede (492)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#494)
- ⬆️ Update github/codeql-action action to v3.27.3 [renovate[bot]](https://github.com/apps/renovate) (#495)
- ⬆️ Update github/codeql-action action to v3.27.4 [renovate[bot]](https://github.com/apps/renovate) (#496)
- ⬆️ Update dependency coverage to v7.6.5 [renovate[bot]](https://github.com/apps/renovate) (#497)
- ⬆️ Update dependency ruff to v0.7.4 [renovate[bot]](https://github.com/apps/renovate) (#500)
- ⬆️ Update dependency coverage to v7.6.7 [renovate[bot]](https://github.com/apps/renovate) (#499)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#501)
- ⬆️ Update dependency pytest-httpx to v0.34.0 [renovate[bot]](https://github.com/apps/renovate) (#502)
- ⬆️ Update github/codeql-action action to v3.27.5 [renovate[bot]](https://github.com/apps/renovate) (#503)
- ⬆️ Update dependency ruff to v0.8.0 [renovate[bot]](https://github.com/apps/renovate) (#504)
- ⬆️ Update dependency mashumaro to v3.15 [renovate[bot]](https://github.com/apps/renovate) (#505)
- ⬆️ Update dependency orjson to v3.10.12 [renovate[bot]](https://github.com/apps/renovate) (#506)
- ⬆️ Update dependency coverage to v7.6.8 [renovate[bot]](https://github.com/apps/renovate) (#507)
- ⬆️ Update dependency ruff to v0.8.1 [renovate[bot]](https://github.com/apps/renovate) (#510)
- ⬆️ Update dependency prettier to v3.4.1 [renovate[bot]](https://github.com/apps/renovate) (#508)
- ⬆️ Update dependency pytest-httpx to v0.35.0 [renovate[bot]](https://github.com/apps/renovate) (#509)
- ⬆️ Update github/codeql-action action to v3.27.6 [renovate[bot]](https://github.com/apps/renovate) (#514)
- ⬆️ Update dependency pylint to v3.3.2 [renovate[bot]](https://github.com/apps/renovate) (#512)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#513)
- ⬆️ Update dependency pytest to v8.3.4 [renovate[bot]](https://github.com/apps/renovate) (#511)
- ⬆️ Update dependency node to v22.12.0 [renovate[bot]](https://github.com/apps/renovate) (#515)
- ⬆️ Update dependency ruff to v0.8.2 [renovate[bot]](https://github.com/apps/renovate) (#517)
- ⬆️ Update dependency prettier to v3.4.2 [renovate[bot]](https://github.com/apps/renovate) (#516)
- ⬆️ Update dependency httpx to v0.28.1 [renovate[bot]](https://github.com/apps/renovate) (#519)
- ⬆️ Update dependency coverage to v7.6.9 [renovate[bot]](https://github.com/apps/renovate) (#518)
- ⬆️ Update github/codeql-action action to v3.27.7 [renovate[bot]](https://github.com/apps/renovate) (#522)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#520)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.12.3 [renovate[bot]](https://github.com/apps/renovate) (#521)
- ⬆️ Update dependency authlib to v1.4.0 [renovate[bot]](https://github.com/apps/renovate) (#528)
- ⬆️ Update dependency respx to v0.22.0 [renovate[bot]](https://github.com/apps/renovate) (#527)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#526)
- ⬆️ Update dependency ruff to v0.8.4 [renovate[bot]](https://github.com/apps/renovate) (#523)
- ⬆️ Update github/codeql-action action to v3.27.9 [renovate[bot]](https://github.com/apps/renovate) (#524)
- ⬆️ Update dependency pytest-asyncio to v0.25.0 [renovate[bot]](https://github.com/apps/renovate) (#525)
- ⬆️ Update github/codeql-action action to v3.28.0 [renovate[bot]](https://github.com/apps/renovate) (#530)
- ⬆️ Update dependency mypy to v1.14.0 [renovate[bot]](https://github.com/apps/renovate) (#529)
- ⬆️ Update dependency node to v22.13.0 [renovate[bot]](https://github.com/apps/renovate) (#538)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#531)
- ⬆️ Update dependency coverage to v7.6.10 [renovate[bot]](https://github.com/apps/renovate) (#533)
- ⬆️ Update dependency orjson to v3.10.14 [renovate[bot]](https://github.com/apps/renovate) (#534)
- ⬆️ Update dependency mypy to v1.14.1 [renovate[bot]](https://github.com/apps/renovate) (#535)
- ⬆️ Update dependency pytest-asyncio to v0.25.2 [renovate[bot]](https://github.com/apps/renovate) (#536)
- ⬆️ Update dependency pylint to v3.3.3 [renovate[bot]](https://github.com/apps/renovate) (#532)
- ⬆️ Update dependency ruff to v0.8.6 [renovate[bot]](https://github.com/apps/renovate) (#537)
- ⬆️ Update release-drafter/release-drafter action to v6.1.0 [renovate[bot]](https://github.com/apps/renovate) (#543)
- ⬆️ Update dependency orjson to v3.10.15 [renovate[bot]](https://github.com/apps/renovate) (#542)
- ⬆️ Update github/codeql-action action to v3.28.1 [renovate[bot]](https://github.com/apps/renovate) (#540)
- ⬆️ Update dependency ruff to v0.9.2 [renovate[bot]](https://github.com/apps/renovate) (#539)
- ⬆️ Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#541)
- ⬆️ Update actions/stale action to v9.1.0 [renovate[bot]](https://github.com/apps/renovate) (#545)
- ⬆️ Update dependency pre-commit to v4.1.0 [renovate[bot]](https://github.com/apps/renovate) (#544)
- ⬆️ Update dependency node to v22.13.1 [renovate[bot]](https://github.com/apps/renovate) (#546)
- ⬆️ Update github/codeql-action action to v3.28.2 [renovate[bot]](https://github.com/apps/renovate) (#547)
- ⬆️ Update actions/setup-python action to v5.4.0 [renovate[bot]](https://github.com/apps/renovate) (#553)
- ⬆️ Update github/codeql-action action to v3.28.6 [renovate[bot]](https://github.com/apps/renovate) (#549)
- ⬆️ Update pypa/gh-action-pypi-publish action to v1.12.4 [renovate[bot]](https://github.com/apps/renovate) (#551)
- ⬆️ Update dependency codespell to v2.4.0 [renovate[bot]](https://github.com/apps/renovate) (#548)
- ⬆️ Update dependency authlib to v1.4.1 [renovate[bot]](https://github.com/apps/renovate) (#554)
- ⬆️ Update dependency pylint to v3.3.4 [renovate[bot]](https://github.com/apps/renovate) (#555)
- ⬆️ Update dependency codespell to v2.4.1 [renovate[bot]](https://github.com/apps/renovate) (#556)
- ⬆️ Update dependency pytest-asyncio to v0.25.3 [renovate[bot]](https://github.com/apps/renovate) (#557)
- ⬆️ Update dependency ruff to v0.9.3 [renovate[bot]](https://github.com/apps/renovate) (#550)
- ⬆️ Update dependency ruff to v0.9.4 [renovate[bot]](https://github.com/apps/renovate) (#559)
- ⬆️ Update github/codeql-action action to v3.28.8 [renovate[bot]](https://github.com/apps/renovate) (#558)
- ⬆️ Update dependency mypy to v1.15.0 [renovate[bot]](https://github.com/apps/renovate) (#560)
- Bump actions/upload-artifact and actions/download-artifact jpbede (563)
- ⬆️ Update codecov/codecov-action action to v5 [renovate[bot]](https://github.com/apps/renovate) (#498)
- ⬆️ Update actions/setup-node digest to 1d0ff46 [renovate[bot]](https://github.com/apps/renovate) (#552)
</details>