Skip to content

fix: use Pyodide-bundled fastparquet for WASM marimo test#532

Merged
paddymul merged 1 commit into
mainfrom
fix/marimo-wasm-pyodide-fastparquet
Feb 21, 2026
Merged

fix: use Pyodide-bundled fastparquet for WASM marimo test#532
paddymul merged 1 commit into
mainfrom
fix/marimo-wasm-pyodide-fastparquet

Conversation

@paddymul

Copy link
Copy Markdown
Collaborator

Summary

  • Fix WASM marimo test by pre-installing fastparquet and pyarrow from Pyodide's native WASM bundle before installing buckaroo with deps=False
  • The root cause was that micropip.install("buckaroo") failed with "Can't find a pure Python 3 wheel" because micropip's dependency resolution tried to fetch pyarrow (a C extension) from PyPI, even though Pyodide 0.27.7 bundles both fastparquet 2024.5.0 and pyarrow natively
  • The fix explicitly installs WASM-bundled packages first, then installs buckaroo's pure-Python deps, then buckaroo itself with deps=False to bypass resolution

Changes

  • docs/example-notebooks/marimo-wasm/buckaroo_simple.py: Pre-install fastparquet/pyarrow from Pyodide bundle, install buckaroo with deps=False
  • buckaroo/serialization_utils.py: Graceful try/except ImportError around fastparquet import (defense in depth)
  • packages/buckaroo-js-core/pw-tests/wasm-marimo.spec.ts: Add browser console/error capture for CI debugging, increase timeouts
  • packages/buckaroo-js-core/playwright.config.wasm-marimo.ts: Increase global timeout to 180s
  • docs/extra-html/example_notebooks/buckaroo_simple/: Generated WASM HTML output

Test plan

  • Ran Playwright WASM marimo test locally - passes in ~22s
  • Verify CI passes with the new WASM test

🤖 Generated with Claude Code

Install fastparquet and pyarrow from Pyodide's native WASM bundle
before installing buckaroo with deps=False, avoiding micropip's
dependency resolution failure on non-pure-Python wheels.

- Pre-install fastparquet, pyarrow from Pyodide bundle in buckaroo_simple.py
- Install buckaroo with deps=False to skip failing dep resolution
- Add browser console/error capture to Playwright test for CI debugging
- Increase test timeouts (120s widget, 180s global) for WASM compilation
- Make serialization_utils.py handle missing fastparquet gracefully
- Include generated WASM HTML output

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@paddymul paddymul force-pushed the fix/marimo-wasm-pyodide-fastparquet branch from b49eb37 to 4596128 Compare February 21, 2026 21:58
@paddymul paddymul merged commit eb00f96 into main Feb 21, 2026
19 of 20 checks passed
paddymul added a commit that referenced this pull request Feb 22, 2026
Install fastparquet and pyarrow from Pyodide's native WASM bundle
before installing buckaroo with deps=False, avoiding micropip's
dependency resolution failure on non-pure-Python wheels.

- Pre-install fastparquet, pyarrow from Pyodide bundle in buckaroo_simple.py
- Install buckaroo with deps=False to skip failing dep resolution
- Add browser console/error capture to Playwright test for CI debugging
- Increase test timeouts (120s widget, 180s global) for WASM compilation
- Make serialization_utils.py handle missing fastparquet gracefully
- Include generated WASM HTML output

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.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