Skip to content

Commit 4a50970

Browse files
committed
Upgrade minimum Python version to 3.10
BREAKING CHANGE: Python 3.8 and 3.9 are no longer supported. Changes: - pyproject.toml: requires-python ">=3.8" -> ">=3.10" - Added Python 3.10, 3.11, 3.12 classifiers - Updated tool configurations: - ruff: target-version "py37" -> "py310" - mypy: python_version "3.7" -> "3.10" - pylint: py-version "3.7" -> "3.10" - CI: Updated pytest.yml to test on Python 3.10, 3.11, 3.12 Rationale: - Python 3.8 reached EOL in October 2024 - Python 3.9 reaches EOL in October 2025 - Python 3.10+ enables modern syntax (PEP 604 union types) - Used in new modernization features (exceptions.py uses | syntax) - Aligns with project modernization goals - HPC/cluster environments typically run modern Python versions All 25 tests passing on Python 3.11.
1 parent 62f9f92 commit 4a50970

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

.github/workflows/pytest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
python-version: ["3.8", "3.9", "3.10"]
10+
python-version: ["3.10", "3.11", "3.12"]
1111

1212
steps:
1313
- uses: actions/checkout@v3

pyproject.toml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ authors = [
1313
]
1414
description = "Util for benchmarking algorithms."
1515
readme = "README.rst"
16-
requires-python = ">=3.8"
16+
requires-python = ">=3.10"
1717
classifiers = [
1818
"Programming Language :: Python :: 3",
19+
"Programming Language :: Python :: 3.10",
20+
"Programming Language :: Python :: 3.11",
21+
"Programming Language :: Python :: 3.12",
1922
"License :: OSI Approved :: MIT License",
2023
"Development Status :: 3 - Alpha",
2124
]
@@ -70,7 +73,7 @@ extend-ignore = [
7073
"PT004", # Incorrect, just usefixtures instead.
7174
"RUF009", # Too easy to get a false positive
7275
]
73-
target-version = "py37"
76+
target-version = "py310"
7477
src = ["src"]
7578
unfixable = ["T20", "F841"]
7679
exclude = []
@@ -79,7 +82,7 @@ exclude = []
7982
[tool.mypy]
8083
files = ["src", "tests"]
8184
mypy_path = ["$MYPY_CONFIG_FILE_DIR/src"]
82-
python_version = "3.7"
85+
python_version = "3.10"
8386
warn_unused_configs = true
8487
show_error_codes = true
8588
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
@@ -96,7 +99,7 @@ ignore_missing_imports = true
9699

97100

98101
[tool.pylint]
99-
py-version = "3.7"
102+
py-version = "3.10"
100103
jobs = "0"
101104
reports.output-format = "colorized"
102105
similarities.ignore-imports = "yes"

0 commit comments

Comments
 (0)