Skip to content

Commit bec4992

Browse files
satterlynsa-softpayclaude
authored
Drop Python 3.8/3.9, add 3.12-3.14, bump all dependencies and hooks (#400)
Python 3.8 (EOL Oct 2024) and 3.9 (EOL Oct 2025) are no longer supported. This unblocks bumping to latest package versions. Runtime: Click 8.1.7→8.3.1, pytz 2024.1→2026.1.post1, PyYAML 6.0.1→6.0.3, requests 2.32.3→2.33.0, tabulate 0.9.0→0.10.0 Dev: mypy 1.10.1→1.19.1, pre-commit 3.3.3→4.5.1, pylint 3.2.5→4.0.5 Pre-commit hooks: autopep8 (switched from mirrors-autopep8 v1.5.1 to hhatto/autopep8 v2.3.2 for Python 3.13+ compat), pre-commit-hooks v2.5.0→v6.0.0, flake8 3.9.2→7.3.0, pyupgrade v1.27.0→v3.21.2, mirrors-isort v4.3.21→v5.10.1. Removed deprecated seed-isort-config and fix-encoding-pragma hooks. Renamed check-byte-order-marker to fix-byte-order-marker (v6 rename). Updated Dockerfile base from python:3.8 to python:3.13. Co-authored-by: Nick Satterly <nsa@softpay.io> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent aa82f86 commit bec4992

7 files changed

Lines changed: 25 additions & 30 deletions

File tree

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
strategy:
1717
matrix:
18-
python-version: ['3.8', '3.9', '3.10', '3.11']
18+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
1919

2020
steps:
2121
- uses: actions/checkout@v4

.pre-commit-config.yaml

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
repos:
2-
- repo: https://github.com/pre-commit/mirrors-autopep8
3-
rev: v1.5.1
2+
- repo: https://github.com/hhatto/autopep8
3+
rev: v2.3.2
44
hooks:
55
- id: autopep8
66
- repo: https://github.com/pre-commit/pre-commit-hooks.git
7-
rev: v2.5.0
7+
rev: v6.0.0
88
hooks:
99
- id: check-added-large-files
1010
- id: check-ast
11-
- id: check-byte-order-marker
11+
- id: fix-byte-order-marker
1212
- id: check-case-conflict
1313
- id: check-docstring-first
1414
- id: check-json
@@ -17,28 +17,22 @@ repos:
1717
- id: debug-statements
1818
- id: double-quote-string-fixer
1919
- id: end-of-file-fixer
20-
- id: fix-encoding-pragma
21-
args: ['--remove']
2220
- id: pretty-format-json
2321
args: ['--autofix']
2422
- id: name-tests-test
2523
args: ['--django']
2624
- id: requirements-txt-fixer
2725
- id: trailing-whitespace
2826
- repo: https://github.com/pycqa/flake8
29-
rev: 3.9.2
27+
rev: 7.3.0
3028
hooks:
3129
- id: flake8
3230
- repo: https://github.com/asottile/pyupgrade
33-
rev: v1.27.0
31+
rev: v3.21.2
3432
hooks:
3533
- id: pyupgrade
36-
args: ['--py3-plus']
37-
- repo: https://github.com/asottile/seed-isort-config
38-
rev: v1.9.4
39-
hooks:
40-
- id: seed-isort-config
34+
args: ['--py310-plus']
4135
- repo: https://github.com/pre-commit/mirrors-isort
42-
rev: v4.3.21
36+
rev: v5.10.1
4337
hooks:
4438
- id: isort

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.8-alpine
1+
FROM python:3.13-alpine
22

33
RUN apk add --no-cache \
44
bash \

alertaclient/models/group.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from typing import Any, Dict
1+
from typing import Any
22
from uuid import uuid4
33

4-
JSON = Dict[str, Any]
4+
JSON = dict[str, Any]
55

66

77
# class GroupUser:

requirements-dev.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
mypy==1.10.1
2-
pre-commit==3.3.3
3-
pylint==3.2.5
4-
pytest-cov
1+
mypy==1.19.1
2+
pre-commit==4.5.1
3+
pylint==4.0.5
54
pytest>=5.4.3
5+
pytest-cov
66
python-dotenv
77
requests_mock

requirements.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Click==8.1.7
2-
pytz==2024.1
3-
PyYAML==6.0.1
4-
requests==2.32.3
1+
Click==8.3.1
2+
pytz==2026.1.post1
3+
PyYAML==6.0.3
4+
requests==2.33.0
55
requests-hawk==1.2.1
6-
tabulate==0.9.0
6+
tabulate==0.10.0

setup.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ def read(filename):
4242
'Intended Audience :: System Administrators',
4343
'Intended Audience :: Telecommunications Industry',
4444
'License :: OSI Approved :: Apache Software License',
45+
'Programming Language :: Python :: 3.14',
46+
'Programming Language :: Python :: 3.13',
47+
'Programming Language :: Python :: 3.12',
4548
'Programming Language :: Python :: 3.11',
4649
'Programming Language :: Python :: 3.10',
47-
'Programming Language :: Python :: 3.9',
48-
'Programming Language :: Python :: 3.8',
4950
'Topic :: System :: Monitoring',
5051
'Topic :: Software Development :: Libraries :: Python Modules'
5152
],
52-
python_requires='>=3.8'
53+
python_requires='>=3.10'
5354
)

0 commit comments

Comments
 (0)