Marimo integration for Hotdata runtime
Project description
hotdata-marimo
Marimo widgets for Hotdata — run SQL, browse your schema, and work with managed databases in reactive notebooks.
Install
pip install hotdata-marimo
Authentication
Set HOTDATA_API_KEY in your environment. Optionally set HOTDATA_WORKSPACE to pin a specific workspace (the first available workspace is used if unset).
Quickstart
Because Marimo reruns cells reactively, construct a widget in one cell and read its .ui or .result in the next.
# Cell 1
import hotdata_marimo as hm
client = hm.from_env()
editor = hm.sql_editor(client, default_sql="SELECT 1 AS ok")
return editor.ui
# Cell 2
return hm.query_result(editor.result)
Click Run on Hotdata after editing SQL. The editor caches the last successful result so downstream cells don't re-query on every refresh.
Workspace selection
If you have multiple workspaces or HOTDATA_WORKSPACE is unset, add an interactive picker. ws.client updates when the selection changes:
ws = hm.workspace_selector_from_env()
client = ws.client
return ws.ui
Native Marimo SQL cells
Register the Hotdata engine once and Hotdata will appear as a selectable engine in the SQL connection picker:
# Setup cell
import marimo as mo
import hotdata_marimo as hm
hm.register_hotdata_sql_engine()
client = hm.from_env()
# Any SQL cell
_df = mo.sql("SELECT * FROM orders LIMIT 10", engine=client)
Browse your schema
The table browser lets you pick a connection, search for a table, and inspect its columns — with a starter query ready to copy:
browser = hm.table_browser(client)
return browser.ui
Use browser.selected_table in downstream cells to reference the chosen table.
Managed databases
View existing managed databases and load new parquet files from a single tabbed panel:
writer = hm.managed_database_writer(client)
return writer.tab_ui
Or show just the read-only panel:
return hm.databases_panel(client)
All widgets
| Widget | Code | What you get |
|---|---|---|
| SQL editor | hm.sql_editor(client) |
.ui to show the editor, .result to read rows |
| Query result | hm.query_result(result) |
Renders a QueryResult as a table |
| Table browser | hm.table_browser(client) |
Browse connections, tables, and column metadata |
| Managed databases | hm.databases_panel(client) |
Read-only list of managed databases |
| Database writer | hm.managed_database_writer(client) |
Create databases and load parquet files |
| Workspace picker | hm.workspace_selector_from_env() |
Dropdown to switch workspaces |
| Connection picker | hm.connection_picker(client) |
Dropdown of connections in the workspace |
| Connection status | hm.connection_status(client) |
Health callout for the API and workspace |
| Connections panel | hm.connections_panel(client) |
Status + list of connections |
| Recent results | hm.recent_results(client) |
Browse past query results |
| Run history | hm.run_history(client) |
Recent query runs |
All widgets are also available as mo.ui.hotdata_* aliases (e.g. mo.ui.hotdata_sql_editor) for discovery via Marimo's autocomplete.
Demo notebook
uv run marimo edit examples/demo.py --no-token
The demo combines workspace selection, schema browsing, managed databases, query history, and a native SQL cell in a single tabbed interface.
Development
uv sync --locked
uv run pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hotdata_marimo-0.1.4.tar.gz.
File metadata
- Download URL: hotdata_marimo-0.1.4.tar.gz
- Upload date:
- Size: 178.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
450a5bd41f454959d7297e75ec9ac4e4122adbe0382c140f9f371736b8ca7207
|
|
| MD5 |
60cb6222eb0ce2b1ccc1ffc8f6492f16
|
|
| BLAKE2b-256 |
9e4227e6b6d3ad0e3a42c7024115bafca6cdb27c4697704d1af58db5a98296a6
|
Provenance
The following attestation bundles were made for hotdata_marimo-0.1.4.tar.gz:
Publisher:
publish.yml on hotdata-dev/hotdata-marimo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotdata_marimo-0.1.4.tar.gz -
Subject digest:
450a5bd41f454959d7297e75ec9ac4e4122adbe0382c140f9f371736b8ca7207 - Sigstore transparency entry: 1985703296
- Sigstore integration time:
-
Permalink:
hotdata-dev/hotdata-marimo@a30a257ee109f0e66352d8a16ea76ac7558bad94 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/hotdata-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a30a257ee109f0e66352d8a16ea76ac7558bad94 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hotdata_marimo-0.1.4-py3-none-any.whl.
File metadata
- Download URL: hotdata_marimo-0.1.4-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5df8b002b5683fd95238fc69e4ef96bf2e24b3d6834347ec7c66838be10955b
|
|
| MD5 |
650dde409d9f547b2e4977f4733c384d
|
|
| BLAKE2b-256 |
f79c8387c289c005343f50d85427ae6ba169c1025905996961c14836ba114410
|
Provenance
The following attestation bundles were made for hotdata_marimo-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on hotdata-dev/hotdata-marimo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotdata_marimo-0.1.4-py3-none-any.whl -
Subject digest:
c5df8b002b5683fd95238fc69e4ef96bf2e24b3d6834347ec7c66838be10955b - Sigstore transparency entry: 1985703397
- Sigstore integration time:
-
Permalink:
hotdata-dev/hotdata-marimo@a30a257ee109f0e66352d8a16ea76ac7558bad94 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/hotdata-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a30a257ee109f0e66352d8a16ea76ac7558bad94 -
Trigger Event:
push
-
Statement type: