fix: replace quickjs with mini-racer for Python 3.13 + Windows support#727
Open
kkollsga wants to merge 1 commit intoKanaries:mainfrom
Open
fix: replace quickjs with mini-racer for Python 3.13 + Windows support#727kkollsga wants to merge 1 commit intoKanaries:mainfrom
kkollsga wants to merge 1 commit intoKanaries:mainfrom
Conversation
…s#707) quickjs breaks on Python 3.13 + Windows because the upstream maintainer will not build Windows wheels. This commit: - Removes quickjs from required dependencies entirely - Adds mini-racer (V8) as optional dep: pip install pygwalker[export] - Lazily initializes the JS runtime only when static HTML export is used - Gives a clear error message with install instructions if missing - Adds tests for dsl_transform module Closes Kanaries#707, closes Kanaries#726. Co-authored-by: Claude <noreply@anthropic.com>
Member
|
Hi, thanks for you PR; Can you share a screenshot or video of new version of pygwalker working in python 3.13, just want to make sure this is a real work of fix instead of a auto PR BOT's pure code work. I am not a maintainer aginst code agent, but i do want to make sure people are putting real effort for a real fix and understand what the agent have done. |
Author
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
quickjsbreaks on Python 3.13 + Windows because the upstream maintainer will not build Windows wheels. This PR removesquickjsentirely and replaces it withmini-racer(V8-based), which has prebuilt wheels for all major platforms.The JS runtime is only used for static HTML chart export (
to_chart_html,Component.to_html(render_type="pure_chart")). The core interactivewalk()/render()workflow never touches it.Changes
pyproject.toml— removedquickjsfrom required deps, addedexport = ["mini-racer>=0.12"]optional extrapygwalker/utils/dsl_transform.py— replaced eager quickjs import with lazy mini-racer initializationtests/test_dsl_transform.py— new test file covering both happy path and error pathChecklist
pygwalkerdoesn't work withPython 3.13andWindowsbecause ofquickjs#707What changes for users
pip install pygwalkeron Py3.13 + Windowswalk()/render()interactivelypip install pygwalker[export]Note on the existing fix attempt
The branch
claude/fix-quickjs-python-01GWFAZsTowE67S2bsCkWFeg(commit7200df6) uses dukpy (Duktape, ES5.1 only) which cannot execute the ESNext UMD bundles built by the project's Vite/esbuild pipeline. This PR uses V8 via mini-racer instead.Test plan
import pygwalkerworks without any JS runtime installeddsl_to_workflow({})returns valid workflow JSON via mini-racervega_to_dsl()converts Vega-Lite spec correctly via mini-racerImportErrorwith install instructions when mini-racer is missing🤖 Generated with Claude Code