Tags: jpadilla/pyjwt
Tags
Add typing_extensions dependency for Python < 3.11 (#1151) * Add typing_extensions as dependency for Python < 3.11 PyJWT imports typing_extensions.Never (Python < 3.11) and typing_extensions.TypeAlias (Python < 3.10) at runtime in jwt/algorithms.py, but typing_extensions was never declared as a dependency. This causes a ModuleNotFoundError on Python 3.9/3.10 when importing the library. Fixes #1150 https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add minimal install CI job to catch undeclared dependencies The existing install-dev job always installs with [dev] extras, which bundles cryptography and pulls in typing_extensions transitively via test tooling. This masked the missing typing_extensions dependency (#1150). Add an install-minimal job that tests bare `pip install .` and `pip install .[crypto]` on Python 3.9 and 3.13, ensuring undeclared runtime dependencies are caught immediately. https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F * Merge install-minimal into install-dev and test all install modes Consolidate into a single job that tests progressively: bare install, crypto extra, then dev extras. Tests Python 3.9 and 3.13 to cover both the typing_extensions fallback and native typing paths. https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F * Bump version to 2.12.1 https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F * Add explicit permissions block to CI workflow Restrict GITHUB_TOKEN to read-only contents access, as flagged by github-advanced-security[bot]. https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F * Fix RST underline length in CHANGELOG https://claude.ai/code/session_013ZvbKEyVkcUx8xHrqt8v2F --------- Co-authored-by: Claude <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Use PyJWK algorithm when encoding without explicit algorithm (#1148) * fix: use PyJWK key algorithm when encoding without explicit algorithm (#1147) When a PyJWK object is passed to jwt.encode() without specifying an algorithm, the key's embedded algorithm is now used instead of defaulting to HS256. This is achieved by using a sentinel default value so the code can distinguish "no algorithm specified" from an explicit algorithm parameter. https://claude.ai/code/session_016Ekc2jQzpuiDpBvnMAMnUB * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update changelog --------- Co-authored-by: Claude <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: José Padilla <[email protected]>
[pre-commit.ci] pre-commit autoupdate (#1006) updates: - [github.com/asottile/blacken-docs: 1.19.0 → 1.19.1](adamchainz/blacken-docs@1.19.0...1.19.1) - [github.com/pre-commit/mirrors-mypy: v1.11.2 → v1.13.0](pre-commit/mirrors-mypy@v1.11.2...v1.13.0) - [github.com/abravalheri/validate-pyproject: v0.20.2 → v0.23](abravalheri/validate-pyproject@v0.20.2...v0.23) - [github.com/astral-sh/ruff-pre-commit: v0.6.9 → v0.7.3](astral-sh/ruff-pre-commit@v0.6.9...v0.7.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
PreviousNext