Files
wehub-resource-sync adf0d17497
publish / version_or_publish (push) Waiting to run
storybook-build / changes (push) Waiting to run
storybook-build / :storybook-build (push) Blocked by required conditions
Sync Gradio Skills to Hugging Face / sync-skills (push) Waiting to run
functional / changes (push) Waiting to run
functional / build-frontend (push) Blocked by required conditions
functional / functional-test-SSR=false (push) Blocked by required conditions
functional / functional-reload (push) Blocked by required conditions
functional / functional-test-SSR=true (push) Blocked by required conditions
hygiene / hygiene-test (push) Waiting to run
python / changes (push) Waiting to run
python / build (push) Blocked by required conditions
python / test-ubuntu-latest-flaky (push) Blocked by required conditions
python / test-ubuntu-latest-not-flaky (push) Blocked by required conditions
python / test-windows-latest-flaky (push) Blocked by required conditions
python / test-windows-latest-not-flaky (push) Blocked by required conditions
js / changes (push) Waiting to run
js / js-test (push) Blocked by required conditions
docs-build / changes (push) Waiting to run
docs-build / docs-build (push) Blocked by required conditions
docs-build / website-build (push) Blocked by required conditions
chore: import upstream snapshot with attribution
2026-07-13 13:17:32 +08:00

91 lines
2.3 KiB
Python

import gradio as gr
def validate_input(age, location):
is_age_valid = True
is_location_valid = True
if not age or age < 3:
is_age_valid = False
if "london" in location.lower():
is_location_valid = False
return [
gr.validate(is_age_valid, "Age must be at least 3"),
gr.validate(is_location_valid, "Location must not be in London"),
]
def process_text(age, location):
result = f"Processed: {age} -- {location.upper()}"
return result
def validate_image(image):
# we don't want to error when a user is clearing the image
if not image:
return None
is_portrait = image.width < image.height
return gr.validate(is_portrait, "Image must be in portrait mode")
def process_image(image):
if not image:
return "No image uploaded"
return "HELLO IMAGE!!!"
def raise_error():
raise ValueError("test error")
with gr.Blocks() as demo:
with gr.Tab("Text"):
gr.Markdown("# Validator Parameter Test Demo")
with gr.Row():
with gr.Column():
age = gr.Number(
label="Enter age",
placeholder="Enter age",
)
location = gr.Textbox(
max_lines=3,
label="Enter location",
placeholder="Enter location",
)
validate_btn = gr.Button("Process with Validation", variant="primary")
output_with_validation = gr.Textbox(
label="Output (with validation)", interactive=False
)
validate_btn.click(
fn=process_text,
validator=validate_input,
inputs=[age, location],
outputs=output_with_validation,
)
with gr.Tab("Image"):
im = gr.Image(label="Enter image", placeholder="Enter image", type="pil")
t = gr.Textbox(label="Enter text", placeholder="Enter text")
im.change(
fn=process_image,
validator=validate_image,
inputs=im,
outputs=t,
)
with gr.Tab("Validation Error"):
error_btn = gr.Button("Raise Validation Error", variant="primary")
error_btn.click(
validator=raise_error,
fn=raise_error,
inputs=[],
outputs=[],
)
if __name__ == "__main__":
demo.launch()