Skip to main content

Python framework for building Hotdata integrations: workspace/session runtime, query execution, and managed databases

Project description

hotdata-framework

A Python framework for building Hotdata integrations.

Shared runtime primitives for Hotdata integrations: workspace/session semantics, execution context, query state, run history, and replayable result handles. Framework packages (Marimo, Jupyter, Streamlit, LangGraph) depend on this package.

Runtime boundary and guarantees are defined in CONTRACT.md.

Features

  • Environment-driven client setup — create clients from HOTDATA_API_KEY, optional HOTDATA_API_URL, HOTDATA_WORKSPACE, and HOTDATA_SANDBOX.
  • Workspace resolution — choose an explicit workspace from env, otherwise discover workspaces and select the active workspace or first available workspace.
  • Sandbox/session propagation — pass sandbox session context through the SDK via X-Session-Id.
  • HTTP resilience — configure SDK retries for transient connection failures and retry SQL execution on stale pooled sockets.
  • SQL execution helper — run SQL through POST /v1/query, poll async query runs when needed, and return a QueryResult.
  • Result utilities — convert query results to records, pandas DataFrames, or metadata dictionaries for adapter display layers.
  • History helpers — list recent results and query run history with normalized dataclasses.
  • Managed databases — create Hotdata-owned catalogs, declare tables, upload parquet, and load managed tables (mirrors hotdata databases in the CLI).
  • Health helpers — build compact API/workspace health summaries for UI integrations.

Install:

uv pip install hotdata-framework
# or: pip install hotdata-framework

Example:

python examples/basic_usage.py

Development (uses uv; creates .venv/ in this repo):

uv sync --locked
uv run pytest

uv.lock is checked in so CI can run uv sync --locked. The default dev group (pytest) is enabled via [tool.uv] default-groups.

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

hotdata_framework-0.6.0.tar.gz (94.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hotdata_framework-0.6.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file hotdata_framework-0.6.0.tar.gz.

File metadata

  • Download URL: hotdata_framework-0.6.0.tar.gz
  • Upload date:
  • Size: 94.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hotdata_framework-0.6.0.tar.gz
Algorithm Hash digest
SHA256 99303170ee2d0bef2e440680dfa3232ed317f4333cfc7642624e2be04dc76c7f
MD5 45a63d17f35bdc6db0c26efbfcbaa011
BLAKE2b-256 3d97821fbacc5d22ad5ce3d0d2db995b53188000821efd135342c59c4db7334a

See more details on using hashes here.

Provenance

The following attestation bundles were made for hotdata_framework-0.6.0.tar.gz:

Publisher: publish.yml on hotdata-dev/sdk-python-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hotdata_framework-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hotdata_framework-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a38d28ba8efa8b6869f32604e2440fcff84435415af262306dc0f7da0aee2886
MD5 cf89ecbe8a2242df3fa5a09fb2ca96e8
BLAKE2b-256 edc5e02b08f8527eb4a020d23bf61bf0f61fc163a604d5da5a01fde3360c3eac

See more details on using hashes here.

Provenance

The following attestation bundles were made for hotdata_framework-0.6.0-py3-none-any.whl:

Publisher: publish.yml on hotdata-dev/sdk-python-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page