Drop support for Python 3.10

Merged
KL
2d ago
+27-475

Python 3.10 reaches end of life this month. This PR sets requires-python = ">=3.11" for both httpx2 and httpcore2.

  • Remove 3.10 from the CI matrix and the trove classifiers.
  • Set ruff target-version = "py311", which rewrites one asyncio.TimeoutError to TimeoutError.
  • Drop the exceptiongroup fallback import and the 3.10-only netrc test with its fixture.
  • Update the requirement in docs/migration.md.
  • Re-lock, which removes exceptiongroup and async-timeout.

AI Disclaimer

This PR was developed with the assistance of either Claude or Codex. I've reviewed and verified the changes.