Skip to main content

Shared ipywidgets component library for the Dashlibs suite

Project description

DashUI — Databricks Library

CI PyPI License

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

DashUI components — header, source picker, buttons, status lines, output panel

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 name dash-ui was already taken by an unrelated package). The importable module is still dashui.

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-relate 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

dash_uis-0.2.1.tar.gz (97.2 kB view details)

Uploaded Source

Built Distribution

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

dash_uis-0.2.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file dash_uis-0.2.1.tar.gz.

File metadata

  • Download URL: dash_uis-0.2.1.tar.gz
  • Upload date:
  • Size: 97.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dash_uis-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ed7bff2694580775c580def2e8d4bb80a74427d0dc65afccf0612c951415742d
MD5 f14e08420dea3cf3f8c18826b9f33f97
BLAKE2b-256 492c973529879e62baeda45db7ba065807de9910226936ec4bc649e6ba0a6b81

See more details on using hashes here.

Provenance

The following attestation bundles were made for dash_uis-0.2.1.tar.gz:

Publisher: release.yml on dash-libs/dash-ui

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

File details

Details for the file dash_uis-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dash_uis-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dash_uis-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c379fbebb5f80ca7b20e4ef97d9088a2d94619bae74b8570774928e038e9fab
MD5 494d19ad46202cea6891bf0376740492
BLAKE2b-256 fb025f796e13bacb3bcb91d842593a2a9b461a416c8a66f8d607462f7a2fecae

See more details on using hashes here.

Provenance

The following attestation bundles were made for dash_uis-0.2.1-py3-none-any.whl:

Publisher: release.yml on dash-libs/dash-ui

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