diff --git a/MANIFEST.in b/MANIFEST.in index a5d757e91..3bedfd7ec 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -8,5 +8,5 @@ recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif recursive-include shiny/www * recursive-include shiny/experimental/www * -recursive-include shiny/examples * +recursive-include shiny/api-examples * recursive-include shiny/ui/dataframe/js/dist * diff --git a/e2e/README.md b/e2e/README.md index bb3a34d57..18c936a89 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -10,7 +10,7 @@ tests against their apps.) The actual tests are in subdirectories. Each subdirectory contains one or more Pytest files (`test_*.py`) containing [Playwright](https://playwright.dev/python/) assertions, and optionally, a single app (`app.py`) that the assertions test against. (The app is -optional, because the tests may also be for apps in the `../examples` or `../shiny/examples` directory.) +optional, because the tests may also be for apps in the `../examples` or `../shiny/api-examples` directory.) ## Running tests diff --git a/e2e/conftest.py b/e2e/conftest.py index f8f99e1cd..12c2f99b2 100644 --- a/e2e/conftest.py +++ b/e2e/conftest.py @@ -194,9 +194,9 @@ def create_example_fixture(example_name: str, scope: str = "module"): def create_doc_example_fixture(example_name: str, scope: str = "module"): - """Used to create app fixtures from apps in py-shiny/shiny/examples""" + """Used to create app fixtures from apps in py-shiny/shiny/api-examples""" return create_app_fixture( - here / "../shiny/examples" / example_name / "app.py", scope + here / "../shiny/api-examples" / example_name / "app.py", scope ) diff --git a/e2e/cpuinfo/test_app.py b/e2e/cpuinfo/test_app.py index 141a1add6..d07976b70 100644 --- a/e2e/cpuinfo/test_app.py +++ b/e2e/cpuinfo/test_app.py @@ -1,6 +1,6 @@ # pyright: reportUnknownMemberType=false -# TODO-barret; Convert test into loop that tests all examples to make sure they load +# TODO-karan; Convert test into loop that tests all examples to make sure they load import re diff --git a/e2e/examples/test_examples.py b/e2e/examples/test_examples.py index 5534039d8..cd512bf0c 100644 --- a/e2e/examples/test_examples.py +++ b/e2e/examples/test_examples.py @@ -24,7 +24,7 @@ def get_apps(path: str) -> typing.List[str]: example_apps: typing.List[str] = [ *get_apps("../../examples"), - *get_apps("../../shiny/examples"), + *get_apps("../../shiny/api-examples"), ] app_idle_wait = {"duration": 300, "timeout": 5 * 1000} @@ -36,6 +36,8 @@ def get_apps(path: str) -> typing.List[str]: "SafeException": True, "global_pyplot": True, "static_plots": ["PlotnineWarning", "RuntimeWarning"], + # https://github.com/rstudio/py-shiny/issues/611#issuecomment-1632866419 + "penguins": ["UserWarning", "plt.tight_layout"], } app_allow_js_errors: typing.Dict[str, typing.List[str]] = { "brownian": ["Failed to acquire camera feed:"], diff --git a/examples/penguins/app.py b/examples/penguins/app.py index 863aee746..e019a50cc 100644 --- a/examples/penguins/app.py +++ b/examples/penguins/app.py @@ -1,11 +1,9 @@ # TODO-future: Add filter of X varaible to reduce the data? (Here we would show "Gentoo" has count 0, rather than remove if no data exists) # TODO-future: Add brushing to zoom into the plot. The counts should represent the data in the zoomed area. (Single click would zoom out) -import warnings from pathlib import Path from typing import List -import matplotlib import pandas as pd import seaborn as sns import shinyswatch @@ -14,13 +12,6 @@ import shiny.experimental as x from shiny import App, Inputs, Outputs, Session, reactive, render, req, ui -# There is a matplotlib bug which causes CI failures -# see https://github.com/rstudio/py-shiny/issues/611#issuecomment-1632866419 -if matplotlib.__version__ == "3.7.2": - warnings.filterwarnings( - "ignore", category=UserWarning, message="The figure layout has changed to tight" - ) - sns.set_theme() www_dir = Path(__file__).parent.resolve() / "www" diff --git a/pyrightconfig.json b/pyrightconfig.json index baf6b8057..6f6e3dcc4 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,6 +1,6 @@ { "ignore": [ - "shiny/examples", + "shiny/api-examples", "examples", "build", "dist", diff --git a/shiny/_docstring.py b/shiny/_docstring.py index 2abd578b4..699fcc450 100644 --- a/shiny/_docstring.py +++ b/shiny/_docstring.py @@ -4,7 +4,7 @@ import os from typing import Any, Callable, Literal, TypeVar -ex_dir: str = os.path.join(os.path.dirname(os.path.abspath(__file__)), "examples") +ex_dir: str = os.path.join(os.path.dirname(os.path.abspath(__file__)), "api-examples") FuncType = Callable[..., Any] F = TypeVar("F", bound=FuncType) @@ -32,7 +32,7 @@ def add_example( Add an example to the docstring of a function, method, or class. This decorator must, at the moment, be used on a function, method, or class whose - ``__name__`` matches the name of directory under ``shiny/examples/``, and must + ``__name__`` matches the name of directory under ``shiny/api-examples/``, and must also contain a ``app.py`` file in that directory. Parameters diff --git a/shiny/_main.py b/shiny/_main.py index 21853285f..f53e51392 100644 --- a/shiny/_main.py +++ b/shiny/_main.py @@ -422,7 +422,7 @@ def create(appdir: str) -> None: app_dir.mkdir() shutil.copyfile( - Path(__file__).parent / "examples" / "template" / "app.py", app_path + Path(__file__).parent / "api-examples" / "template" / "app.py", app_path ) print(f"Created Shiny app at {app_dir / 'app.py'}") diff --git a/shiny/examples/Calc/app.py b/shiny/api-examples/Calc/app.py similarity index 100% rename from shiny/examples/Calc/app.py rename to shiny/api-examples/Calc/app.py diff --git a/shiny/examples/Effect/app.py b/shiny/api-examples/Effect/app.py similarity index 100% rename from shiny/examples/Effect/app.py rename to shiny/api-examples/Effect/app.py diff --git a/shiny/examples/Module/app.py b/shiny/api-examples/Module/app.py similarity index 100% rename from shiny/examples/Module/app.py rename to shiny/api-examples/Module/app.py diff --git a/shiny/examples/Progress/app.py b/shiny/api-examples/Progress/app.py similarity index 100% rename from shiny/examples/Progress/app.py rename to shiny/api-examples/Progress/app.py diff --git a/shiny/examples/SafeException/app.py b/shiny/api-examples/SafeException/app.py similarity index 100% rename from shiny/examples/SafeException/app.py rename to shiny/api-examples/SafeException/app.py diff --git a/shiny/examples/SilentCancelOutputException/app.py b/shiny/api-examples/SilentCancelOutputException/app.py similarity index 100% rename from shiny/examples/SilentCancelOutputException/app.py rename to shiny/api-examples/SilentCancelOutputException/app.py diff --git a/shiny/examples/SilentException/app.py b/shiny/api-examples/SilentException/app.py similarity index 100% rename from shiny/examples/SilentException/app.py rename to shiny/api-examples/SilentException/app.py diff --git a/shiny/examples/Value/app.py b/shiny/api-examples/Value/app.py similarity index 100% rename from shiny/examples/Value/app.py rename to shiny/api-examples/Value/app.py diff --git a/shiny/examples/close/app.py b/shiny/api-examples/close/app.py similarity index 100% rename from shiny/examples/close/app.py rename to shiny/api-examples/close/app.py diff --git a/shiny/examples/data_frame/app.py b/shiny/api-examples/data_frame/app.py similarity index 100% rename from shiny/examples/data_frame/app.py rename to shiny/api-examples/data_frame/app.py diff --git a/shiny/examples/download/app.py b/shiny/api-examples/download/app.py similarity index 100% rename from shiny/examples/download/app.py rename to shiny/api-examples/download/app.py diff --git a/shiny/examples/download/mtcars.csv b/shiny/api-examples/download/mtcars.csv similarity index 100% rename from shiny/examples/download/mtcars.csv rename to shiny/api-examples/download/mtcars.csv diff --git a/shiny/examples/download_button/app.py b/shiny/api-examples/download_button/app.py similarity index 100% rename from shiny/examples/download_button/app.py rename to shiny/api-examples/download_button/app.py diff --git a/shiny/examples/download_button/mtcars.csv b/shiny/api-examples/download_button/mtcars.csv similarity index 100% rename from shiny/examples/download_button/mtcars.csv rename to shiny/api-examples/download_button/mtcars.csv diff --git a/shiny/examples/download_link/app.py b/shiny/api-examples/download_link/app.py similarity index 100% rename from shiny/examples/download_link/app.py rename to shiny/api-examples/download_link/app.py diff --git a/shiny/examples/download_link/mtcars.csv b/shiny/api-examples/download_link/mtcars.csv similarity index 100% rename from shiny/examples/download_link/mtcars.csv rename to shiny/api-examples/download_link/mtcars.csv diff --git a/shiny/examples/dynamic_route/app.py b/shiny/api-examples/dynamic_route/app.py similarity index 100% rename from shiny/examples/dynamic_route/app.py rename to shiny/api-examples/dynamic_route/app.py diff --git a/shiny/examples/event/app.py b/shiny/api-examples/event/app.py similarity index 100% rename from shiny/examples/event/app.py rename to shiny/api-examples/event/app.py diff --git a/shiny/examples/file_reader/app.py b/shiny/api-examples/file_reader/app.py similarity index 100% rename from shiny/examples/file_reader/app.py rename to shiny/api-examples/file_reader/app.py diff --git a/shiny/examples/file_reader/mtcars.csv b/shiny/api-examples/file_reader/mtcars.csv similarity index 100% rename from shiny/examples/file_reader/mtcars.csv rename to shiny/api-examples/file_reader/mtcars.csv diff --git a/shiny/examples/include_css/app.py b/shiny/api-examples/include_css/app.py similarity index 100% rename from shiny/examples/include_css/app.py rename to shiny/api-examples/include_css/app.py diff --git a/shiny/examples/include_css/css/styles.css b/shiny/api-examples/include_css/css/styles.css similarity index 100% rename from shiny/examples/include_css/css/styles.css rename to shiny/api-examples/include_css/css/styles.css diff --git a/shiny/examples/include_javascript/app.py b/shiny/api-examples/include_javascript/app.py similarity index 100% rename from shiny/examples/include_javascript/app.py rename to shiny/api-examples/include_javascript/app.py diff --git a/shiny/examples/include_javascript/js/app.js b/shiny/api-examples/include_javascript/js/app.js similarity index 100% rename from shiny/examples/include_javascript/js/app.js rename to shiny/api-examples/include_javascript/js/app.js diff --git a/shiny/examples/input_action_button/app.py b/shiny/api-examples/input_action_button/app.py similarity index 100% rename from shiny/examples/input_action_button/app.py rename to shiny/api-examples/input_action_button/app.py diff --git a/shiny/examples/input_action_link/app.py b/shiny/api-examples/input_action_link/app.py similarity index 100% rename from shiny/examples/input_action_link/app.py rename to shiny/api-examples/input_action_link/app.py diff --git a/shiny/examples/input_checkbox/app.py b/shiny/api-examples/input_checkbox/app.py similarity index 100% rename from shiny/examples/input_checkbox/app.py rename to shiny/api-examples/input_checkbox/app.py diff --git a/shiny/examples/input_checkbox_group/app.py b/shiny/api-examples/input_checkbox_group/app.py similarity index 100% rename from shiny/examples/input_checkbox_group/app.py rename to shiny/api-examples/input_checkbox_group/app.py diff --git a/shiny/examples/input_date/app.py b/shiny/api-examples/input_date/app.py similarity index 100% rename from shiny/examples/input_date/app.py rename to shiny/api-examples/input_date/app.py diff --git a/shiny/examples/input_date_range/app.py b/shiny/api-examples/input_date_range/app.py similarity index 100% rename from shiny/examples/input_date_range/app.py rename to shiny/api-examples/input_date_range/app.py diff --git a/shiny/examples/input_file/app.py b/shiny/api-examples/input_file/app.py similarity index 100% rename from shiny/examples/input_file/app.py rename to shiny/api-examples/input_file/app.py diff --git a/shiny/examples/input_numeric/app.py b/shiny/api-examples/input_numeric/app.py similarity index 100% rename from shiny/examples/input_numeric/app.py rename to shiny/api-examples/input_numeric/app.py diff --git a/shiny/examples/input_password/app.py b/shiny/api-examples/input_password/app.py similarity index 100% rename from shiny/examples/input_password/app.py rename to shiny/api-examples/input_password/app.py diff --git a/shiny/examples/input_radio_buttons/app.py b/shiny/api-examples/input_radio_buttons/app.py similarity index 100% rename from shiny/examples/input_radio_buttons/app.py rename to shiny/api-examples/input_radio_buttons/app.py diff --git a/shiny/examples/input_select/app.py b/shiny/api-examples/input_select/app.py similarity index 100% rename from shiny/examples/input_select/app.py rename to shiny/api-examples/input_select/app.py diff --git a/shiny/examples/input_selectize/app.py b/shiny/api-examples/input_selectize/app.py similarity index 100% rename from shiny/examples/input_selectize/app.py rename to shiny/api-examples/input_selectize/app.py diff --git a/shiny/examples/input_slider/app.py b/shiny/api-examples/input_slider/app.py similarity index 100% rename from shiny/examples/input_slider/app.py rename to shiny/api-examples/input_slider/app.py diff --git a/shiny/examples/input_switch/app.py b/shiny/api-examples/input_switch/app.py similarity index 100% rename from shiny/examples/input_switch/app.py rename to shiny/api-examples/input_switch/app.py diff --git a/shiny/examples/input_text/app.py b/shiny/api-examples/input_text/app.py similarity index 100% rename from shiny/examples/input_text/app.py rename to shiny/api-examples/input_text/app.py diff --git a/shiny/examples/input_text_area/app.py b/shiny/api-examples/input_text_area/app.py similarity index 100% rename from shiny/examples/input_text_area/app.py rename to shiny/api-examples/input_text_area/app.py diff --git a/shiny/examples/insert_ui/app.py b/shiny/api-examples/insert_ui/app.py similarity index 100% rename from shiny/examples/insert_ui/app.py rename to shiny/api-examples/insert_ui/app.py diff --git a/shiny/examples/invalidate_later/app.py b/shiny/api-examples/invalidate_later/app.py similarity index 100% rename from shiny/examples/invalidate_later/app.py rename to shiny/api-examples/invalidate_later/app.py diff --git a/shiny/examples/isolate/app.py b/shiny/api-examples/isolate/app.py similarity index 100% rename from shiny/examples/isolate/app.py rename to shiny/api-examples/isolate/app.py diff --git a/shiny/examples/layout_sidebar/app.py b/shiny/api-examples/layout_sidebar/app.py similarity index 100% rename from shiny/examples/layout_sidebar/app.py rename to shiny/api-examples/layout_sidebar/app.py diff --git a/shiny/examples/markdown/app.py b/shiny/api-examples/markdown/app.py similarity index 100% rename from shiny/examples/markdown/app.py rename to shiny/api-examples/markdown/app.py diff --git a/shiny/examples/modal/app.py b/shiny/api-examples/modal/app.py similarity index 100% rename from shiny/examples/modal/app.py rename to shiny/api-examples/modal/app.py diff --git a/shiny/examples/nav/app.py b/shiny/api-examples/nav/app.py similarity index 100% rename from shiny/examples/nav/app.py rename to shiny/api-examples/nav/app.py diff --git a/shiny/examples/navset_hidden/app.py b/shiny/api-examples/navset_hidden/app.py similarity index 100% rename from shiny/examples/navset_hidden/app.py rename to shiny/api-examples/navset_hidden/app.py diff --git a/shiny/examples/notification_show/app.py b/shiny/api-examples/notification_show/app.py similarity index 100% rename from shiny/examples/notification_show/app.py rename to shiny/api-examples/notification_show/app.py diff --git a/shiny/examples/on_ended/app.py b/shiny/api-examples/on_ended/app.py similarity index 100% rename from shiny/examples/on_ended/app.py rename to shiny/api-examples/on_ended/app.py diff --git a/shiny/examples/on_flush/app.py b/shiny/api-examples/on_flush/app.py similarity index 100% rename from shiny/examples/on_flush/app.py rename to shiny/api-examples/on_flush/app.py diff --git a/shiny/examples/on_flushed/app.py b/shiny/api-examples/on_flushed/app.py similarity index 100% rename from shiny/examples/on_flushed/app.py rename to shiny/api-examples/on_flushed/app.py diff --git a/shiny/examples/output_image/app.py b/shiny/api-examples/output_image/app.py similarity index 100% rename from shiny/examples/output_image/app.py rename to shiny/api-examples/output_image/app.py diff --git a/shiny/examples/output_image/posit-logo.png b/shiny/api-examples/output_image/posit-logo.png similarity index 100% rename from shiny/examples/output_image/posit-logo.png rename to shiny/api-examples/output_image/posit-logo.png diff --git a/shiny/examples/output_plot/app.py b/shiny/api-examples/output_plot/app.py similarity index 100% rename from shiny/examples/output_plot/app.py rename to shiny/api-examples/output_plot/app.py diff --git a/shiny/examples/output_table/app.py b/shiny/api-examples/output_table/app.py similarity index 100% rename from shiny/examples/output_table/app.py rename to shiny/api-examples/output_table/app.py diff --git a/shiny/examples/output_table/mtcars.csv b/shiny/api-examples/output_table/mtcars.csv similarity index 100% rename from shiny/examples/output_table/mtcars.csv rename to shiny/api-examples/output_table/mtcars.csv diff --git a/shiny/examples/output_text/app.py b/shiny/api-examples/output_text/app.py similarity index 100% rename from shiny/examples/output_text/app.py rename to shiny/api-examples/output_text/app.py diff --git a/shiny/examples/output_ui/app.py b/shiny/api-examples/output_ui/app.py similarity index 100% rename from shiny/examples/output_ui/app.py rename to shiny/api-examples/output_ui/app.py diff --git a/shiny/examples/page_fixed/app.py b/shiny/api-examples/page_fixed/app.py similarity index 100% rename from shiny/examples/page_fixed/app.py rename to shiny/api-examples/page_fixed/app.py diff --git a/shiny/examples/page_fluid/app.py b/shiny/api-examples/page_fluid/app.py similarity index 100% rename from shiny/examples/page_fluid/app.py rename to shiny/api-examples/page_fluid/app.py diff --git a/shiny/examples/panel_absolute/app.py b/shiny/api-examples/panel_absolute/app.py similarity index 100% rename from shiny/examples/panel_absolute/app.py rename to shiny/api-examples/panel_absolute/app.py diff --git a/shiny/examples/panel_conditional/app.py b/shiny/api-examples/panel_conditional/app.py similarity index 100% rename from shiny/examples/panel_conditional/app.py rename to shiny/api-examples/panel_conditional/app.py diff --git a/shiny/examples/panel_title/app.py b/shiny/api-examples/panel_title/app.py similarity index 100% rename from shiny/examples/panel_title/app.py rename to shiny/api-examples/panel_title/app.py diff --git a/shiny/examples/poll/app.py b/shiny/api-examples/poll/app.py similarity index 100% rename from shiny/examples/poll/app.py rename to shiny/api-examples/poll/app.py diff --git a/shiny/examples/remove_ui/app.py b/shiny/api-examples/remove_ui/app.py similarity index 100% rename from shiny/examples/remove_ui/app.py rename to shiny/api-examples/remove_ui/app.py diff --git a/shiny/examples/render_image/app.py b/shiny/api-examples/render_image/app.py similarity index 100% rename from shiny/examples/render_image/app.py rename to shiny/api-examples/render_image/app.py diff --git a/shiny/examples/req/app.py b/shiny/api-examples/req/app.py similarity index 100% rename from shiny/examples/req/app.py rename to shiny/api-examples/req/app.py diff --git a/shiny/examples/row/app.py b/shiny/api-examples/row/app.py similarity index 100% rename from shiny/examples/row/app.py rename to shiny/api-examples/row/app.py diff --git a/shiny/examples/send_custom_message/app.py b/shiny/api-examples/send_custom_message/app.py similarity index 100% rename from shiny/examples/send_custom_message/app.py rename to shiny/api-examples/send_custom_message/app.py diff --git a/shiny/examples/template/app.py b/shiny/api-examples/template/app.py similarity index 100% rename from shiny/examples/template/app.py rename to shiny/api-examples/template/app.py diff --git a/shiny/examples/todo_list/app.py b/shiny/api-examples/todo_list/app.py similarity index 100% rename from shiny/examples/todo_list/app.py rename to shiny/api-examples/todo_list/app.py diff --git a/shiny/examples/todo_list/requirements.txt b/shiny/api-examples/todo_list/requirements.txt similarity index 100% rename from shiny/examples/todo_list/requirements.txt rename to shiny/api-examples/todo_list/requirements.txt diff --git a/shiny/examples/update_action_button/app.py b/shiny/api-examples/update_action_button/app.py similarity index 100% rename from shiny/examples/update_action_button/app.py rename to shiny/api-examples/update_action_button/app.py diff --git a/shiny/examples/update_checkbox/app.py b/shiny/api-examples/update_checkbox/app.py similarity index 100% rename from shiny/examples/update_checkbox/app.py rename to shiny/api-examples/update_checkbox/app.py diff --git a/shiny/examples/update_checkbox_group/app.py b/shiny/api-examples/update_checkbox_group/app.py similarity index 100% rename from shiny/examples/update_checkbox_group/app.py rename to shiny/api-examples/update_checkbox_group/app.py diff --git a/shiny/examples/update_date/app.py b/shiny/api-examples/update_date/app.py similarity index 100% rename from shiny/examples/update_date/app.py rename to shiny/api-examples/update_date/app.py diff --git a/shiny/examples/update_date_range/app.py b/shiny/api-examples/update_date_range/app.py similarity index 100% rename from shiny/examples/update_date_range/app.py rename to shiny/api-examples/update_date_range/app.py diff --git a/shiny/examples/update_navs/app.py b/shiny/api-examples/update_navs/app.py similarity index 100% rename from shiny/examples/update_navs/app.py rename to shiny/api-examples/update_navs/app.py diff --git a/shiny/examples/update_numeric/app.py b/shiny/api-examples/update_numeric/app.py similarity index 100% rename from shiny/examples/update_numeric/app.py rename to shiny/api-examples/update_numeric/app.py diff --git a/shiny/examples/update_radio_buttons/app.py b/shiny/api-examples/update_radio_buttons/app.py similarity index 100% rename from shiny/examples/update_radio_buttons/app.py rename to shiny/api-examples/update_radio_buttons/app.py diff --git a/shiny/examples/update_select/app.py b/shiny/api-examples/update_select/app.py similarity index 100% rename from shiny/examples/update_select/app.py rename to shiny/api-examples/update_select/app.py diff --git a/shiny/examples/update_selectize/app.py b/shiny/api-examples/update_selectize/app.py similarity index 100% rename from shiny/examples/update_selectize/app.py rename to shiny/api-examples/update_selectize/app.py diff --git a/shiny/examples/update_slider/app.py b/shiny/api-examples/update_slider/app.py similarity index 100% rename from shiny/examples/update_slider/app.py rename to shiny/api-examples/update_slider/app.py diff --git a/shiny/examples/update_text/app.py b/shiny/api-examples/update_text/app.py similarity index 100% rename from shiny/examples/update_text/app.py rename to shiny/api-examples/update_text/app.py diff --git a/shiny/examples/www_dir/app.py b/shiny/api-examples/www_dir/app.py similarity index 100% rename from shiny/examples/www_dir/app.py rename to shiny/api-examples/www_dir/app.py diff --git a/shiny/examples/www_dir/www/css/more-styles.css b/shiny/api-examples/www_dir/www/css/more-styles.css similarity index 100% rename from shiny/examples/www_dir/www/css/more-styles.css rename to shiny/api-examples/www_dir/www/css/more-styles.css diff --git a/shiny/examples/www_dir/www/css/styles.css b/shiny/api-examples/www_dir/www/css/styles.css similarity index 100% rename from shiny/examples/www_dir/www/css/styles.css rename to shiny/api-examples/www_dir/www/css/styles.css diff --git a/shiny/examples/www_dir/www/js/changetext.js b/shiny/api-examples/www_dir/www/js/changetext.js similarity index 100% rename from shiny/examples/www_dir/www/js/changetext.js rename to shiny/api-examples/www_dir/www/js/changetext.js diff --git a/shiny/experimental/examples/accordion/app.py b/shiny/experimental/api-examples/accordion/app.py similarity index 100% rename from shiny/experimental/examples/accordion/app.py rename to shiny/experimental/api-examples/accordion/app.py diff --git a/shiny/experimental/examples/accordion_panel/app.py b/shiny/experimental/api-examples/accordion_panel/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel/app.py rename to shiny/experimental/api-examples/accordion_panel/app.py diff --git a/shiny/experimental/examples/accordion_panel_close/app.py b/shiny/experimental/api-examples/accordion_panel_close/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_close/app.py rename to shiny/experimental/api-examples/accordion_panel_close/app.py diff --git a/shiny/experimental/examples/accordion_panel_insert/app.py b/shiny/experimental/api-examples/accordion_panel_insert/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_insert/app.py rename to shiny/experimental/api-examples/accordion_panel_insert/app.py diff --git a/shiny/experimental/examples/accordion_panel_open/app.py b/shiny/experimental/api-examples/accordion_panel_open/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_open/app.py rename to shiny/experimental/api-examples/accordion_panel_open/app.py diff --git a/shiny/experimental/examples/accordion_panel_remove/app.py b/shiny/experimental/api-examples/accordion_panel_remove/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_remove/app.py rename to shiny/experimental/api-examples/accordion_panel_remove/app.py diff --git a/shiny/experimental/examples/accordion_panel_set/app.py b/shiny/experimental/api-examples/accordion_panel_set/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_set/app.py rename to shiny/experimental/api-examples/accordion_panel_set/app.py diff --git a/shiny/experimental/examples/accordion_panel_update/app.py b/shiny/experimental/api-examples/accordion_panel_update/app.py similarity index 100% rename from shiny/experimental/examples/accordion_panel_update/app.py rename to shiny/experimental/api-examples/accordion_panel_update/app.py diff --git a/shiny/experimental/examples/as_fill_carrier/app.py b/shiny/experimental/api-examples/as_fill_carrier/app.py similarity index 100% rename from shiny/experimental/examples/as_fill_carrier/app.py rename to shiny/experimental/api-examples/as_fill_carrier/app.py diff --git a/shiny/experimental/examples/as_fill_item/app.py b/shiny/experimental/api-examples/as_fill_item/app.py similarity index 100% rename from shiny/experimental/examples/as_fill_item/app.py rename to shiny/experimental/api-examples/as_fill_item/app.py diff --git a/shiny/experimental/examples/as_fillable_container/app.py b/shiny/experimental/api-examples/as_fillable_container/app.py similarity index 100% rename from shiny/experimental/examples/as_fillable_container/app.py rename to shiny/experimental/api-examples/as_fillable_container/app.py diff --git a/shiny/experimental/examples/card/app.py b/shiny/experimental/api-examples/card/app.py similarity index 100% rename from shiny/experimental/examples/card/app.py rename to shiny/experimental/api-examples/card/app.py diff --git a/shiny/experimental/examples/card_body/app.py b/shiny/experimental/api-examples/card_body/app.py similarity index 100% rename from shiny/experimental/examples/card_body/app.py rename to shiny/experimental/api-examples/card_body/app.py diff --git a/shiny/experimental/examples/card_footer/app.py b/shiny/experimental/api-examples/card_footer/app.py similarity index 100% rename from shiny/experimental/examples/card_footer/app.py rename to shiny/experimental/api-examples/card_footer/app.py diff --git a/shiny/experimental/examples/card_header/app.py b/shiny/experimental/api-examples/card_header/app.py similarity index 100% rename from shiny/experimental/examples/card_header/app.py rename to shiny/experimental/api-examples/card_header/app.py diff --git a/shiny/experimental/examples/card_image/app.py b/shiny/experimental/api-examples/card_image/app.py similarity index 100% rename from shiny/experimental/examples/card_image/app.py rename to shiny/experimental/api-examples/card_image/app.py diff --git a/shiny/experimental/examples/card_title/app.py b/shiny/experimental/api-examples/card_title/app.py similarity index 100% rename from shiny/experimental/examples/card_title/app.py rename to shiny/experimental/api-examples/card_title/app.py diff --git a/shiny/experimental/examples/input_text_area/app.py b/shiny/experimental/api-examples/input_text_area/app.py similarity index 100% rename from shiny/experimental/examples/input_text_area/app.py rename to shiny/experimental/api-examples/input_text_area/app.py diff --git a/shiny/experimental/examples/layout_column_wrap/app.py b/shiny/experimental/api-examples/layout_column_wrap/app.py similarity index 100% rename from shiny/experimental/examples/layout_column_wrap/app.py rename to shiny/experimental/api-examples/layout_column_wrap/app.py diff --git a/shiny/experimental/examples/layout_sidebar/app.py b/shiny/experimental/api-examples/layout_sidebar/app.py similarity index 100% rename from shiny/experimental/examples/layout_sidebar/app.py rename to shiny/experimental/api-examples/layout_sidebar/app.py diff --git a/shiny/experimental/examples/page_sidebar/app.py b/shiny/experimental/api-examples/page_sidebar/app.py similarity index 100% rename from shiny/experimental/examples/page_sidebar/app.py rename to shiny/experimental/api-examples/page_sidebar/app.py diff --git a/shiny/experimental/examples/showcase_left_center/app.py b/shiny/experimental/api-examples/showcase_left_center/app.py similarity index 100% rename from shiny/experimental/examples/showcase_left_center/app.py rename to shiny/experimental/api-examples/showcase_left_center/app.py diff --git a/shiny/experimental/examples/showcase_top_right/app.py b/shiny/experimental/api-examples/showcase_top_right/app.py similarity index 100% rename from shiny/experimental/examples/showcase_top_right/app.py rename to shiny/experimental/api-examples/showcase_top_right/app.py diff --git a/shiny/experimental/examples/sidebar/app.py b/shiny/experimental/api-examples/sidebar/app.py similarity index 100% rename from shiny/experimental/examples/sidebar/app.py rename to shiny/experimental/api-examples/sidebar/app.py diff --git a/shiny/experimental/examples/sidebar_toggle/app.py b/shiny/experimental/api-examples/sidebar_toggle/app.py similarity index 100% rename from shiny/experimental/examples/sidebar_toggle/app.py rename to shiny/experimental/api-examples/sidebar_toggle/app.py diff --git a/shiny/experimental/examples/value_box/app.py b/shiny/experimental/api-examples/value_box/app.py similarity index 100% rename from shiny/experimental/examples/value_box/app.py rename to shiny/experimental/api-examples/value_box/app.py