Skip to content

Support Python 3.14#210

Open
caius72 wants to merge 1 commit into
NVIDIA:mainfrom
caius72:py314-support
Open

Support Python 3.14#210
caius72 wants to merge 1 commit into
NVIDIA:mainfrom
caius72:py314-support

Conversation

@caius72

@caius72 caius72 commented Jun 25, 2026

Copy link
Copy Markdown

Summary

Raises the supported Python ceiling to include 3.14. Verified the full dependency set installs and the test suite passes on CPython 3.14.6 (989 passed, 12 skipped, 6 xfailed).

The blocker was jsonschema-rs 0.29.1 (pinned transitively via langgraph-cli 0.4.14 → langgraph-api 0.7.65), whose PyO3 0.23 bindings predate 3.14 and cannot build from source. Upgrading the langgraph stack (langgraph-cli 0.4.30, langgraph-api 0.10.0, langgraph 1.2.6) pulls jsonschema-rs 0.44.1, which ships abi3/cp314 wheels.

Changes

  • pyproject.toml: requires-python <3.14<3.15; add 3.14 classifier
  • .github/workflows/ci.yml: add 3.14 to the test matrix
  • uv.lock: full re-resolve for the langgraph stack (large diff — the whole langgraph stack moved)
  • docs/PI_EXTENSION.md: update stated version range
  • src/skillspector/__init__.py: suppress a LangChainPendingDeprecationWarning emitted on import. langgraph deserializes with langchain's default allowed_objects, and langchain_core's import re-enables that warning via surface_langchain_deprecation_warnings(), so we import langchain_core first, then prepend our ignore filter so it wins.

Test plan

  • uv sync --all-extras clean on a fresh 3.14.6 venv
  • uv run pytest — 989 passed, 12 skipped, 6 xfailed
  • uv run ruff check / ruff format --check clean
  • skillspector --help / --version work; deprecation warning gone

Note: one pre-existing test (test_input_handler_ssrf.py::test_github_url_allowed) fails locally because it does a live DNS lookup; it fails identically on 3.12 in this environment and is unrelated to the version bump. CI should resolve github.com normally.

🤖 Generated with Claude Code

Raise the supported Python ceiling to include 3.14 and verify the full
dependency set installs and the test suite passes on CPython 3.14.6.

The blocker was jsonschema-rs 0.29.1 (pinned transitively via langgraph-cli
0.4.14 -> langgraph-api 0.7.65), whose PyO3 0.23 bindings predate 3.14 and
cannot build from source. Upgrading the langgraph stack (langgraph-cli 0.4.30,
langgraph-api 0.10.0, langgraph 1.2.6) pulls jsonschema-rs 0.44.1, which ships
abi3/cp314 wheels.

- pyproject: requires-python <3.14 -> <3.15; add 3.14 classifier
- ci: add 3.14 to the test matrix
- uv.lock: full re-resolve for the langgraph stack
- docs/PI_EXTENSION: update stated version range

Also suppress a LangChainPendingDeprecationWarning emitted on import: langgraph
deserializes with langchain's default allowed_objects, and langchain_core's
import re-enables that warning via surface_langchain_deprecation_warnings(), so
import langchain_core first, then prepend our ignore filter so it wins.

Signed-off-by: caius72 <tuschner@gmail.com>
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