setup.py: bump PyJWT floor to >=2.11.0 to match the actual runtime requirement#577
Merged
Merged
Conversation
…quirement
flask_jwt_extended/tokens.py does:
from jwt.types import Options
…and jwt.types.Options was first added in PyJWT 2.11.0 (2026-01-30).
The current install_requires in setup.py declares PyJWT>=2.0,<3.0,
which is wide enough for resolvers to land on PyJWT 2.10.x and earlier
— those installs then fail at import time with:
ImportError: cannot import name 'Options' from 'jwt.types'
PR vimalloc#574 (commit 9bf8d35, 'Bump PyJWT to 2.12.1') already bumped the
dev requirements.txt to PyJWT 2.12.1, but the package's own
install_requires floor was left at >=2.0. This change bridges that
gap so downstream consumers (e.g. flask-appbuilder, apache-airflow)
can rely on pip install flask-jwt-extended resulting in a working
import without having to add their own defensive PyJWT pin.
Same class of issue as vimalloc#553 — a runtime import that requires a newer
PyJWT than the declared floor admits.
The upper bound (<3.0) is unchanged.
Owner
|
This options stuff is the change that just keeps on giving! Thanks for the PR! |
Owner
|
I'll get a new version cut here this morning. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi!
flask_jwt_extended/tokens.pydoes:…and
jwt.types.Optionswas first added in PyJWT 2.11.0 (released 2026-01-30). The currentinstall_requiresinsetup.pydeclaresPyJWT>=2.0,<3.0, which is wide enough for resolvers to land on PyJWT 2.10.x and earlier — those installs then fail atimport flask_jwt_extendedtime with:PR #574 (commit 9bf8d35, "Bump PyJWT to 2.12.1") already bumped the dev
requirements.txtto PyJWT 2.12.1, but the package's owninstall_requiresfloor was left at>=2.0. This bridges that gap so downstream consumers (e.g. flask-appbuilder, apache-airflow) can rely onpip install flask-jwt-extendedresulting in a working import without having to add their own defensive PyJWT pin.Same class of issue as #553 — a runtime import that requires a newer PyJWT than the declared floor admits.
The upper bound (
<3.0) is unchanged.I'm happy to add a CHANGELOG entry / open a release-note PR separately if helpful.
Drafted-by: Claude Opus 4.7 (1M context); reviewed by @potiuk before posting