diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 4473798cc..379b59061 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v7
with:
persist-credentials: false
- - uses: actions/setup-python@v6
+ - uses: actions/setup-python@v7
with:
python-version: "3.x"
- uses: j178/prek-action@v1
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 1a5915920..8448ff772 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -14,17 +14,17 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: ["pypy3.11", "3.10", "3.11", "3.12", "3.13", "3.14"]
+ python-version: ["pypy3.12", "pypy3.11", "3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-latest]
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v7
with:
fetch-depth: 0
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v6
+ uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
@@ -34,7 +34,7 @@ jobs:
requirements.txt
- name: Set up node
- uses: actions/setup-node@v6
+ uses: actions/setup-node@v7
with:
node-version: 16
cache: 'npm'
@@ -43,7 +43,6 @@ jobs:
- name: Install dependencies
run: |
python -m pip install -U pip
- python -m pip install -U wheel
python -m pip install -Ur requirements.txt --prefer-binary
npm install svgexport
diff --git a/all.html b/all.html
index 1164101d5..1c287f7e2 100644
--- a/all.html
+++ b/all.html
@@ -124,7 +124,7 @@
Thanks
diff --git a/build.sh b/build.sh
index 21f871744..8c499ee25 100755
--- a/build.sh
+++ b/build.sh
@@ -23,16 +23,16 @@ wget https://endoflife.date/api/python.json -O python-eol.json
export OPENSSL_CONF=/dev/null
# Generate the files
-python3 generate.py --version 2.{0,1,2,3,4,5,6,7} 3.{0,1,2,3,4,5,6,7,8,9,10}
+python3 generate.py --version 2.{0,1,2,3,4,5,6,7} 3.{0,1,2,3,4,5,6,7,8,9,10,11}
# Create index.html files from the template
-python3 template.py --version 2.{0,1,2,3,4,5,6,7} 3.{0,1,2,3,4,5,6,7,8,9,10}
+python3 template.py --version 2.{0,1,2,3,4,5,6,7} 3.{0,1,2,3,4,5,6,7,8,9,10,11}
# Make output directory, don't fail if it exists
mkdir -p build
# Copy to output directory
-cp -R {2.{0,1,2,3,4,5,6,7},3.{0,1,2,3,4,5,6,7,8,9,10},all.html,index.html,results.json,style.css,wheel.css} build
+cp -R {2.{0,1,2,3,4,5,6,7},3.{0,1,2,3,4,5,6,7,8,9,10,11},all.html,index.html,results.json,style.css,wheel.css} build
# Remove templated index.html files
-rm {2.{0,1,2,3,4,5,6,7},3.{0,1,2,3,4,5,6,7,8,9,10}}/index.html
+rm {2.{0,1,2,3,4,5,6,7},3.{0,1,2,3,4,5,6,7,8,9,10,11}}/index.html
diff --git a/index.html b/index.html
index a3bdb2aa8..71b032bf6 100644
--- a/index.html
+++ b/index.html
@@ -24,20 +24,20 @@ Drop Python
-
-
-
+
@@ -62,13 +62,13 @@
Thanks
diff --git a/pyproject.toml b/pyproject.toml
index 22c759520..08fbdb7cf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,5 @@
[tool.black]
-target_version = [ "py310" ]
+target_version = [ "py311" ]
[tool.ruff]
fix = true
diff --git a/template.py b/template.py
index 1ff5cd13f..e78c23f8e 100644
--- a/template.py
+++ b/template.py
@@ -107,6 +107,11 @@
tomllib in the stdlib, exception groups and except*
And more!
"""}, # noqa: E501
+ "3.11": {"reasons": """
+ 10–60% faster than 3.10, tomllib
+ Python version cheat sheet
+ What's new in Python $template_next_version
+ """}, # noqa: E501
}
REASONS = """
@@ -146,7 +151,7 @@ def main() -> None:
# Read it
src = Template(infile.read())
- now = dt.datetime.utcnow()
+ now = dt.datetime.now(dt.UTC).replace(tzinfo=None)
for version in args.version:
# Document data
print(version)
diff --git a/template/index.html b/template/index.html
index 972b8f1d8..fc43ebf7b 100644
--- a/template/index.html
+++ b/template/index.html
@@ -116,7 +116,7 @@ Thanks
diff --git a/utils.py b/utils.py
index f03beb7cb..ff5911d63 100644
--- a/utils.py
+++ b/utils.py
@@ -1,7 +1,6 @@
import datetime as dt
import json
import os
-from zoneinfo import ZoneInfo
import requests_cache
from packaging import specifiers
@@ -219,7 +218,7 @@ def remove_irrelevant_packages(packages, limit):
def save_to_file(packages, file_name):
- now = dt.datetime.utcnow().replace(tzinfo=ZoneInfo("UTC"))
+ now = dt.datetime.now(dt.UTC)
with open(file_name, "w") as f:
f.write(
json.dumps(