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.1.3.tar.gz (142.7 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.1.3-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dash_uis-0.1.3.tar.gz
  • Upload date:
  • Size: 142.7 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.1.3.tar.gz
Algorithm Hash digest
SHA256 7b77d67875f6f45bed4f8ce29a32548b1ab00e758893121225de0e0311f26f46
MD5 0f3640644f4896e067558a14baae683b
BLAKE2b-256 5aa5b5998495523ad59181614efa4366b33ae73b1b25060ad894184b8f13c5d7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: dash_uis-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.6 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.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 aeb65003883cdef29cc9f9a6462823083ddd1bc1bebaf389c11e388c3549ecab
MD5 edf026295c8ad2d37677cb121cc9833f
BLAKE2b-256 6178e8ba38c8d38ce361426ab32288e5c24db95a9fac573045df35d02686a1f0

See more details on using hashes here.

Provenance

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