You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a CI job that tests Buckaroo in a pyodide/marimo WASM environment.
Steps
Identify the blocker — the issue mentions fastparquet fails in pyodide. Determine:
Is fastparquet imported unconditionally? → Make it conditional
Can we use a WASM-compatible serialization fallback (JSON, or Arrow IPC via pyarrow-wasm)?
Make fastparquet optional — wrap import fastparquet in try/except everywhere it's used. Fall back to JSON serialization in pyodide environments (detect via sys.modules.get('pyodide')).
Add CI job in .github/workflows/:
Use pyodide-build or a Playwright-based approach that loads pyodide in a browser
Install buckaroo via micropip.install("buckaroo")
Run a basic smoke test: create a DataFrame, render with BuckarooWidget, verify no errors
Made fastparquet non-mandatory for base installs by removing it from core dependencies and introducing a new optional parquet extra (fastparquet>=2024.5.0). This helps Pyodide installs avoid pulling an incompatible package by default. pyproject.tomlL34-L41pyproject.tomlL108-L111
Added explicit Pyodide runtime detection in serialization utilities and introduced a fallback path in to_parquet:
If fastparquet is unavailable and runtime is Pyodide, Buckaroo now serializes with pyarrow (after JSON-encoding object dtype columns), instead of immediately erroring.
The fastparquet blocker will be resolved when PR #549 merges. The WASM marimo CI is partially working via PR #532's approach. See also #513 (re-enable full WASM tests).
Done. TestWASMMarimo job in .github/workflows/checks.yml runs scripts/test_playwright_wasm_marimo.sh against packages/buckaroo-js-core/pw-tests/wasm-marimo.spec.ts (Pyodide marimo build) on every CI run. Re-enabling the full suite (currently smoke-only) is tracked in #513.
Activity
paddymul commentedon Feb 26, 2026
Implementation Plan
Overview
Add a CI job that tests Buckaroo in a pyodide/marimo WASM environment.
Steps
Identify the blocker — the issue mentions
fastparquetfails in pyodide. Determine:Make fastparquet optional — wrap
import fastparquetin try/except everywhere it's used. Fall back to JSON serialization in pyodide environments (detect viasys.modules.get('pyodide')).Add CI job in
.github/workflows/:pyodide-buildor a Playwright-based approach that loads pyodide in a browsermicropip.install("buckaroo")Coordinate with Re-enable full WASM marimo Playwright test suite #513 — the WASM marimo Playwright tests are related. This CI job could be the same infrastructure.
Files to modify
buckaroo/serialization_utils.py— conditional fastparquet import.github/workflows/— new or extended CI jobpyproject.toml— make fastparquet an optional dependency if not already@codex
chatgpt-codex-connector commentedon Feb 26, 2026
Summary
fastparquetnon-mandatory for base installs by removing it from core dependencies and introducing a new optionalparquetextra (fastparquet>=2024.5.0). This helps Pyodide installs avoid pulling an incompatible package by default. pyproject.tomlL34-L41 pyproject.tomlL108-L111to_parquet:fastparquetis unavailable and runtime is Pyodide, Buckaroo now serializes withpyarrow(after JSON-encoding object dtype columns), instead of immediately erroring.ImportErrorwhenfastparquetis missing). buckaroo/serialization_utils.pyL21-L23 buckaroo/serialization_utils.pyL182-L200PyodideBuckarooSmokethat runs a browser-based Playwright smoke test:micropip.install("buckaroo"),BuckarooWidget,Testing
python -m py_compile buckaroo/serialization_utils.pypytest -q tests/unit/serialization_utils_test.py(failed in this environment becausepandasis not installed)uv sync --dev --extra test(failed due network/tunnel fetch error to PyPI metadata in this environment)Committed on branch
workas:e396219— Add pyodide smoke CI and make fastparquet optional.Also created the follow-up PR via the
make_prtool with title:View task →
paddymul commentedon Feb 26, 2026
Related: PRs #532, #509, #549
The fastparquet blocker will be resolved when PR #549 merges. The WASM marimo CI is partially working via PR #532's approach. See also #513 (re-enable full WASM tests).
paddymul commentedon May 17, 2026
Done.
TestWASMMarimojob in.github/workflows/checks.ymlrunsscripts/test_playwright_wasm_marimo.shagainstpackages/buckaroo-js-core/pw-tests/wasm-marimo.spec.ts(Pyodide marimo build) on every CI run. Re-enabling the full suite (currently smoke-only) is tracked in #513.