Bump vertica-python to 1.4.0 to restore the Vertica data source on Python 3.13 - #7808
Open
ekanshul wants to merge 1 commit into
Open
Bump vertica-python to 1.4.0 to restore the Vertica data source on Python 3.13#7808ekanshul wants to merge 1 commit into
ekanshul wants to merge 1 commit into
Conversation
vertica-python 1.1.1 unconditionally imports the standard-library `crypt` module on non-Windows platforms. Python 3.13 removed `crypt` (PEP 594), so `import vertica_python` raises ModuleNotFoundError, `Vertica.enabled()` returns False and the data source silently disappears from Redash. vertica-python dropped the `crypt` dependency in 1.3.0 (vertica/vertica-python#485) and 1.4.0 is the latest release on PyPI. It keeps the same dependencies (python-dateutil, six) and the same data type OIDs used by `types_map`. Fixes getredash#7801 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Greptile SummaryUpdates
Confidence Score: 5/5The PR appears safe to merge, with the updated driver remaining compatible with the repository’s Vertica connector and Python runtime. The manifest and lockfile consistently select vertica-python 1.4.0, its dependency set remains unchanged, and no concrete changed-code regression or security issue was identified.
|
| Filename | Overview |
|---|---|
| pyproject.toml | Pins the Vertica driver to 1.4.0, restoring compatibility with the repository’s Python 3.13 runtime. |
| uv.lock | Consistently updates the Vertica package version, hashes, and project metadata without changing its dependency set. |
Reviews (1): Last reviewed commit: "Bump vertica-python to 1.4.0 to restore ..." | Re-trigger Greptile
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.
What type of PR is this?
Description
Fixes #7801.
Since #7636 the image is built on Python 3.13, but
vertica-pythonis still pinned to 1.1.1 (2022). That version does an unconditionalimport crypton non-Windows platforms (password.py@1.1.1), and Python 3.13 removed thecryptmodule (PEP 594):Vertica.enabled()catches theImportErrorand returnsFalse, so the data source silently disappears from the "New Data Source" list and existing Vertica data sources stop working.This PR bumps the pin to 1.4.0, the latest release on PyPI. vertica-python stopped depending on
cryptin 1.3.0 (vertica/vertica-python#485, "deprecate crypt package"); since then the bundled pure-Python implementation is used on every platform, so the legacyCRYPT_PASSWORDauth method keeps working too (unlike thev1.1.2/v1.1.3git tags mentioned in the issue, which are not published on PyPI and only fall back tocryptography.hashes).Nothing else in the runner needs to change:
python-dateutil,six), both already locked, so theuv.lockdiff is limited to thevertica-pythonentry.cursor.description[i][1]is still the data type OID (Column.type_code = col['data_type_oid']), and none of the OIDs used bytypes_mapchanged between the two versions (1.4.0 only adds new ROW/ARRAY/MAP/SET types).connection_timeoutis still a supportedconnect()option, and extra options such asread_timeoutare still accepted.uv lockalso refreshed the project version recorded inuv.lock(26.7.0.dev0→26.9.0.dev0), which had not been regenerated since the version bump inpyproject.toml.How is this tested?
Manually
In a clean Python 3.13.14 virtualenv,
vertica-python==1.1.1fails to import with theModuleNotFoundErrorabove, whilevertica-python==1.4.0imports fine.Built the image with the CI settings (
docker compose build --build-arg install_groups="main,all_ds,dev" --build-arg skip_frontend_build=trueusing.ci/compose.ci.yaml) and ranmanage ds list_types:Verticais now listed.Ran the backend test suite in that image (
docker compose run --rm redash tests tests/): 932 passed, 1 skipped.Related Tickets & Documents
#7801
Mobile & Desktop Screenshots/Recordings (if there are UI changes)
N/A
🤖 Generated with Claude Code