{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: render_tests"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["from datetime import datetime\n", "\n", "import time\n", "import gradio as gr\n", "\n", "def update_log():\n", " return datetime.now().timestamp()\n", "\n", "def get_target(evt: gr.EventData):\n", " return evt.target\n", "\n", "def get_select_index(evt: gr.SelectData):\n", " return evt.index\n", "\n", "with gr.Blocks() as demo:\n", " gr.Textbox(value=update_log, every=0.2, label=\"Time\")\n", " \n", " slider = gr.Slider(1, 10, step=1)\n", " @gr.render(inputs=[slider])\n", " def show_log(s):\n", " with gr.Row():\n", " for i in range(s):\n", " gr.Textbox(value=update_log, every=0.2, label=f\"Render {i + 1}\")\n", "\n", " slider2 = gr.Slider(1, 10, step=1, label=\"Box Count\")\n", " btn = gr.Button(\"Create Boxes\")\n", " @gr.render(inputs=[slider2], triggers=[btn.click])\n", " def show_log_2(s):\n", " for i in range(s):\n", " gr.Textbox(value=str(i), label=f\"Count {i + 1}\")\n", "\n", " with gr.Row():\n", " selected_btn = gr.Textbox(label=\"Selected Button\")\n", " selected_chat = gr.Textbox(label=\"Selected Chat\")\n", " @gr.render(inputs=[slider])\n", " def show_buttons(s):\n", " with gr.Row():\n", " with gr.Column():\n", " for i in range(s):\n", " btn = gr.Button(f\"Button {i + 1}\")\n", " btn.click(get_target, None, selected_btn)\n", " chatbot = gr.Chatbot([[\"Hello\", \"Hi\"], [\"How are you?\", \"I'm good.\"]])\n", " chatbot.select(get_select_index, None, selected_chat)\n", "\n", " selectable_chat = gr.Chatbot([[\"chat1\", \"chat2\"], [\"chat3\", \"chat4\"]])\n", " \n", " @gr.render(triggers=[selectable_chat.select])\n", " def show_selected_chat(selection: gr.SelectData):\n", " gr.Textbox(label=\"Trigger Index\", value=selection.index)\n", "\n", " @gr.render()\n", " def examples_in_interface():\n", " gr.Interface(lambda x:x, gr.Textbox(label=\"input\"), gr.Textbox(), examples=[[\"test\"]])\n", "\n", " @gr.render()\n", " def examples_in_blocks():\n", " a = gr.Textbox(label=\"little textbox\")\n", " gr.Examples([[\"abc\"], [\"def\"]], [a])\n", "\n", " choices_count = gr.Slider(1, 10, 3, step=1, label=\"Choices\")\n", " @gr.render(choices_count)\n", " def show_choices(count):\n", " with gr.Row():\n", " letter_choices = gr.Radio(list('abcdefghij')[:int(count)], label=\"Choices\", key=\"choices\", preserved_by_key=[\"value\", \"label\"], interactive=True)\n", " textbox = gr.Textbox(label=\"Set Label\", value=\"Choices\")\n", "\n", " textbox.change(lambda l: gr.Radio(label=l), textbox, letter_choices)\n", "\n", " timer = gr.Timer(0.5)\n", "\n", " @gr.render(triggers=[timer.tick], show_progress=\"hidden\")\n", " def render():\n", " a = gr.Textbox(label=\"box-a\", key=\"a\")\n", " b = gr.Textbox(label=\"box-b\", key=\"b\")\n", " a.change(lambda x: time.sleep(0.5) or x, a, b, key=\"a-b\")\n", " gr.Number(value=round(time.time(), 2))\n", "\n", "\n", "if __name__ == '__main__':\n", " demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}