Skip to content

build: Upgrade to Python 3.13 - #60

Merged
jpmckinney merged 3 commits into
mainfrom
python-3.13
Oct 30, 2026
Merged

jpmckinney merged 3 commits into
mainfrom
python-3.13

Conversation

@jpmckinney

Copy link
Copy Markdown
Member

kingfisher-main now runs collect-generic in a Python 3.13 virtualenv (open-contracting/deploy#683).

  • .python-version and the pip-compile hooks' --python-version: 3.10 → 3.13
  • Ruff target-version: py310 → py313, and apply its fixes (datetime.UTC)
  • poland.py: remove the Python 3.10 workaround for fractional seconds. Since 3.11, fromisoformat() accepts fractions of any length and truncates them to microseconds. The old and new parse_datetime() return the same values for 17 inputs, including date-only TED dates, Z, and 1- to 9-digit fractions.

requirements_dev.txt installs on 3.13, and scrapy list loads all 5 spiders. (With PYTHONWARNINGS=error, scrapy list segfaults, on 3.10 too.) The requirements files have no python_version markers, so they don't change.

Part of open-contracting/software-development-handbook#153.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QSfuGf81zPF23KcUdGhEaF

jpmckinney and others added 3 commits October 29, 2026 22:03
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QSfuGf81zPF23KcUdGhEaF
Since Python 3.11, fromisoformat() accepts fractions of any length and truncates
them to microseconds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QSfuGf81zPF23KcUdGhEaF
@jpmckinney
jpmckinney merged commit 94e5e12 into main Oct 30, 2026
8 checks passed
@jpmckinney
jpmckinney deleted the python-3.13 branch October 30, 2026 04:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant