Drop Python 3.10 and add Python 3.15 to the supported versions and CI (#953)

Python 3.10 reaches end of life in October 2026. requires-python is now
>=3.11, the unused requires_python key under [build-system] (not read by
hatchling, and its <3.15 bound read as excluding 3.15) is removed, and
Python 3.15 joins the CI matrix, classifiers, and support tables. Docs,
AGENTS.md, and comments that named 3.10 as the floor are updated.

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Sean WhalenandClaude Sonnet 5.5 authored and GitHub committed 2026-11-10 12:51:04 -05:00
1 parent 5c20eb8016
commit 3311db4e16
12 files changed
+40 -34

No files matched your search

+4 -5
View File
@@ -6072,11 +6072,10 @@ class TestHttpx2LogRedaction(unittest.TestCase):
class TestHttpx2UrlClassImport(unittest.TestCase):
"""GHSA-hjr3-rx4c-24cv: ``_HTTP_URL_CLASSES`` must recognize
``httpx2.URL`` whenever httpx2 is importable, not only when dnspython
imported it. dnspython 2.9 requires Python >= 3.11, so on Python 3.10
CI installs dnspython 2.8 (which never imports httpx2) while httpx2
still installs there (hatch in the ``[build]`` extra requires it), so
a constant taken from ``dns.query`` left ``httpx2.URL`` arguments on
the ``httpx2`` logger unmasked there."""
imported it. dnspython 2.8 never imports httpx2 while httpx2 can
still be installed (hatch in the ``[build]`` extra requires it), so a
constant taken from ``dns.query`` would leave ``httpx2.URL`` arguments
on the ``httpx2`` logger unmasked there."""
def _exec_fresh_cli(self):
"""Execute parsedmarc.cli's source into a throwaway module and