gradio-app / gradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!
http://www.gradio.app
Apache License 2.0
29.84k stars 2.22k forks source link

Unable to programatically update gr.Examples #8293

Open Solomin0 opened 2 weeks ago

Solomin0 commented 2 weeks ago

Describe the bug

When setting a gr.Example component as an output gradio will break. Being only able to update this via a text file seems unintended so i am looking for the proper way to do this. It appears that this bug has existed before and cropped back up #5042 my use case is loading saved prompts from a user and populate the example component with them.

Have you searched existing issues? 🔎

Reproduction

import gradio as gr
def update(name):
    new_examples = gr.Examples(["1","2","3"], inputs=[inp],label = "Saved Prompts")
    return f"Welcome to Gradio, {name}!", new_examples

with gr.Blocks() as demo:
    with gr.Row():
        inp = gr.Textbox(placeholder="What is your name?")
        ex = gr.Examples(["a","b"], inputs=[inp],label = "Saved Prompts")
        btn = gr.Button("Run")
    btn.click(fn=update, inputs=inp, outputs=[ex])

demo.launch()

Screenshot

No response

Logs

, line 555, in get_config   
    "outputs": [block._id for block in self.outputs],
                ^^^^^^^^^
AttributeError: 'Examples' object has no attribute '_id'

System Info

Gradio Environment Information:
------------------------------ 
Operating System: Windows
gradio version: 4.31.0
gradio_client version: 0.16.2

------------------------------------------------
gradio dependencies in your environment:

aiofiles: 23.2.1
altair: 5.3.0
fastapi: 0.111.0
ffmpy: 0.3.2
gradio-client==0.16.2 is not installed.
httpx: 0.27.0
huggingface-hub: 0.23.0
importlib-resources: 6.4.0
jinja2: 3.1.4
markupsafe: 2.1.5
matplotlib: 3.8.4
numpy: 1.26.4
orjson: 3.10.3
packaging: 23.2
pandas: 2.2.2
pillow: 10.3.0
pydantic: 2.7.1
pydub: 0.25.1
python-multipart: 0.0.9
pyyaml: 6.0.1
ruff: 0.4.4
semantic-version: 2.10.0
tomlkit==0.12.0 is not installed.
typer: 0.12.3
typing-extensions: 4.11.0
urllib3: 2.2.1
uvicorn: 0.29.0
authlib; extra == 'oauth' is not installed.
itsdangerous; extra == 'oauth' is not installed.

gradio_client dependencies in your environment:

fsspec: 2024.3.1
httpx: 0.27.0
huggingface-hub: 0.23.0
packaging: 23.2
typing-extensions: 4.11.0
websockets: 11.0.3

Severity

Blocking usage of gradio