Shared ipywidgets component library for the Dashlibs suite
Project description
DashUI — Databricks Library
Part of the Dashlibs suite — Databricks libraries built for business users.
Shared ipywidgets components so every dash-* library looks and behaves the
same way inside a Databricks (or plain Jupyter) notebook: headers, the
UC Table / DataFrame / SQL source picker, output panels, status lines, and
schema introspection helpers — styled to match the team's
datapal-access Databricks App design system
(IBM Plex Sans, a teal primary, rounded-lg cards with a soft shadow)
instead of default ipywidgets styling.
What it looks like
The top card is dashsynthetic's "Single Table" tab, built entirely out of dashui components.
Installation
%pip install dash-uis
Note: the PyPI distribution is named
dash-uis(the namedash-uiwas already taken by an unrelated package). The importable module is stilldashui.
Quick Start
import dashui
from IPython.display import display
src = dashui.source_selector()
run_btn = dashui.action_button("Run", style="success", emoji="▶")
out = dashui.output_panel()
def on_run(b):
with out:
out.clear_output()
kind, value = src.value()
print(f"✅ Source: {kind} = {value!r}")
run_btn.on_click(on_run)
ui = dashui.card([
dashui.header("My Library", library="dashsynthetic", emoji="🧬"),
dashui.section("Step 1: Source data"),
src.toggle, src.box,
run_btn, out,
])
display(ui)
Components
header(title, library="default", emoji="", subtitle="")
The banner at the top of every launch() UI. Color comes from a per-library accent
(dashsynthetic is purple, dashobserve is red, etc. — see dashui.theme.ACCENTS).
dashui.header("DashObserve — Data Observability", library="dashobserve", emoji="👁️")
section(title)
A small uppercase step divider with a bottom border, used to break a form into steps ("Step 1: Source data", "Step 2: Generation settings", ...).
dashui.section("Step 2: Generation settings")
source_selector(label="Source:")
The UC Table / DataFrame variable / SQL Query picker used by every Dashlibs UI that
reads from Databricks. Returns a SourceSelector with .toggle, .box (swap-on-select
widgets) and helpers to resolve the chosen source.
src = dashui.source_selector()
ui = dashui.card([src.toggle, src.box])
kind, value = src.value() # ("table", "catalog.schema.customers")
df = src.resolve_df() # resolves straight to a Spark DataFrame
action_button(text, style="primary", emoji="")
A styled button matching the datapal-access button variants. style is one of
primary | success | warning | danger | info.
run_btn = dashui.action_button("Generate Synthetic Data", style="success", emoji="▶")
status_line(text, kind="info")
A one-line colored status message. kind is one of success | error | warning | info.
dashui.status_line("Row count 9,842 within expected bounds", kind="success")
dashui.status_line("Schema changed — added: discount_code", kind="warning")
output_panel()
The standard scrollable result/error area used under every action button — an
ipywidgets.Output pre-styled with a muted background and rounded border.
out = dashui.output_panel()
with out:
print("✅ Done")
running_list(formatter)
A live-updating numbered list for "added items" accumulators (tables, relationships,
monitors, ...). Returns (output_widget, render_fn).
items = []
out, render = dashui.running_list(lambda i, item: f"{i}. {item['name']}")
items.append({"name": "Customer"})
render(items)
card(children, padding="20px")
The bordered, shadowed container every launch() UI is wrapped in. Injects the shared
<style> block (fonts, button variants, card shell) once per notebook kernel.
ui = dashui.card([header, section_title, src.toggle, src.box, run_btn, out])
display(ui)
list_columns(table) / list_columns_safe(table)
UC table column introspection — list_columns_safe returns [] instead of raising,
which is what you want when populating a dropdown in a UI callback.
cols = dashui.list_columns_safe("catalog.schema.customers")
Design tokens
The raw palette is also exported for building fully custom widgets that still match
the system: dashui.PRIMARY, dashui.SUCCESS, dashui.DANGER, dashui.WARNING,
dashui.BORDER, dashui.CARD, dashui.MUTED, dashui.FONT_SANS, dashui.FONT_MONO.
Part of Dashlibs
| Library | Purpose |
|---|---|
| dash-dq | Data Quality |
| dash-synthetic | Synthetic Data Generation |
| dash-observe | Data Observability (freshness, volume, schema) |
| dash-ml | ML Model Monitoring |
| dash-ingest | Data Ingestion |
| dash-gov | Data Governance |
| dash-ontology | Ontology & Lineage for AI |
| dash-ui | Shared UI components (PyPI: dash-uis) |
Quality & Contributing
- 10 unit tests, zero Spark dependency to run them —
pytest tests/ -v - Lint-clean (
ruff check dashui/), PEP 561 typed (py.typed) - Every change ships through a reviewed pull request; CI (lint → test on Python 3.9–3.12 → build) gates every PR and every release
- See CONTRIBUTING.md for dev setup, CHANGELOG.md for release history, SECURITY.md to report a vulnerability, and CODE_OF_CONDUCT.md
License
Apache 2.0
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 dash_uis-0.3.1.tar.gz.
File metadata
- Download URL: dash_uis-0.3.1.tar.gz
- Upload date:
- Size: 102.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32e54e58f290f4884cb34836264e7f4c3de8e6e2544da3e08e7d1865cb3e7286
|
|
| MD5 |
1e2f13cd8c3fd9b8ad228ffa9f456900
|
|
| BLAKE2b-256 |
4c0a436180c4fc7434565aac8f9aaeba448716875e809cfe7d28fd2b0b271864
|
Provenance
The following attestation bundles were made for dash_uis-0.3.1.tar.gz:
Publisher:
release.yml on dash-libs/dash-ui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dash_uis-0.3.1.tar.gz -
Subject digest:
32e54e58f290f4884cb34836264e7f4c3de8e6e2544da3e08e7d1865cb3e7286 - Sigstore transparency entry: 2046892786
- Sigstore integration time:
-
Permalink:
dash-libs/dash-ui@c91a279187b355fc98d7629171c37db02af57469 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dash-libs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c91a279187b355fc98d7629171c37db02af57469 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dash_uis-0.3.1-py3-none-any.whl.
File metadata
- Download URL: dash_uis-0.3.1-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
558605f93873333220f93d4e3c6b7220f97c23160d5c3663cf329c48463cd6ed
|
|
| MD5 |
5bf997c08d19085277e7420c950f0902
|
|
| BLAKE2b-256 |
98df4bbaa009b7de6896ddca1e1a709f17b2ac7395d47bc0ed7b4c397fb9b185
|
Provenance
The following attestation bundles were made for dash_uis-0.3.1-py3-none-any.whl:
Publisher:
release.yml on dash-libs/dash-ui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dash_uis-0.3.1-py3-none-any.whl -
Subject digest:
558605f93873333220f93d4e3c6b7220f97c23160d5c3663cf329c48463cd6ed - Sigstore transparency entry: 2046892798
- Sigstore integration time:
-
Permalink:
dash-libs/dash-ui@c91a279187b355fc98d7629171c37db02af57469 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/dash-libs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c91a279187b355fc98d7629171c37db02af57469 -
Trigger Event:
workflow_dispatch
-
Statement type: