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

dash_uis-0.2.3.tar.gz (93.9 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.3-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dash_uis-0.2.3.tar.gz
  • Upload date:
  • Size: 93.9 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.3.tar.gz
Algorithm Hash digest
SHA256 a2f6cf35651acc5c9308f2977225e15a427b093db85d60c13d7e81d238dd7984
MD5 f22f8ff6c23f7cf7680193364a759f7e
BLAKE2b-256 89bdaf8fe9c43df55b58bfb1775340dbd27bf087beea06b4722a7b3b300f6ff9

See more details on using hashes here.

Provenance

The following attestation bundles were made for dash_uis-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: dash_uis-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 16.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d0abbac3c98704571ff6539cf656bd9cb5e5ad3585fd772442b3860e987c693e
MD5 cd81012b4b3792af4ce6888c44cedacb
BLAKE2b-256 579cb6c72ecfaf2a30bdeb016d6a2ca37eb84534387bd88bf5abfb809b2db595

See more details on using hashes here.

Provenance

The following attestation bundles were made for dash_uis-0.2.3-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