Update clients/py dependencies (h2, construct-typing, pydantic-core, httpcore2, httpx2) and relax pins - #876
Merged
Conversation
Bumps the requested packages to their newest usable versions and converts the exact-pin lock to minimum-version (>=) constraints. - h2 4.4.0 -> 4.4.1 - construct-typing 0.7.0 -> 0.8.1 - httpcore2 2.7.0 -> 2.12.0 - httpx2 2.7.0 -> 2.12.0 - pydantic-core 2.46.4 -> 2.46.5 (see note) construct-typing 0.8.1 requires solana >= 0.40.2 (which in turn needs solders >= 0.28) and pulls in arrow, so solana, solders, pydantic are bumped accordingly and arrow/python-dateutil/six/tzdata are added. Note: pydantic pins pydantic-core exactly; the newest pydantic (2.13.5) requires pydantic-core==2.46.5, so 2.46.5 is the newest installable version. pydantic-core 2.48.0 is not usable with any released pydantic. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
joncinque
approved these changes
Aug 28, 2026
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.
Updates the Python client's dependencies to the newest usable versions and relaxes the exact-pin lock to minimum-version constraints.
Requested package bumps
h2construct-typinghttpcore2httpx2)httpx2pydantic-coreWhy pydantic-core is 2.46.5, not the newest 2.48.0
pydanticpinspydantic-coreexactly. The newestpydantic(2.13.5) requirespydantic-core==2.46.5, and no releasedpydantictargets 2.48.0, so 2.48.0 cannot be installed alongsidepydantic. 2.46.5 is the newest version that actually resolves.Cascading changes
solanais the root of this dependency tree, andconstruct-typing 0.8.1is only allowed bysolana >= 0.40.2(solana 0.40.1capsconstruct-typing < 0.8.0), which in turn requiressolders >= 0.28.construct-typing 0.8.1also adds anarrowdependency. So:solana0.40.1 → 0.40.3,solders0.27.1 → 0.29.0,pydantic2.13.4 → 2.13.5arrow,python-dateutil,six,tzdataidna3.18 → 3.19,typing-inspection0.4.3 → 0.4.4,websockets17.0.1 → 17.1optional-requirements.txt:mypy2.3.0 → 2.3.1 (others already newest)Relaxed pins (
==→>=)Every dependency here transitively roots at
solana, so relaxing only a few packages while pinning the rest would be fragile (a futurehttpx2could require anhttpcore2/h11/anyionewer than a leftover==pin and breakpip install). To relax consistently and without self-conflict, the exact-pin lock is converted to minimum bounds (>=) at the newest resolved versions.pip install -rstill resolves to the newest set today; the file simply no longer freezes them. If you prefer a strict reproducible lock, re-pinning withpip freezeis trivial — happy to switch it back.Verification
pip install -r requirements.txt && pip install -r optional-requirements.txt— resolves cleanly to the newest set.flake8 --exclude venv— clean.mypy --exclude venv .— Success: no issues found in 32 source files (type-checks the client against the new library versions).pytest --collect-only— all 14 tests / modules import cleanly under the bumped deps.pytestintegration suite requires a localsolana-test-validator; it could not be exercised in this environment because the Agave test validator requiresio_uring, which the sandbox blocks (assertion failed: io_uring_supported()) — unrelated to this dependency change (deps are client-side; the validator is a separate binary).🤖 Generated with Claude Code