import marimo __generated_with = "0.18.4" app = marimo.App(width="full", app_title="🤩 Data") @app.cell def _(): from pathlib import Path import altair as alt import duckdb import marimo as mo import sys ROOT = Path(__file__).parent.parent sys.path.append(ROOT.as_posix()) return ROOT, alt, duckdb, mo @app.cell def _(): # internal imports from src.marimo_apps import UI return (UI,) @app.cell def _(ROOT, mo): df = mo.sql( f""" FROM '{ROOT / "data/isotopes.csv"}' """, output=False, ) return (df,) @app.cell def _(alt, mo): df2 = mo.sql( """ SELECT *, CASE WHEN Number BETWEEN 58 AND 71 THEN 9 WHEN Number BETWEEN 90 AND 103 THEN 10 WHEN Number <= 2 THEN 1 WHEN Number <= 10 THEN 2 WHEN Number <= 18 THEN 3 WHEN Number <= 36 THEN 4 WHEN Number <= 54 THEN 5 WHEN Number <= 86 THEN 6 ELSE 7 END AS period, CASE WHEN Number BETWEEN 58 AND 71 THEN (Number - 58) % 14 + 3 WHEN Number BETWEEN 90 AND 103 THEN (Number - 90) % 14 + 3 WHEN Number <= 4 THEN 2 - Number % 2 WHEN Number <= 10 THEN Number + 8 WHEN Number <= 12 THEN Number - 10 WHEN Number <= 18 THEN Number WHEN Number <= 20 THEN Number % 2 + 1 WHEN Number <= 57 THEN (Number - 1) % 18 + 1 WHEN Number <= 86 THEN (Number - 33) % 18 + 1 WHEN Number <= 89 THEN Number - 86 ELSE Number - 100 END AS group, FROM df """, output=False, ) ptable = ( alt.Chart(df2) .mark_text( align="left", baseline="middle", font="DejaVu", fontSize=13, fontWeight=600, opacity=1, ) .encode( x=alt.X("group:N").axis(None), y=alt.Y( "period:Q", # sort="-period" ) .scale(domain=(10.5, 0.5), nice=False) .axis(None), text="Symbol", tooltip=["count()"], ) ) # .configure_view(continuousHeight=480) return (df2, ptable) @app.cell def _(UI, df2, mo, ptable): md = mo.md(f""" # Yes, Notebooks In Production | PyCon 2026 This app illustrates database queries, various ways to look at tabular data, and interactive Altair plots. ## Sample Data: Isotopes of Chemical Elements {mo.ui.table(df2)} """) dashboard = mo.vstack([md, ptable]) mo.hstack([UI.NAV, dashboard], widths=[1, 5]) return @app.cell def _(UI): UI.BUILD_DETAILS return if __name__ == "__main__": app.run()