Skip to content

build: add tauri-essentials extra for buckaroo.server runtime deps#753

Merged
paddymul merged 1 commit into
mainfrom
pkg/tauri-essentials-extra
May 17, 2026
Merged

build: add tauri-essentials extra for buckaroo.server runtime deps#753
paddymul merged 1 commit into
mainfrom
pkg/tauri-essentials-extra

Conversation

@paddymul
Copy link
Copy Markdown
Collaborator

Summary

Closes #751. Adds [tauri-essentials] — the Python-side runtime deps the buckaroo-tauri integration's sidecar needs to start. Resolves the gap where pip install 'buckaroo[xorq]' (per buckaroo-tauri's README) installs xorq but leaves buckaroo.server unable to import tornado, which #751 walks through in detail.

Distinct from the two existing related extras:

  • [xorq] — stat-pipeline only; scoped to XorqStatPipeline per the comment above it. Intentionally does not pull tornado.
  • [mcp] — has tornado + polars but not pandas; the sidecar's data_loading.py and session.py both import pandas unconditionally, so [mcp] only "works" today when something else (e.g. the mcp package, or xorq installed alongside) pulls pandas in transitively.

[tauri-essentials] is the minimal explicit set for the sidecar:

tauri-essentials = [
    "tornado>=6.0",
    "polars>=1.24.0",
    "pandas; python_version >= '3.13'",
    "pandas>=1.3.5; python_version < '3.13'",
]

Polars pin matches the existing [polars] extra. Pandas pin matches the existing dual-line pattern from [dev] / [test] / [marimo].

Import audit

buckaroo.server's third-party top-level imports — verified by grepping ^import |^from over buckaroo/server/*.py:

dep imported by
tornado (ioloop, web, websocket) __main__.py, app.py, handlers.py, websocket_handler.py
pandas data_loading.py:4, session.py:6
polars data_loading.py:5

No other third-party deps. Everything else is stdlib or buckaroo.* internal.

Naming

The name reflects "the Python runtime deps the Tauri integration needs to function" — not the Tauri shim itself (that's buckaroo-data/buckaroo-tauri), and not a dependency on the Tauri framework. See #751 for the discussion.

Test plan

Verified in a fresh 3.12 venv against this branch:

uv venv --python 3.12 /tmp/verify
VIRTUAL_ENV=/tmp/verify uv pip install -e '.[tauri-essentials]' --python /tmp/verify/bin/python
/tmp/verify/bin/python -m buckaroo.server --help
# usage: __main__.py [-h] [--port PORT] [--no-browser]
# Buckaroo data server
  • python -c "import tornado, pandas, polars, buckaroo" — all four importable post-install
  • python -m buckaroo.server --help — returns clean usage (was ModuleNotFoundError: No module named 'tornado' without the extra)
  • tornado==6.5.5, pandas==3.0.3, polars==1.40.1 resolved on 3.12
  • CI green

Out of scope (separate follow-ups)

🤖 Generated with Claude Code

Closes #751.

Adds `[tauri-essentials]` — the Python-side runtime deps the
buckaroo-tauri integration's sidecar needs to start. Distinct from `[xorq]`
(stat-pipeline only, no tornado) and `[mcp]` (which lacks pandas).

Top-level imports in `buckaroo.server` require all three:
- tornado — `__main__.py`, `app.py`, `handlers.py`, `websocket_handler.py`
- pandas — `data_loading.py`, `session.py`
- polars — `data_loading.py`

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

📦 TestPyPI package published

pip install --index-strategy unsafe-best-match --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ buckaroo==0.13.5.dev25991975877

or with uv:

uv pip install --index-strategy unsafe-best-match --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ buckaroo==0.13.5.dev25991975877

MCP server for Claude Code

claude mcp add buckaroo-table -- uvx --from "buckaroo[mcp]==0.13.5.dev25991975877" --index-strategy unsafe-best-match --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ buckaroo-table

📖 Docs preview

🎨 Storybook preview

@paddymul paddymul added this pull request to the merge queue May 17, 2026
Merged via the queue into main with commit d8e5341 May 17, 2026
25 of 27 checks passed
paddymul added a commit that referenced this pull request May 17, 2026
#753 added the `tauri-essentials` extras group to pyproject.toml but
didn't regenerate uv.lock, so `uv sync --locked` rejects the tree as
inconsistent. This breaks every PR's CI (Python / Lint and Docs /
Build) because pull_request runs against the merge commit and inherits
main's drifted state. Re-running `uv lock` adds the resolved entry for
tauri-essentials; no other resolutions change.

Co-authored-by: Claude Opus 4.7 (1M context) <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.

Install command 'pip install buckaroo[xorq]' silently no-ops; sidecar then fails to import tornado

1 participant