Repository navigation
chore(deps): refresh dependencies and clear Dependabot alerts - #88
Merged
Merged
Conversation
Refresh uv.lock with uv lock --upgrade. Clears the open Dependabot alerts for virtualenv, urllib3, sqlparse, pyarrow, cbor2, idna, requests, pytest and pygments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cbor2 < 5.9.0 has unbounded recursion in cbor2.loads, which the driver calls on every frame received from the server. sqlparse <= 0.5.5 has several CPU-exhaustion bugs reachable through sqlparse.parse, which the driver runs over caller-supplied SQL for log redaction. Raising the floors keeps library users from resolving to the vulnerable releases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ClayMav
approved these changes
Oct 29, 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.
Summary
Refreshes
uv.lock(uv lock --upgrade) and clears every open Dependabot alert on the repo: 35 total (19 high / 12 medium / 4 low → 0), verified locally by comparing each locked version against the alert's first patched version.Two runtime floors in
pyproject.tomlgo up, because both are security floors on code paths the driver actually exercises with untrusted input:cbor2>=5.6.3>=5.9.0cbor2.loads, which the driver calls on every frame received from the serversqlparse>=0.5.0>=0.6.0sqlparse.parse, which the driver runs over caller-supplied SQL for log redactionLibrary users will notice this: installing the next release requires
cbor2>=5.9.0andsqlparse>=0.6.0. No package version bump here.Alerts cleared (by package)
Floors deliberately not raised
>=14.0.2): the advisory is a use-after-free when reading an IPC file with pre-buffering. The driver only uses the IPC stream reader (pyarrow.ipc.open_stream), and forcing>=23.0.1would be a heavy constraint for users with pinned Arrow stacks.>=2.31.0): the advisory is temp-file reuse inextract_zipped_paths(), which the driver doesn't use.requests.Other notable upgrades
Majors in the lock:
cbor26.x,mypy2.x (dev),rich15 (dev),python-dateutil3.0 (via pandas),websockets17.3 on py3.11+ (16.1.1 on 3.10). No source changes were needed. The lock filerevisiongoes from 3 to 5 because it was regenerated with a newer uv. CI only uses uv foruv build, which doesn't read the lock.Follow-up (not in this PR)
websockets ≥ 17.1 emits a
DeprecationWarningwhenwebsockets.sync.client.connect()isn't used as a context manager, which is howdriver.pyuses it. Today it's a hidden warning (it fires from library code), but it signals that a future websockets major will change whatconnect()returns. This exposure already exists for anyone installing websockets 17.x with the current>=13.0floor; the lock bump just makes it show up in our test run.Related Issues
Clears all open Dependabot alerts.
Requester Checklist
Visual Proof
uv run pytest tests/on Python 3.14, 3.12 and 3.10: 315 passed on each.cbor2==5.9.0,sqlparse==0.6.0): 315 passed.pre-commit run --all-files: all hooks pass.Size Justification (if L/XL)
Nearly all of the diff is the regenerated
uv.lock. The hand-written change is two lines inpyproject.toml.🤖 Generated with Claude Code