Skip to content

chore: require Python 3.11+ and use stdlib tomllib#8

Merged
benvinegar merged 1 commit into
mainfrom
chore/python-311-floor
Jun 13, 2026
Merged

chore: require Python 3.11+ and use stdlib tomllib#8
benvinegar merged 1 commit into
mainfrom
chore/python-311-floor

Conversation

@benvinegar

@benvinegar benvinegar commented Jun 13, 2026

Copy link
Copy Markdown
Member

Summary

Fourth PR from the whole-project review.

  • Raise requires-python to >=3.11. Python 3.9 is past end of life (the google-auth libs already warn about it on every invocation), and uv downloads a matching interpreter automatically, so users don't manage this themselves.
  • Delete the ~50-line hand-rolled fallback TOML parser in scripts/youtube_publish.py and parse podguy.toml with stdlib tomllib unconditionally. The fallback had known limitations (no [youtube.*] subtables, no multiline strings, breaks on quote characters in array items) that tomllib handles correctly; malformed TOML now produces a clean error: could not parse profile TOML instead of silently mis-parsing.
  • Update the skill compatibility note; uv.lock regenerated for the new floor (large diff is dropped 3.9-compat resolutions).

Note: #6 adds a hashtag-in-footer TOML case to the youtube smoke test; once both merge, that case exercises the tomllib path.

Test plan

  • uv sync recreates the venv on 3.11.15; youtube publish smoke test passes on the tomllib path
  • Full local validation passes (format:check/lint/typecheck/npm test 7/7)
  • CI green

🤖 Generated with Claude Code

Python 3.9 is past end of life and uv installs interpreters
automatically, so raise the floor to 3.11 and delete the hand-rolled
fallback TOML parser in youtube_publish.py in favor of tomllib, which
also handles subtables, multiline strings, and quoted edge cases the
fallback could not.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@benvinegar benvinegar force-pushed the chore/python-311-floor branch from 2c036fc to 6691ba5 Compare June 13, 2026 01:56
@benvinegar benvinegar merged commit d950bb5 into main Jun 13, 2026
3 checks passed
@benvinegar benvinegar deleted the chore/python-311-floor branch June 13, 2026 01:57
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