Skip to content

chore: require Python 3.8, since ipyvue 3.1.0 does not import on 3.7 - #117

Merged
maartenbreddels merged 1 commit into
masterfrom
chore/require-python-38
Oct 6, 2026
Merged

maartenbreddels merged 1 commit into
masterfrom
chore/require-python-38

Conversation

@maartenbreddels

@maartenbreddels maartenbreddels commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

ipyvue now declares that it needs Python 3.8 or newer, because ipyvue 3.1.0 already does not import on Python 3.7.

Problem

ipyvue 3.1.0 uses an assignment expression (:=) in ipyvue/esm.py, line 91. Python 3.7 cannot parse it.
The 3.1.0 package declares no minimum Python version, so pip on Python 3.7 still installs it.
Then import ipyvue fails with a SyntaxError, and so does import ipyvuetify, which depends on ipyvue>=3.0.0.
ipyvuetify's CI showed it: its test (3.7) job fails with ipyvue 3.1.0.
Python 3.7 has been end of life since June 2023, and CI here already tests only 3.8 and newer.

Change

  • setup.py sets python_requires=">=3.8".

Validation

  • Claude checked the sources of 3.1.0 and 1.13.0 against the Python 3.7 grammar (Python 3.12's ast.parse with feature_version=(3, 7)). 3.1.0 fails at ipyvue/esm.py:91. 1.13.0 parses.
  • ipyvuetify's CI against ipyvue 3.1.0 fails only on Python 3.7, with the same SyntaxError.

Gaps

Align results

  • Drop Python 3.7: Maarten, 2026-10-05: "lets drop 3.7 right? for 3.x".

Crossreview results

Round 1, by astra and gpt-6.1-sol, on both companion PRs together. Neither found a defect. Both noted older things this PR does not change: some ipyvue UI-test skip messages still name old Python versions, and the setuptools minimum in ipyvuetify is out of date.

🤖 Generated with Claude Code

ipyvue 3.1.0 uses an assignment expression (:=) in ipyvue/esm.py, which Python 3.7 cannot parse, but it declares no requires-python. pip on Python 3.7 therefore installs 3.1.0, and then import ipyvue fails with a SyntaxError. CI already tests only 3.8 and newer, and Python 3.7 has been end of life since June 2023. With python_requires, pip on 3.7 skips the next release. 3.1.0 itself has no such metadata: only yanking it on PyPI keeps 3.7 users on 3.0.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@maartenbreddels
maartenbreddels force-pushed the chore/require-python-38 branch from 2ae1b60 to 543869e Compare October 6, 2026 08:07
@maartenbreddels
maartenbreddels merged commit c619a7a into master Oct 6, 2026
10 checks passed
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