From 786dbbc3345b9a69b3cb11aa7841b8a077bde84a Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:13:58 -0400 Subject: [PATCH 1/9] calc --- shiny/api-examples/calc/app-express.py | 32 ++++++++++++++++++++++++++ shiny/api-examples/calc/app.py | 18 ++++++++------- 2 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 shiny/api-examples/calc/app-express.py diff --git a/shiny/api-examples/calc/app-express.py b/shiny/api-examples/calc/app-express.py new file mode 100644 index 000000000..2361cea80 --- /dev/null +++ b/shiny/api-examples/calc/app-express.py @@ -0,0 +1,32 @@ +import random +import time + +from shiny import reactive +from shiny.express import input, render, ui + + +@reactive.calc +def first(): + input.first() + p = ui.Progress() + for i in range(30): + p.set(i / 30, message="Computing, please wait...") + time.sleep(0.1) + p.close() + return random.randint(1, 1000) + + +@reactive.calc +def second(): + input.second() + return random.randint(1, 1000) + + +with ui.card(): + with ui.layout_columns(): + ui.input_action_button("first", "Invalidate first (slow) computation") + ui.input_action_button("second", "Invalidate second (fast) computation") + + @render.text + def result(): + return first() + second() diff --git a/shiny/api-examples/calc/app.py b/shiny/api-examples/calc/app.py index 603313593..fe2620253 100644 --- a/shiny/api-examples/calc/app.py +++ b/shiny/api-examples/calc/app.py @@ -4,16 +4,18 @@ from shiny import App, Inputs, Outputs, Session, reactive, render, ui app_ui = ui.page_fluid( - ui.input_action_button("first", "Invalidate first (slow) computation"), - " ", - ui.input_action_button("second", "Invalidate second (fast) computation"), - ui.br(), - ui.output_ui("result"), + ui.card( + ui.layout_columns( + ui.input_action_button("first", "Invalidate first (slow) computation"), + ui.input_action_button("second", "Invalidate second (fast) computation"), + ), + ui.output_text_verbatim("result"), + ) ) def server(input: Inputs, output: Outputs, session: Session): - @reactive.Calc + @reactive.calc def first(): input.first() p = ui.Progress() @@ -23,12 +25,12 @@ def first(): p.close() return random.randint(1, 1000) - @reactive.Calc + @reactive.calc def second(): input.second() return random.randint(1, 1000) - @render.ui + @render.text def result(): return first() + second() From d6b7cafeb92807efeb85968ed2d0d3b7250ce204 Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:18:38 -0400 Subject: [PATCH 2/9] reactive.effect --- shiny/api-examples/effect/app-express.py | 15 +++++++++++++++ shiny/api-examples/effect/app.py | 21 ++++++++++++--------- 2 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 shiny/api-examples/effect/app-express.py diff --git a/shiny/api-examples/effect/app-express.py b/shiny/api-examples/effect/app-express.py new file mode 100644 index 000000000..363ed50cd --- /dev/null +++ b/shiny/api-examples/effect/app-express.py @@ -0,0 +1,15 @@ +from shiny import reactive +from shiny.express import input, ui + +ui.input_action_button("show", "Show modal dialog") + + +@reactive.effect +@reactive.event(input.show) +def show_important_message(): + m = ui.modal( + "This is a somewhat important message.", + easy_close=True, + footer=None, + ) + ui.modal_show(m) diff --git a/shiny/api-examples/effect/app.py b/shiny/api-examples/effect/app.py index 8b9c2c599..8672a4b8b 100644 --- a/shiny/api-examples/effect/app.py +++ b/shiny/api-examples/effect/app.py @@ -1,17 +1,20 @@ -from shiny import App, Inputs, Outputs, Session, reactive, ui +from shiny import App, reactive, ui -app_ui = ui.page_fluid(ui.input_action_button("btn", "Press me!")) +app_ui = ui.page_fixed( + ui.input_action_button("show", "Show modal dialog"), +) -def server(input: Inputs, output: Outputs, session: Session): - @reactive.Effect - @reactive.event(input.btn) +def server(input, output, session): + @reactive.effect + @reactive.event(input.show) def _(): - ui.insert_ui( - ui.p("Number of clicks: ", input.btn()), - selector="#btn", - where="afterEnd", + m = ui.modal( + "This is a somewhat important message.", + title="Somewhat important message", + easy_close=True, ) + ui.modal_show(m) app = App(app_ui, server) From 1f2dd1e43ff024a831076099ba710db7553c059d Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:20:19 -0400 Subject: [PATCH 3/9] progress --- shiny/api-examples/Progress/app-express.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 shiny/api-examples/Progress/app-express.py diff --git a/shiny/api-examples/Progress/app-express.py b/shiny/api-examples/Progress/app-express.py new file mode 100644 index 000000000..465d7c740 --- /dev/null +++ b/shiny/api-examples/Progress/app-express.py @@ -0,0 +1,21 @@ +import asyncio + +from shiny import reactive +from shiny.express import input, render, ui + +ui.input_action_button("button", "Compute"), + + +@render.text +@reactive.event(input.button) +async def compute(): + with ui.Progress(min=1, max=15) as p: + p.set(message="Calculation in progress", detail="This may take a while...") + + for i in range(1, 15): + p.set(i, message="Computing") + await asyncio.sleep(0.1) + # Normally use time.sleep() instead, but it doesn't yet work in Pyodide. + # https://github.com/pyodide/pyodide/issues/2354 + + return "Done computing!" From e30ca7a242d176f4e7274b29bf6e7800b01c631e Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:24:18 -0400 Subject: [PATCH 4/9] reactive.value --- shiny/api-examples/Value/app-express.py | 28 +++++++++++++++++++++++++ shiny/api-examples/Value/app.py | 14 ++++++------- 2 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 shiny/api-examples/Value/app-express.py diff --git a/shiny/api-examples/Value/app-express.py b/shiny/api-examples/Value/app-express.py new file mode 100644 index 000000000..80a55e165 --- /dev/null +++ b/shiny/api-examples/Value/app-express.py @@ -0,0 +1,28 @@ +from shiny import reactive +from shiny.express import input, render, ui + +val = reactive.Value(0) + + +@reactive.effect +@reactive.event(input.minus) +def _(): + newVal = val.get() - 1 + val.set(newVal) + + +@reactive.effect +@reactive.event(input.plus) +def _(): + newVal = val.get() + 1 + val.set(newVal) + + +with ui.sidebar(): + ui.input_action_button("minus", "-1") + ui.input_action_button("plus", "+1") + + +@render.text +def value(): + return str(val.get()) diff --git a/shiny/api-examples/Value/app.py b/shiny/api-examples/Value/app.py index fe0112954..04479492a 100644 --- a/shiny/api-examples/Value/app.py +++ b/shiny/api-examples/Value/app.py @@ -1,10 +1,10 @@ from shiny import App, Inputs, Outputs, Session, reactive, render, ui -app_ui = ui.page_fluid( - ui.input_action_button("minus", "-1"), - " ", - ui.input_action_button("plus", "+1"), - ui.br(), +app_ui = ui.page_sidebar( + ui.sidebar( + ui.input_action_button("minus", "-1"), + ui.input_action_button("plus", "+1"), + ), ui.output_text("value"), ) @@ -12,13 +12,13 @@ def server(input: Inputs, output: Outputs, session: Session): val = reactive.Value(0) - @reactive.Effect + @reactive.effect @reactive.event(input.minus) def _(): newVal = val.get() - 1 val.set(newVal) - @reactive.Effect + @reactive.effect @reactive.event(input.plus) def _(): newVal = val.get() + 1 From f3cfd43e492af84805f62faf3234d20dfaeee106 Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:26:56 -0400 Subject: [PATCH 5/9] invalidate_later --- shiny/api-examples/invalidate_later/app-express.py | 10 ++++++++++ shiny/api-examples/invalidate_later/app.py | 9 ++------- 2 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 shiny/api-examples/invalidate_later/app-express.py diff --git a/shiny/api-examples/invalidate_later/app-express.py b/shiny/api-examples/invalidate_later/app-express.py new file mode 100644 index 000000000..270c5e889 --- /dev/null +++ b/shiny/api-examples/invalidate_later/app-express.py @@ -0,0 +1,10 @@ +import random + +from shiny import reactive +from shiny.express import render + + +@render.text +def value(): + reactive.invalidate_later(0.5) + return "Random int: " + str(random.randint(0, 10000)) diff --git a/shiny/api-examples/invalidate_later/app.py b/shiny/api-examples/invalidate_later/app.py index 7966d01f0..66de8233d 100644 --- a/shiny/api-examples/invalidate_later/app.py +++ b/shiny/api-examples/invalidate_later/app.py @@ -2,16 +2,11 @@ from shiny import App, Inputs, Outputs, Session, reactive, render, ui -app_ui = ui.page_fluid(ui.output_ui("value")) +app_ui = ui.page_fluid(ui.output_text("value")) def server(input: Inputs, output: Outputs, session: Session): - @reactive.Effect - def _(): - reactive.invalidate_later(0.5) - print("Random int: ", random.randint(0, 10000)) - - @render.ui + @render.text def value(): reactive.invalidate_later(0.5) return "Random int: " + str(random.randint(0, 10000)) From 0693f995fc7c2c015d9a7a5b76502d55870f3abe Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 09:28:40 -0400 Subject: [PATCH 6/9] reactive.isolate --- shiny/api-examples/isolate/app-express.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 shiny/api-examples/isolate/app-express.py diff --git a/shiny/api-examples/isolate/app-express.py b/shiny/api-examples/isolate/app-express.py new file mode 100644 index 000000000..52f8b9c38 --- /dev/null +++ b/shiny/api-examples/isolate/app-express.py @@ -0,0 +1,23 @@ +import matplotlib.pyplot as plt +import numpy as np + +from shiny import reactive +from shiny.express import input, render, ui + +ui.input_slider("n", "Number of observations", min=0, max=1000, value=500) +ui.input_action_button("go", "Go!", class_="btn-success") + + +@render.plot(alt="A histogram") +def plot(): + # Take a reactive dependency on the action button... + input.go() + + # ...but don't take a reactive dependency on the slider + with reactive.isolate(): + np.random.seed(19680801) + x = 100 + 15 * np.random.randn(input.n()) + + fig, ax = plt.subplots() + ax.hist(x, bins=30, density=True) + return fig From dcb8dee8f63f7e3c957f7e0eb7f8f86d72722519 Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 11:00:29 -0400 Subject: [PATCH 7/9] Rename app.py examples to app-core.py --- shiny/api-examples/Module/{app.py => app-core.py} | 0 shiny/api-examples/Progress/{app.py => app-core.py} | 0 shiny/api-examples/Renderer/{app.py => app-core.py} | 0 shiny/api-examples/SafeException/{app.py => app-core.py} | 0 .../SilentCancelOutputException/{app.py => app-core.py} | 0 shiny/api-examples/SilentException/{app.py => app-core.py} | 0 shiny/api-examples/Value/{app.py => app-core.py} | 0 shiny/api-examples/accordion/{app.py => app-core.py} | 0 shiny/api-examples/accordion_panel/{app.py => app-core.py} | 0 shiny/api-examples/as_fill_item/{app.py => app-core.py} | 0 shiny/api-examples/as_fillable_container/{app.py => app-core.py} | 0 shiny/api-examples/calc/{app.py => app-core.py} | 0 shiny/api-examples/card/{app.py => app-core.py} | 0 shiny/api-examples/card_body/{app.py => app-core.py} | 0 shiny/api-examples/card_footer/{app.py => app-core.py} | 0 shiny/api-examples/card_header/{app.py => app-core.py} | 0 shiny/api-examples/close/{app.py => app-core.py} | 0 shiny/api-examples/data_frame/{app.py => app-core.py} | 0 shiny/api-examples/download/{app.py => app-core.py} | 0 shiny/api-examples/download_button/{app.py => app-core.py} | 0 shiny/api-examples/download_link/{app.py => app-core.py} | 0 shiny/api-examples/dynamic_route/{app.py => app-core.py} | 0 shiny/api-examples/effect/{app.py => app-core.py} | 0 shiny/api-examples/event/{app.py => app-core.py} | 0 shiny/api-examples/extended_task/{app.py => app-core.py} | 0 shiny/api-examples/file_reader/{app.py => app-core.py} | 0 shiny/api-examples/include_css/{app.py => app-core.py} | 0 shiny/api-examples/include_js/{app.py => app-core.py} | 0 shiny/api-examples/input_action_button/{app.py => app-core.py} | 0 shiny/api-examples/input_action_link/{app.py => app-core.py} | 0 shiny/api-examples/input_checkbox/{app.py => app-core.py} | 0 shiny/api-examples/input_checkbox_group/{app.py => app-core.py} | 0 shiny/api-examples/input_date/{app.py => app-core.py} | 0 shiny/api-examples/input_date_range/{app.py => app-core.py} | 0 shiny/api-examples/input_file/{app.py => app-core.py} | 0 shiny/api-examples/input_numeric/{app.py => app-core.py} | 0 shiny/api-examples/input_password/{app.py => app-core.py} | 0 shiny/api-examples/input_radio_buttons/{app.py => app-core.py} | 0 shiny/api-examples/input_select/{app.py => app-core.py} | 0 shiny/api-examples/input_selectize/{app.py => app-core.py} | 0 shiny/api-examples/input_slider/{app.py => app-core.py} | 0 shiny/api-examples/input_switch/{app.py => app-core.py} | 0 shiny/api-examples/input_text/{app.py => app-core.py} | 0 shiny/api-examples/input_text_area/{app.py => app-core.py} | 0 shiny/api-examples/insert_accordion_panel/{app.py => app-core.py} | 0 shiny/api-examples/insert_ui/{app.py => app-core.py} | 0 shiny/api-examples/invalidate_later/{app.py => app-core.py} | 0 shiny/api-examples/isolate/{app.py => app-core.py} | 0 shiny/api-examples/layout_column_wrap/{app.py => app-core.py} | 0 shiny/api-examples/layout_columns/{app.py => app-core.py} | 0 shiny/api-examples/layout_sidebar/{app.py => app-core.py} | 0 shiny/api-examples/markdown/{app.py => app-core.py} | 0 shiny/api-examples/modal/{app.py => app-core.py} | 0 shiny/api-examples/nav_panel/{app.py => app-core.py} | 0 shiny/api-examples/navset_hidden/{app.py => app-core.py} | 0 shiny/api-examples/notification_show/{app.py => app-core.py} | 0 shiny/api-examples/on_ended/{app.py => app-core.py} | 0 shiny/api-examples/on_flush/{app.py => app-core.py} | 0 shiny/api-examples/on_flushed/{app.py => app-core.py} | 0 shiny/api-examples/output_image/{app.py => app-core.py} | 0 shiny/api-examples/output_plot/{app.py => app-core.py} | 0 shiny/api-examples/output_table/{app.py => app-core.py} | 0 shiny/api-examples/output_text/{app.py => app-core.py} | 0 shiny/api-examples/output_transformer/{app.py => app-core.py} | 0 shiny/api-examples/output_ui/{app.py => app-core.py} | 0 shiny/api-examples/page_fixed/{app.py => app-core.py} | 0 shiny/api-examples/page_fluid/{app.py => app-core.py} | 0 shiny/api-examples/page_sidebar/{app.py => app-core.py} | 0 shiny/api-examples/panel_absolute/{app.py => app-core.py} | 0 shiny/api-examples/panel_conditional/{app.py => app-core.py} | 0 shiny/api-examples/panel_title/{app.py => app-core.py} | 0 shiny/api-examples/poll/{app.py => app-core.py} | 0 shiny/api-examples/popover/{app.py => app-core.py} | 0 shiny/api-examples/remove_accordion_panel/{app.py => app-core.py} | 0 shiny/api-examples/remove_ui/{app.py => app-core.py} | 0 shiny/api-examples/render_express/{app.py => app-core.py} | 0 shiny/api-examples/render_image/{app.py => app-core.py} | 0 shiny/api-examples/req/{app.py => app-core.py} | 0 shiny/api-examples/row/{app.py => app-core.py} | 0 shiny/api-examples/send_custom_message/{app.py => app-core.py} | 0 shiny/api-examples/showcase_bottom/{app.py => app-core.py} | 0 shiny/api-examples/showcase_left_center/{app.py => app-core.py} | 0 shiny/api-examples/showcase_top_right/{app.py => app-core.py} | 0 shiny/api-examples/sidebar/{app.py => app-core.py} | 0 shiny/api-examples/template/{app.py => app-core.py} | 0 shiny/api-examples/todo_list/{app.py => app-core.py} | 0 shiny/api-examples/tooltip/{app.py => app-core.py} | 0 shiny/api-examples/update_accordion/{app.py => app-core.py} | 0 shiny/api-examples/update_accordion_panel/{app.py => app-core.py} | 0 shiny/api-examples/update_action_button/{app.py => app-core.py} | 0 shiny/api-examples/update_checkbox/{app.py => app-core.py} | 0 shiny/api-examples/update_checkbox_group/{app.py => app-core.py} | 0 shiny/api-examples/update_date/{app.py => app-core.py} | 0 shiny/api-examples/update_date_range/{app.py => app-core.py} | 0 shiny/api-examples/update_navs/{app.py => app-core.py} | 0 shiny/api-examples/update_numeric/{app.py => app-core.py} | 0 shiny/api-examples/update_popover/{app.py => app-core.py} | 0 shiny/api-examples/update_radio_buttons/{app.py => app-core.py} | 0 shiny/api-examples/update_select/{app.py => app-core.py} | 0 shiny/api-examples/update_selectize/{app.py => app-core.py} | 0 shiny/api-examples/update_sidebar/{app.py => app-core.py} | 0 shiny/api-examples/update_slider/{app.py => app-core.py} | 0 shiny/api-examples/update_text/{app.py => app-core.py} | 0 shiny/api-examples/update_tooltip/{app.py => app-core.py} | 0 shiny/api-examples/value_box/{app.py => app-core.py} | 0 shiny/api-examples/www_dir/{app.py => app-core.py} | 0 106 files changed, 0 insertions(+), 0 deletions(-) rename shiny/api-examples/Module/{app.py => app-core.py} (100%) rename shiny/api-examples/Progress/{app.py => app-core.py} (100%) rename shiny/api-examples/Renderer/{app.py => app-core.py} (100%) rename shiny/api-examples/SafeException/{app.py => app-core.py} (100%) rename shiny/api-examples/SilentCancelOutputException/{app.py => app-core.py} (100%) rename shiny/api-examples/SilentException/{app.py => app-core.py} (100%) rename shiny/api-examples/Value/{app.py => app-core.py} (100%) rename shiny/api-examples/accordion/{app.py => app-core.py} (100%) rename shiny/api-examples/accordion_panel/{app.py => app-core.py} (100%) rename shiny/api-examples/as_fill_item/{app.py => app-core.py} (100%) rename shiny/api-examples/as_fillable_container/{app.py => app-core.py} (100%) rename shiny/api-examples/calc/{app.py => app-core.py} (100%) rename shiny/api-examples/card/{app.py => app-core.py} (100%) rename shiny/api-examples/card_body/{app.py => app-core.py} (100%) rename shiny/api-examples/card_footer/{app.py => app-core.py} (100%) rename shiny/api-examples/card_header/{app.py => app-core.py} (100%) rename shiny/api-examples/close/{app.py => app-core.py} (100%) rename shiny/api-examples/data_frame/{app.py => app-core.py} (100%) rename shiny/api-examples/download/{app.py => app-core.py} (100%) rename shiny/api-examples/download_button/{app.py => app-core.py} (100%) rename shiny/api-examples/download_link/{app.py => app-core.py} (100%) rename shiny/api-examples/dynamic_route/{app.py => app-core.py} (100%) rename shiny/api-examples/effect/{app.py => app-core.py} (100%) rename shiny/api-examples/event/{app.py => app-core.py} (100%) rename shiny/api-examples/extended_task/{app.py => app-core.py} (100%) rename shiny/api-examples/file_reader/{app.py => app-core.py} (100%) rename shiny/api-examples/include_css/{app.py => app-core.py} (100%) rename shiny/api-examples/include_js/{app.py => app-core.py} (100%) rename shiny/api-examples/input_action_button/{app.py => app-core.py} (100%) rename shiny/api-examples/input_action_link/{app.py => app-core.py} (100%) rename shiny/api-examples/input_checkbox/{app.py => app-core.py} (100%) rename shiny/api-examples/input_checkbox_group/{app.py => app-core.py} (100%) rename shiny/api-examples/input_date/{app.py => app-core.py} (100%) rename shiny/api-examples/input_date_range/{app.py => app-core.py} (100%) rename shiny/api-examples/input_file/{app.py => app-core.py} (100%) rename shiny/api-examples/input_numeric/{app.py => app-core.py} (100%) rename shiny/api-examples/input_password/{app.py => app-core.py} (100%) rename shiny/api-examples/input_radio_buttons/{app.py => app-core.py} (100%) rename shiny/api-examples/input_select/{app.py => app-core.py} (100%) rename shiny/api-examples/input_selectize/{app.py => app-core.py} (100%) rename shiny/api-examples/input_slider/{app.py => app-core.py} (100%) rename shiny/api-examples/input_switch/{app.py => app-core.py} (100%) rename shiny/api-examples/input_text/{app.py => app-core.py} (100%) rename shiny/api-examples/input_text_area/{app.py => app-core.py} (100%) rename shiny/api-examples/insert_accordion_panel/{app.py => app-core.py} (100%) rename shiny/api-examples/insert_ui/{app.py => app-core.py} (100%) rename shiny/api-examples/invalidate_later/{app.py => app-core.py} (100%) rename shiny/api-examples/isolate/{app.py => app-core.py} (100%) rename shiny/api-examples/layout_column_wrap/{app.py => app-core.py} (100%) rename shiny/api-examples/layout_columns/{app.py => app-core.py} (100%) rename shiny/api-examples/layout_sidebar/{app.py => app-core.py} (100%) rename shiny/api-examples/markdown/{app.py => app-core.py} (100%) rename shiny/api-examples/modal/{app.py => app-core.py} (100%) rename shiny/api-examples/nav_panel/{app.py => app-core.py} (100%) rename shiny/api-examples/navset_hidden/{app.py => app-core.py} (100%) rename shiny/api-examples/notification_show/{app.py => app-core.py} (100%) rename shiny/api-examples/on_ended/{app.py => app-core.py} (100%) rename shiny/api-examples/on_flush/{app.py => app-core.py} (100%) rename shiny/api-examples/on_flushed/{app.py => app-core.py} (100%) rename shiny/api-examples/output_image/{app.py => app-core.py} (100%) rename shiny/api-examples/output_plot/{app.py => app-core.py} (100%) rename shiny/api-examples/output_table/{app.py => app-core.py} (100%) rename shiny/api-examples/output_text/{app.py => app-core.py} (100%) rename shiny/api-examples/output_transformer/{app.py => app-core.py} (100%) rename shiny/api-examples/output_ui/{app.py => app-core.py} (100%) rename shiny/api-examples/page_fixed/{app.py => app-core.py} (100%) rename shiny/api-examples/page_fluid/{app.py => app-core.py} (100%) rename shiny/api-examples/page_sidebar/{app.py => app-core.py} (100%) rename shiny/api-examples/panel_absolute/{app.py => app-core.py} (100%) rename shiny/api-examples/panel_conditional/{app.py => app-core.py} (100%) rename shiny/api-examples/panel_title/{app.py => app-core.py} (100%) rename shiny/api-examples/poll/{app.py => app-core.py} (100%) rename shiny/api-examples/popover/{app.py => app-core.py} (100%) rename shiny/api-examples/remove_accordion_panel/{app.py => app-core.py} (100%) rename shiny/api-examples/remove_ui/{app.py => app-core.py} (100%) rename shiny/api-examples/render_express/{app.py => app-core.py} (100%) rename shiny/api-examples/render_image/{app.py => app-core.py} (100%) rename shiny/api-examples/req/{app.py => app-core.py} (100%) rename shiny/api-examples/row/{app.py => app-core.py} (100%) rename shiny/api-examples/send_custom_message/{app.py => app-core.py} (100%) rename shiny/api-examples/showcase_bottom/{app.py => app-core.py} (100%) rename shiny/api-examples/showcase_left_center/{app.py => app-core.py} (100%) rename shiny/api-examples/showcase_top_right/{app.py => app-core.py} (100%) rename shiny/api-examples/sidebar/{app.py => app-core.py} (100%) rename shiny/api-examples/template/{app.py => app-core.py} (100%) rename shiny/api-examples/todo_list/{app.py => app-core.py} (100%) rename shiny/api-examples/tooltip/{app.py => app-core.py} (100%) rename shiny/api-examples/update_accordion/{app.py => app-core.py} (100%) rename shiny/api-examples/update_accordion_panel/{app.py => app-core.py} (100%) rename shiny/api-examples/update_action_button/{app.py => app-core.py} (100%) rename shiny/api-examples/update_checkbox/{app.py => app-core.py} (100%) rename shiny/api-examples/update_checkbox_group/{app.py => app-core.py} (100%) rename shiny/api-examples/update_date/{app.py => app-core.py} (100%) rename shiny/api-examples/update_date_range/{app.py => app-core.py} (100%) rename shiny/api-examples/update_navs/{app.py => app-core.py} (100%) rename shiny/api-examples/update_numeric/{app.py => app-core.py} (100%) rename shiny/api-examples/update_popover/{app.py => app-core.py} (100%) rename shiny/api-examples/update_radio_buttons/{app.py => app-core.py} (100%) rename shiny/api-examples/update_select/{app.py => app-core.py} (100%) rename shiny/api-examples/update_selectize/{app.py => app-core.py} (100%) rename shiny/api-examples/update_sidebar/{app.py => app-core.py} (100%) rename shiny/api-examples/update_slider/{app.py => app-core.py} (100%) rename shiny/api-examples/update_text/{app.py => app-core.py} (100%) rename shiny/api-examples/update_tooltip/{app.py => app-core.py} (100%) rename shiny/api-examples/value_box/{app.py => app-core.py} (100%) rename shiny/api-examples/www_dir/{app.py => app-core.py} (100%) diff --git a/shiny/api-examples/Module/app.py b/shiny/api-examples/Module/app-core.py similarity index 100% rename from shiny/api-examples/Module/app.py rename to shiny/api-examples/Module/app-core.py diff --git a/shiny/api-examples/Progress/app.py b/shiny/api-examples/Progress/app-core.py similarity index 100% rename from shiny/api-examples/Progress/app.py rename to shiny/api-examples/Progress/app-core.py diff --git a/shiny/api-examples/Renderer/app.py b/shiny/api-examples/Renderer/app-core.py similarity index 100% rename from shiny/api-examples/Renderer/app.py rename to shiny/api-examples/Renderer/app-core.py diff --git a/shiny/api-examples/SafeException/app.py b/shiny/api-examples/SafeException/app-core.py similarity index 100% rename from shiny/api-examples/SafeException/app.py rename to shiny/api-examples/SafeException/app-core.py diff --git a/shiny/api-examples/SilentCancelOutputException/app.py b/shiny/api-examples/SilentCancelOutputException/app-core.py similarity index 100% rename from shiny/api-examples/SilentCancelOutputException/app.py rename to shiny/api-examples/SilentCancelOutputException/app-core.py diff --git a/shiny/api-examples/SilentException/app.py b/shiny/api-examples/SilentException/app-core.py similarity index 100% rename from shiny/api-examples/SilentException/app.py rename to shiny/api-examples/SilentException/app-core.py diff --git a/shiny/api-examples/Value/app.py b/shiny/api-examples/Value/app-core.py similarity index 100% rename from shiny/api-examples/Value/app.py rename to shiny/api-examples/Value/app-core.py diff --git a/shiny/api-examples/accordion/app.py b/shiny/api-examples/accordion/app-core.py similarity index 100% rename from shiny/api-examples/accordion/app.py rename to shiny/api-examples/accordion/app-core.py diff --git a/shiny/api-examples/accordion_panel/app.py b/shiny/api-examples/accordion_panel/app-core.py similarity index 100% rename from shiny/api-examples/accordion_panel/app.py rename to shiny/api-examples/accordion_panel/app-core.py diff --git a/shiny/api-examples/as_fill_item/app.py b/shiny/api-examples/as_fill_item/app-core.py similarity index 100% rename from shiny/api-examples/as_fill_item/app.py rename to shiny/api-examples/as_fill_item/app-core.py diff --git a/shiny/api-examples/as_fillable_container/app.py b/shiny/api-examples/as_fillable_container/app-core.py similarity index 100% rename from shiny/api-examples/as_fillable_container/app.py rename to shiny/api-examples/as_fillable_container/app-core.py diff --git a/shiny/api-examples/calc/app.py b/shiny/api-examples/calc/app-core.py similarity index 100% rename from shiny/api-examples/calc/app.py rename to shiny/api-examples/calc/app-core.py diff --git a/shiny/api-examples/card/app.py b/shiny/api-examples/card/app-core.py similarity index 100% rename from shiny/api-examples/card/app.py rename to shiny/api-examples/card/app-core.py diff --git a/shiny/api-examples/card_body/app.py b/shiny/api-examples/card_body/app-core.py similarity index 100% rename from shiny/api-examples/card_body/app.py rename to shiny/api-examples/card_body/app-core.py diff --git a/shiny/api-examples/card_footer/app.py b/shiny/api-examples/card_footer/app-core.py similarity index 100% rename from shiny/api-examples/card_footer/app.py rename to shiny/api-examples/card_footer/app-core.py diff --git a/shiny/api-examples/card_header/app.py b/shiny/api-examples/card_header/app-core.py similarity index 100% rename from shiny/api-examples/card_header/app.py rename to shiny/api-examples/card_header/app-core.py diff --git a/shiny/api-examples/close/app.py b/shiny/api-examples/close/app-core.py similarity index 100% rename from shiny/api-examples/close/app.py rename to shiny/api-examples/close/app-core.py diff --git a/shiny/api-examples/data_frame/app.py b/shiny/api-examples/data_frame/app-core.py similarity index 100% rename from shiny/api-examples/data_frame/app.py rename to shiny/api-examples/data_frame/app-core.py diff --git a/shiny/api-examples/download/app.py b/shiny/api-examples/download/app-core.py similarity index 100% rename from shiny/api-examples/download/app.py rename to shiny/api-examples/download/app-core.py diff --git a/shiny/api-examples/download_button/app.py b/shiny/api-examples/download_button/app-core.py similarity index 100% rename from shiny/api-examples/download_button/app.py rename to shiny/api-examples/download_button/app-core.py diff --git a/shiny/api-examples/download_link/app.py b/shiny/api-examples/download_link/app-core.py similarity index 100% rename from shiny/api-examples/download_link/app.py rename to shiny/api-examples/download_link/app-core.py diff --git a/shiny/api-examples/dynamic_route/app.py b/shiny/api-examples/dynamic_route/app-core.py similarity index 100% rename from shiny/api-examples/dynamic_route/app.py rename to shiny/api-examples/dynamic_route/app-core.py diff --git a/shiny/api-examples/effect/app.py b/shiny/api-examples/effect/app-core.py similarity index 100% rename from shiny/api-examples/effect/app.py rename to shiny/api-examples/effect/app-core.py diff --git a/shiny/api-examples/event/app.py b/shiny/api-examples/event/app-core.py similarity index 100% rename from shiny/api-examples/event/app.py rename to shiny/api-examples/event/app-core.py diff --git a/shiny/api-examples/extended_task/app.py b/shiny/api-examples/extended_task/app-core.py similarity index 100% rename from shiny/api-examples/extended_task/app.py rename to shiny/api-examples/extended_task/app-core.py diff --git a/shiny/api-examples/file_reader/app.py b/shiny/api-examples/file_reader/app-core.py similarity index 100% rename from shiny/api-examples/file_reader/app.py rename to shiny/api-examples/file_reader/app-core.py diff --git a/shiny/api-examples/include_css/app.py b/shiny/api-examples/include_css/app-core.py similarity index 100% rename from shiny/api-examples/include_css/app.py rename to shiny/api-examples/include_css/app-core.py diff --git a/shiny/api-examples/include_js/app.py b/shiny/api-examples/include_js/app-core.py similarity index 100% rename from shiny/api-examples/include_js/app.py rename to shiny/api-examples/include_js/app-core.py diff --git a/shiny/api-examples/input_action_button/app.py b/shiny/api-examples/input_action_button/app-core.py similarity index 100% rename from shiny/api-examples/input_action_button/app.py rename to shiny/api-examples/input_action_button/app-core.py diff --git a/shiny/api-examples/input_action_link/app.py b/shiny/api-examples/input_action_link/app-core.py similarity index 100% rename from shiny/api-examples/input_action_link/app.py rename to shiny/api-examples/input_action_link/app-core.py diff --git a/shiny/api-examples/input_checkbox/app.py b/shiny/api-examples/input_checkbox/app-core.py similarity index 100% rename from shiny/api-examples/input_checkbox/app.py rename to shiny/api-examples/input_checkbox/app-core.py diff --git a/shiny/api-examples/input_checkbox_group/app.py b/shiny/api-examples/input_checkbox_group/app-core.py similarity index 100% rename from shiny/api-examples/input_checkbox_group/app.py rename to shiny/api-examples/input_checkbox_group/app-core.py diff --git a/shiny/api-examples/input_date/app.py b/shiny/api-examples/input_date/app-core.py similarity index 100% rename from shiny/api-examples/input_date/app.py rename to shiny/api-examples/input_date/app-core.py diff --git a/shiny/api-examples/input_date_range/app.py b/shiny/api-examples/input_date_range/app-core.py similarity index 100% rename from shiny/api-examples/input_date_range/app.py rename to shiny/api-examples/input_date_range/app-core.py diff --git a/shiny/api-examples/input_file/app.py b/shiny/api-examples/input_file/app-core.py similarity index 100% rename from shiny/api-examples/input_file/app.py rename to shiny/api-examples/input_file/app-core.py diff --git a/shiny/api-examples/input_numeric/app.py b/shiny/api-examples/input_numeric/app-core.py similarity index 100% rename from shiny/api-examples/input_numeric/app.py rename to shiny/api-examples/input_numeric/app-core.py diff --git a/shiny/api-examples/input_password/app.py b/shiny/api-examples/input_password/app-core.py similarity index 100% rename from shiny/api-examples/input_password/app.py rename to shiny/api-examples/input_password/app-core.py diff --git a/shiny/api-examples/input_radio_buttons/app.py b/shiny/api-examples/input_radio_buttons/app-core.py similarity index 100% rename from shiny/api-examples/input_radio_buttons/app.py rename to shiny/api-examples/input_radio_buttons/app-core.py diff --git a/shiny/api-examples/input_select/app.py b/shiny/api-examples/input_select/app-core.py similarity index 100% rename from shiny/api-examples/input_select/app.py rename to shiny/api-examples/input_select/app-core.py diff --git a/shiny/api-examples/input_selectize/app.py b/shiny/api-examples/input_selectize/app-core.py similarity index 100% rename from shiny/api-examples/input_selectize/app.py rename to shiny/api-examples/input_selectize/app-core.py diff --git a/shiny/api-examples/input_slider/app.py b/shiny/api-examples/input_slider/app-core.py similarity index 100% rename from shiny/api-examples/input_slider/app.py rename to shiny/api-examples/input_slider/app-core.py diff --git a/shiny/api-examples/input_switch/app.py b/shiny/api-examples/input_switch/app-core.py similarity index 100% rename from shiny/api-examples/input_switch/app.py rename to shiny/api-examples/input_switch/app-core.py diff --git a/shiny/api-examples/input_text/app.py b/shiny/api-examples/input_text/app-core.py similarity index 100% rename from shiny/api-examples/input_text/app.py rename to shiny/api-examples/input_text/app-core.py diff --git a/shiny/api-examples/input_text_area/app.py b/shiny/api-examples/input_text_area/app-core.py similarity index 100% rename from shiny/api-examples/input_text_area/app.py rename to shiny/api-examples/input_text_area/app-core.py diff --git a/shiny/api-examples/insert_accordion_panel/app.py b/shiny/api-examples/insert_accordion_panel/app-core.py similarity index 100% rename from shiny/api-examples/insert_accordion_panel/app.py rename to shiny/api-examples/insert_accordion_panel/app-core.py diff --git a/shiny/api-examples/insert_ui/app.py b/shiny/api-examples/insert_ui/app-core.py similarity index 100% rename from shiny/api-examples/insert_ui/app.py rename to shiny/api-examples/insert_ui/app-core.py diff --git a/shiny/api-examples/invalidate_later/app.py b/shiny/api-examples/invalidate_later/app-core.py similarity index 100% rename from shiny/api-examples/invalidate_later/app.py rename to shiny/api-examples/invalidate_later/app-core.py diff --git a/shiny/api-examples/isolate/app.py b/shiny/api-examples/isolate/app-core.py similarity index 100% rename from shiny/api-examples/isolate/app.py rename to shiny/api-examples/isolate/app-core.py diff --git a/shiny/api-examples/layout_column_wrap/app.py b/shiny/api-examples/layout_column_wrap/app-core.py similarity index 100% rename from shiny/api-examples/layout_column_wrap/app.py rename to shiny/api-examples/layout_column_wrap/app-core.py diff --git a/shiny/api-examples/layout_columns/app.py b/shiny/api-examples/layout_columns/app-core.py similarity index 100% rename from shiny/api-examples/layout_columns/app.py rename to shiny/api-examples/layout_columns/app-core.py diff --git a/shiny/api-examples/layout_sidebar/app.py b/shiny/api-examples/layout_sidebar/app-core.py similarity index 100% rename from shiny/api-examples/layout_sidebar/app.py rename to shiny/api-examples/layout_sidebar/app-core.py diff --git a/shiny/api-examples/markdown/app.py b/shiny/api-examples/markdown/app-core.py similarity index 100% rename from shiny/api-examples/markdown/app.py rename to shiny/api-examples/markdown/app-core.py diff --git a/shiny/api-examples/modal/app.py b/shiny/api-examples/modal/app-core.py similarity index 100% rename from shiny/api-examples/modal/app.py rename to shiny/api-examples/modal/app-core.py diff --git a/shiny/api-examples/nav_panel/app.py b/shiny/api-examples/nav_panel/app-core.py similarity index 100% rename from shiny/api-examples/nav_panel/app.py rename to shiny/api-examples/nav_panel/app-core.py diff --git a/shiny/api-examples/navset_hidden/app.py b/shiny/api-examples/navset_hidden/app-core.py similarity index 100% rename from shiny/api-examples/navset_hidden/app.py rename to shiny/api-examples/navset_hidden/app-core.py diff --git a/shiny/api-examples/notification_show/app.py b/shiny/api-examples/notification_show/app-core.py similarity index 100% rename from shiny/api-examples/notification_show/app.py rename to shiny/api-examples/notification_show/app-core.py diff --git a/shiny/api-examples/on_ended/app.py b/shiny/api-examples/on_ended/app-core.py similarity index 100% rename from shiny/api-examples/on_ended/app.py rename to shiny/api-examples/on_ended/app-core.py diff --git a/shiny/api-examples/on_flush/app.py b/shiny/api-examples/on_flush/app-core.py similarity index 100% rename from shiny/api-examples/on_flush/app.py rename to shiny/api-examples/on_flush/app-core.py diff --git a/shiny/api-examples/on_flushed/app.py b/shiny/api-examples/on_flushed/app-core.py similarity index 100% rename from shiny/api-examples/on_flushed/app.py rename to shiny/api-examples/on_flushed/app-core.py diff --git a/shiny/api-examples/output_image/app.py b/shiny/api-examples/output_image/app-core.py similarity index 100% rename from shiny/api-examples/output_image/app.py rename to shiny/api-examples/output_image/app-core.py diff --git a/shiny/api-examples/output_plot/app.py b/shiny/api-examples/output_plot/app-core.py similarity index 100% rename from shiny/api-examples/output_plot/app.py rename to shiny/api-examples/output_plot/app-core.py diff --git a/shiny/api-examples/output_table/app.py b/shiny/api-examples/output_table/app-core.py similarity index 100% rename from shiny/api-examples/output_table/app.py rename to shiny/api-examples/output_table/app-core.py diff --git a/shiny/api-examples/output_text/app.py b/shiny/api-examples/output_text/app-core.py similarity index 100% rename from shiny/api-examples/output_text/app.py rename to shiny/api-examples/output_text/app-core.py diff --git a/shiny/api-examples/output_transformer/app.py b/shiny/api-examples/output_transformer/app-core.py similarity index 100% rename from shiny/api-examples/output_transformer/app.py rename to shiny/api-examples/output_transformer/app-core.py diff --git a/shiny/api-examples/output_ui/app.py b/shiny/api-examples/output_ui/app-core.py similarity index 100% rename from shiny/api-examples/output_ui/app.py rename to shiny/api-examples/output_ui/app-core.py diff --git a/shiny/api-examples/page_fixed/app.py b/shiny/api-examples/page_fixed/app-core.py similarity index 100% rename from shiny/api-examples/page_fixed/app.py rename to shiny/api-examples/page_fixed/app-core.py diff --git a/shiny/api-examples/page_fluid/app.py b/shiny/api-examples/page_fluid/app-core.py similarity index 100% rename from shiny/api-examples/page_fluid/app.py rename to shiny/api-examples/page_fluid/app-core.py diff --git a/shiny/api-examples/page_sidebar/app.py b/shiny/api-examples/page_sidebar/app-core.py similarity index 100% rename from shiny/api-examples/page_sidebar/app.py rename to shiny/api-examples/page_sidebar/app-core.py diff --git a/shiny/api-examples/panel_absolute/app.py b/shiny/api-examples/panel_absolute/app-core.py similarity index 100% rename from shiny/api-examples/panel_absolute/app.py rename to shiny/api-examples/panel_absolute/app-core.py diff --git a/shiny/api-examples/panel_conditional/app.py b/shiny/api-examples/panel_conditional/app-core.py similarity index 100% rename from shiny/api-examples/panel_conditional/app.py rename to shiny/api-examples/panel_conditional/app-core.py diff --git a/shiny/api-examples/panel_title/app.py b/shiny/api-examples/panel_title/app-core.py similarity index 100% rename from shiny/api-examples/panel_title/app.py rename to shiny/api-examples/panel_title/app-core.py diff --git a/shiny/api-examples/poll/app.py b/shiny/api-examples/poll/app-core.py similarity index 100% rename from shiny/api-examples/poll/app.py rename to shiny/api-examples/poll/app-core.py diff --git a/shiny/api-examples/popover/app.py b/shiny/api-examples/popover/app-core.py similarity index 100% rename from shiny/api-examples/popover/app.py rename to shiny/api-examples/popover/app-core.py diff --git a/shiny/api-examples/remove_accordion_panel/app.py b/shiny/api-examples/remove_accordion_panel/app-core.py similarity index 100% rename from shiny/api-examples/remove_accordion_panel/app.py rename to shiny/api-examples/remove_accordion_panel/app-core.py diff --git a/shiny/api-examples/remove_ui/app.py b/shiny/api-examples/remove_ui/app-core.py similarity index 100% rename from shiny/api-examples/remove_ui/app.py rename to shiny/api-examples/remove_ui/app-core.py diff --git a/shiny/api-examples/render_express/app.py b/shiny/api-examples/render_express/app-core.py similarity index 100% rename from shiny/api-examples/render_express/app.py rename to shiny/api-examples/render_express/app-core.py diff --git a/shiny/api-examples/render_image/app.py b/shiny/api-examples/render_image/app-core.py similarity index 100% rename from shiny/api-examples/render_image/app.py rename to shiny/api-examples/render_image/app-core.py diff --git a/shiny/api-examples/req/app.py b/shiny/api-examples/req/app-core.py similarity index 100% rename from shiny/api-examples/req/app.py rename to shiny/api-examples/req/app-core.py diff --git a/shiny/api-examples/row/app.py b/shiny/api-examples/row/app-core.py similarity index 100% rename from shiny/api-examples/row/app.py rename to shiny/api-examples/row/app-core.py diff --git a/shiny/api-examples/send_custom_message/app.py b/shiny/api-examples/send_custom_message/app-core.py similarity index 100% rename from shiny/api-examples/send_custom_message/app.py rename to shiny/api-examples/send_custom_message/app-core.py diff --git a/shiny/api-examples/showcase_bottom/app.py b/shiny/api-examples/showcase_bottom/app-core.py similarity index 100% rename from shiny/api-examples/showcase_bottom/app.py rename to shiny/api-examples/showcase_bottom/app-core.py diff --git a/shiny/api-examples/showcase_left_center/app.py b/shiny/api-examples/showcase_left_center/app-core.py similarity index 100% rename from shiny/api-examples/showcase_left_center/app.py rename to shiny/api-examples/showcase_left_center/app-core.py diff --git a/shiny/api-examples/showcase_top_right/app.py b/shiny/api-examples/showcase_top_right/app-core.py similarity index 100% rename from shiny/api-examples/showcase_top_right/app.py rename to shiny/api-examples/showcase_top_right/app-core.py diff --git a/shiny/api-examples/sidebar/app.py b/shiny/api-examples/sidebar/app-core.py similarity index 100% rename from shiny/api-examples/sidebar/app.py rename to shiny/api-examples/sidebar/app-core.py diff --git a/shiny/api-examples/template/app.py b/shiny/api-examples/template/app-core.py similarity index 100% rename from shiny/api-examples/template/app.py rename to shiny/api-examples/template/app-core.py diff --git a/shiny/api-examples/todo_list/app.py b/shiny/api-examples/todo_list/app-core.py similarity index 100% rename from shiny/api-examples/todo_list/app.py rename to shiny/api-examples/todo_list/app-core.py diff --git a/shiny/api-examples/tooltip/app.py b/shiny/api-examples/tooltip/app-core.py similarity index 100% rename from shiny/api-examples/tooltip/app.py rename to shiny/api-examples/tooltip/app-core.py diff --git a/shiny/api-examples/update_accordion/app.py b/shiny/api-examples/update_accordion/app-core.py similarity index 100% rename from shiny/api-examples/update_accordion/app.py rename to shiny/api-examples/update_accordion/app-core.py diff --git a/shiny/api-examples/update_accordion_panel/app.py b/shiny/api-examples/update_accordion_panel/app-core.py similarity index 100% rename from shiny/api-examples/update_accordion_panel/app.py rename to shiny/api-examples/update_accordion_panel/app-core.py diff --git a/shiny/api-examples/update_action_button/app.py b/shiny/api-examples/update_action_button/app-core.py similarity index 100% rename from shiny/api-examples/update_action_button/app.py rename to shiny/api-examples/update_action_button/app-core.py diff --git a/shiny/api-examples/update_checkbox/app.py b/shiny/api-examples/update_checkbox/app-core.py similarity index 100% rename from shiny/api-examples/update_checkbox/app.py rename to shiny/api-examples/update_checkbox/app-core.py diff --git a/shiny/api-examples/update_checkbox_group/app.py b/shiny/api-examples/update_checkbox_group/app-core.py similarity index 100% rename from shiny/api-examples/update_checkbox_group/app.py rename to shiny/api-examples/update_checkbox_group/app-core.py diff --git a/shiny/api-examples/update_date/app.py b/shiny/api-examples/update_date/app-core.py similarity index 100% rename from shiny/api-examples/update_date/app.py rename to shiny/api-examples/update_date/app-core.py diff --git a/shiny/api-examples/update_date_range/app.py b/shiny/api-examples/update_date_range/app-core.py similarity index 100% rename from shiny/api-examples/update_date_range/app.py rename to shiny/api-examples/update_date_range/app-core.py diff --git a/shiny/api-examples/update_navs/app.py b/shiny/api-examples/update_navs/app-core.py similarity index 100% rename from shiny/api-examples/update_navs/app.py rename to shiny/api-examples/update_navs/app-core.py diff --git a/shiny/api-examples/update_numeric/app.py b/shiny/api-examples/update_numeric/app-core.py similarity index 100% rename from shiny/api-examples/update_numeric/app.py rename to shiny/api-examples/update_numeric/app-core.py diff --git a/shiny/api-examples/update_popover/app.py b/shiny/api-examples/update_popover/app-core.py similarity index 100% rename from shiny/api-examples/update_popover/app.py rename to shiny/api-examples/update_popover/app-core.py diff --git a/shiny/api-examples/update_radio_buttons/app.py b/shiny/api-examples/update_radio_buttons/app-core.py similarity index 100% rename from shiny/api-examples/update_radio_buttons/app.py rename to shiny/api-examples/update_radio_buttons/app-core.py diff --git a/shiny/api-examples/update_select/app.py b/shiny/api-examples/update_select/app-core.py similarity index 100% rename from shiny/api-examples/update_select/app.py rename to shiny/api-examples/update_select/app-core.py diff --git a/shiny/api-examples/update_selectize/app.py b/shiny/api-examples/update_selectize/app-core.py similarity index 100% rename from shiny/api-examples/update_selectize/app.py rename to shiny/api-examples/update_selectize/app-core.py diff --git a/shiny/api-examples/update_sidebar/app.py b/shiny/api-examples/update_sidebar/app-core.py similarity index 100% rename from shiny/api-examples/update_sidebar/app.py rename to shiny/api-examples/update_sidebar/app-core.py diff --git a/shiny/api-examples/update_slider/app.py b/shiny/api-examples/update_slider/app-core.py similarity index 100% rename from shiny/api-examples/update_slider/app.py rename to shiny/api-examples/update_slider/app-core.py diff --git a/shiny/api-examples/update_text/app.py b/shiny/api-examples/update_text/app-core.py similarity index 100% rename from shiny/api-examples/update_text/app.py rename to shiny/api-examples/update_text/app-core.py diff --git a/shiny/api-examples/update_tooltip/app.py b/shiny/api-examples/update_tooltip/app-core.py similarity index 100% rename from shiny/api-examples/update_tooltip/app.py rename to shiny/api-examples/update_tooltip/app-core.py diff --git a/shiny/api-examples/value_box/app.py b/shiny/api-examples/value_box/app-core.py similarity index 100% rename from shiny/api-examples/value_box/app.py rename to shiny/api-examples/value_box/app-core.py diff --git a/shiny/api-examples/www_dir/app.py b/shiny/api-examples/www_dir/app-core.py similarity index 100% rename from shiny/api-examples/www_dir/app.py rename to shiny/api-examples/www_dir/app-core.py From 0fa6ea45a0ec0d778a92834f75668f13b7ee552a Mon Sep 17 00:00:00 2001 From: Gordon Shotwell Date: Fri, 26 Jan 2024 12:01:41 -0400 Subject: [PATCH 8/9] reactive.poll core updates --- shiny/api-examples/poll/app-core.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/shiny/api-examples/poll/app-core.py b/shiny/api-examples/poll/app-core.py index c9411d28a..f6ab621b6 100644 --- a/shiny/api-examples/poll/app-core.py +++ b/shiny/api-examples/poll/app-core.py @@ -89,9 +89,8 @@ def stock_quotes() -> pd.DataFrame: # === Define the Shiny UI and server =============================== app_ui = ui.page_fluid( - ui.row( - ui.column( - 8, + ui.layout_columns( + ui.card( ui.markdown( """ # `shiny.reactive.poll` demo @@ -100,11 +99,14 @@ def stock_quotes() -> pd.DataFrame: case, an in-memory sqlite3) with the help of `shiny.reactive.poll`. """ ), - class_="mb-3", + ui.input_selectize( + "symbols", "Filter by symbol", [""] + SYMBOLS, multiple=True + ), + ui.output_data_frame("table"), + fill=False, ), - ), - ui.input_selectize("symbols", "Filter by symbol", [""] + SYMBOLS, multiple=True), - ui.output_ui("table"), + col_widths=[8, 4], + ) ) @@ -115,13 +117,9 @@ def filtered_quotes(): df = df[df["symbol"].isin(input.symbols())] return df - @render.ui + @render.data_frame def table(): - return ui.HTML( - filtered_quotes().to_html( - index=False, classes="table font-monospace w-auto" - ) - ) + return filtered_quotes() app = App(app_ui, server) From eb8ad76920b397c99739aad2f103e6204c10a3fc Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Fri, 26 Jan 2024 12:19:26 -0500 Subject: [PATCH 9/9] Update shiny/api-examples/Progress/app-express.py --- shiny/api-examples/Progress/app-express.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shiny/api-examples/Progress/app-express.py b/shiny/api-examples/Progress/app-express.py index 465d7c740..b4bde03f6 100644 --- a/shiny/api-examples/Progress/app-express.py +++ b/shiny/api-examples/Progress/app-express.py @@ -3,7 +3,7 @@ from shiny import reactive from shiny.express import input, render, ui -ui.input_action_button("button", "Compute"), +ui.input_action_button("button", "Compute") @render.text