Adds a filterable parameter to gr.Dropdown that controls whether user can type to filter choices (#5508)

* dropdown

* changes

* add changeset

* refactor

* cleanup

* dropdown

* more refactoring

* fixes

* simplify, docstring

* restore active_index

* split into two files

* new files

* simplify

* single select dropdown working

* single select dropdown almost working

* dropdown

* multiselect

* multiselect wip

* multiselect

* multiselect

* multiselect

* interactive working

* dropdown

* lint

* add changeset

* type

* typing

* fix multiselect static

* dropdown

* stories and tests

* split stories

* lint

* add changeset

* revert

* add changeset

* fix x

* dropdown

* lint, test

* backend fixes

* lint

* fix tests

* lint

* fix final test

* clean

* review fixes

* dropdown

* lint

* lint

* changes

* typing

* fixes

* active index null bug

* adding filterable parameter to dropdown

* dropdown

* lint

* add changeset

* add changeset

* svelte

* fix test

* add changeset

* added warning

* lint

* fix tests

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
This commit is contained in:
Abubakar Abid 2023-09-12 18:36:29 -07:00 committed by GitHub
parent 8909e42a7c
commit 05715f5599
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1545 additions and 1418 deletions

View File

@ -0,0 +1,6 @@
---
"@gradio/dropdown": patch
"gradio": patch
---
fix:Adds a `filterable` parameter to `gr.Dropdown` that controls whether user can type to filter choices

View File

@ -48,6 +48,7 @@ class Dropdown(
multiselect: bool | None = None,
allow_custom_value: bool = False,
max_choices: int | None = None,
filterable: bool = True,
label: str | None = None,
info: str | None = None,
every: float | None = None,
@ -69,6 +70,7 @@ class Dropdown(
multiselect: if True, multiple choices can be selected.
allow_custom_value: If True, allows user to enter a custom value that is not in the list of choices. Only applies if `multiselect` is False.
max_choices: maximum number of choices that can be selected. If None, no limit is enforced.
filterable: If True, user will be able to type into the dropdown and filter the choices by typing. Can only be set to False if `allow_custom_value` is False.
label: component name in interface.
info: additional component description.
every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute.
@ -99,9 +101,15 @@ class Dropdown(
warnings.warn(
"The `max_choices` parameter is ignored when `multiselect` is False."
)
if not filterable and allow_custom_value:
filterable = True
warnings.warn(
"The `filterable` parameter cannot be set to False when `allow_custom_value` is True. Setting `filterable` to True."
)
self.max_choices = max_choices
self.allow_custom_value = allow_custom_value
self.interpret_by_tokens = False
self.filterable = filterable
self.select: EventListenerMethod
"""
Event listener for when the user selects Dropdown option.
@ -156,6 +164,7 @@ class Dropdown(
"max_choices": self.max_choices,
"allow_custom_value": self.allow_custom_value,
"container": self.container,
"filterable": self.filterable,
**IOComponent.get_config(self),
}
@ -166,6 +175,7 @@ class Dropdown(
label: str | None = None,
info: str | None = None,
show_label: bool | None = None,
filterable: bool | None = None,
container: bool | None = None,
scale: int | None = None,
min_width: int | None = None,
@ -185,6 +195,7 @@ class Dropdown(
"value": value,
"interactive": interactive,
"placeholder": placeholder,
"filterable": filterable,
"__type__": "update",
}

View File

@ -17,6 +17,7 @@
export let max_choices: number | null = null;
export let choices: [string, string | number][];
export let show_label: boolean;
export let filterable: boolean;
export let container = true;
export let scale: number | null = null;
export let min_width: number | undefined = undefined;
@ -53,6 +54,7 @@
{show_label}
{allow_custom_value}
{container}
{filterable}
on:change={() => gradio.dispatch("change")}
on:input={() => gradio.dispatch("input")}
on:select={(e) => gradio.dispatch("select", e.detail)}
@ -69,6 +71,7 @@
{show_label}
{allow_custom_value}
{container}
{filterable}
on:change={() => gradio.dispatch("change")}
on:input={() => gradio.dispatch("input")}
on:select={(e) => gradio.dispatch("select", e.detail)}

View File

@ -18,6 +18,7 @@
export let show_label: boolean;
export let container = true;
export let allow_custom_value = false;
export let filterable = true;
let filter_input: HTMLElement;
@ -186,6 +187,7 @@
on:keydown={handle_key_down}
on:blur={handle_blur}
on:focus={handle_focus}
readonly={!filterable}
/>
{#if !disabled}
<DropdownArrow />
@ -264,4 +266,8 @@
.subdued {
color: var(--body-text-color-subdued);
}
input[readonly] {
cursor: pointer;
}
</style>

View File

@ -19,6 +19,7 @@
export let show_label: boolean;
export let container = true;
export let allow_custom_value = false;
export let filterable = true;
let filter_input: HTMLElement;
let input_text = "";
@ -248,6 +249,7 @@
on:keydown={handle_key_down}
on:blur={handle_blur}
on:focus={handle_focus}
readonly={!filterable}
/>
<!-- TODO: fix -->
<!-- svelte-ignore a11y-click-events-have-key-events -->
@ -380,4 +382,7 @@
.subdued {
color: var(--body-text-color-subdued);
}
input[readonly] {
cursor: pointer;
}
</style>

View File

@ -16,6 +16,7 @@
export let max_choices: number | null = null;
export let choices: [string, string | number][];
export let show_label: boolean;
export let filterable: boolean;
export let container = true;
export let scale: number | null = null;
export let min_width: number | undefined = undefined;
@ -51,6 +52,7 @@
{info}
{show_label}
{allow_custom_value}
{filterable}
{container}
on:change={() => gradio.dispatch("change")}
on:input={() => gradio.dispatch("input")}
@ -67,6 +69,7 @@
{label}
{info}
{show_label}
{filterable}
{allow_custom_value}
{container}
on:change={() => gradio.dispatch("change")}

View File

@ -1093,6 +1093,7 @@ class TestSpecificUpdate:
"show_copy_button": None,
"rtl": None,
"text_align": None,
"autoscroll": None,
"__type__": "update",
}
@ -1117,6 +1118,7 @@ class TestSpecificUpdate:
"show_copy_button": None,
"rtl": None,
"text_align": None,
"autoscroll": None,
"__type__": "update",
}

View File

@ -106,7 +106,7 @@ class TestTextbox:
"rtl": False,
"text_align": None,
"autofocus": False,
'autoscroll': True,
"autoscroll": True,
}
@pytest.mark.asyncio
@ -636,6 +636,7 @@ class TestDropdown:
"interactive": None,
"root_url": None,
"multiselect": True,
"filterable": True,
"max_choices": 2,
}
with pytest.raises(ValueError):

View File

@ -1,450 +1,479 @@
{
"version": "3.41.2",
"mode": "blocks",
"dev_mode": true,
"analytics_enabled": true,
"components": [
{
"id": 1,
"type": "markdown",
"props": {
"value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2",
"rtl": false,
"latex_delimiters": [
{
"left": "$",
"right": "$",
"display": false
}
],
"sanitize_html": true,
"name": "markdown",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 2,
"type": "checkboxgroup",
"props": {
"choices": [
["Covid", "Covid"],
["Malaria", "Malaria"],
["Lung Cancer", "Lung Cancer"]
],
"value": [],
"label": "Disease to Scan For",
"show_label": true,
"container": true,
"min_width": 160,
"name": "checkboxgroup",
"visible": true
},
"serializer": "ListStringSerializable",
"api_info": {
"info": {
"type": "array",
"items": {
"type": "string"
}
},
"serialized_info": false
},
"example_inputs": {
"raw": ["Covid"],
"serialized": ["Covid"]
}
},
{
"id": 3,
"type": "tabs",
"props": {
"visible": true
}
},
{
"id": 4,
"type": "tabitem",
"props": {
"label": "X-ray",
"visible": true
}
},
{
"id": 5,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 6,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 7,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 8,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 9,
"type": "tabitem",
"props": {
"label": "CT Scan",
"visible": true
}
},
{
"id": 10,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 11,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 12,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 13,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 14,
"type": "textbox",
"props": {
"lines": 1,
"max_lines": 20,
"value": "",
"type": "text",
"autofocus": false,
"show_copy_button": false,
"container": true,
"rtl": false,
"show_label": true,
"min_width": 160,
"name": "textbox",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 15,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
},
{
"id": 16,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
}
],
"css": null,
"title": "Gradio",
"space_id": null,
"enable_queue": null,
"show_error": true,
"show_api": true,
"is_colab": false,
"stylesheets": [
"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap",
"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap"
],
"theme": "default",
"layout": {
"id": 0,
"children": [
{
"id": 1
},
{
"id": 15,
"children": [
{
"id": 2
}
]
},
{
"id": 3,
"children": [
{
"id": 4,
"children": [
{
"id": 5,
"children": [
{
"id": 6
},
{
"id": 7
}
]
},
{
"id": 8
}
]
},
{
"id": 9,
"children": [
{
"id": 10,
"children": [
{
"id": 11
},
{
"id": 12
}
]
},
{
"id": 13
}
]
}
]
},
{
"id": 16,
"children": [
{
"id": 14
}
]
}
]
},
"dependencies": [
{
"targets": [8],
"trigger": "click",
"inputs": [2, 6],
"outputs": [7],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
},
{
"targets": [13],
"trigger": "click",
"inputs": [2, 11],
"outputs": [12],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
}
]
}
"version": "3.43.2",
"mode": "blocks",
"app_id": 13795391484029587257,
"dev_mode": false,
"analytics_enabled": true,
"components": [
{
"id": 1,
"type": "markdown",
"props": {
"value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2",
"rtl": false,
"latex_delimiters": [
{
"left": "$",
"right": "$",
"display": false
}
],
"sanitize_html": true,
"name": "markdown",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 2,
"type": "checkboxgroup",
"props": {
"choices": [
[
"Covid",
"Covid"
],
[
"Malaria",
"Malaria"
],
[
"Lung Cancer",
"Lung Cancer"
]
],
"value": [],
"label": "Disease to Scan For",
"show_label": true,
"container": true,
"min_width": 160,
"name": "checkboxgroup",
"visible": true
},
"serializer": "ListStringSerializable",
"api_info": {
"info": {
"type": "array",
"items": {
"type": "string"
}
},
"serialized_info": false
},
"example_inputs": {
"raw": [
"Covid"
],
"serialized": [
"Covid"
]
}
},
{
"id": 3,
"type": "tabs",
"props": {
"visible": true
}
},
{
"id": 4,
"type": "tabitem",
"props": {
"label": "X-ray",
"visible": true
}
},
{
"id": 5,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 6,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 7,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 8,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 9,
"type": "tabitem",
"props": {
"label": "CT Scan",
"visible": true
}
},
{
"id": 10,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 11,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 12,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 13,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 14,
"type": "textbox",
"props": {
"lines": 1,
"max_lines": 20,
"value": "",
"type": "text",
"autofocus": false,
"show_copy_button": false,
"container": true,
"rtl": false,
"autoscroll": true,
"show_label": true,
"min_width": 160,
"name": "textbox",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 15,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
},
{
"id": 16,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
}
],
"css": null,
"title": "Gradio",
"space_id": null,
"enable_queue": null,
"show_error": true,
"show_api": true,
"is_colab": false,
"stylesheets": [
"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap",
"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap"
],
"theme": "default",
"layout": {
"id": 0,
"children": [
{
"id": 1
},
{
"id": 15,
"children": [
{
"id": 2
}
]
},
{
"id": 3,
"children": [
{
"id": 4,
"children": [
{
"id": 5,
"children": [
{
"id": 6
},
{
"id": 7
}
]
},
{
"id": 8
}
]
},
{
"id": 9,
"children": [
{
"id": 10,
"children": [
{
"id": 11
},
{
"id": 12
}
]
},
{
"id": 13
}
]
}
]
},
{
"id": 16,
"children": [
{
"id": 14
}
]
}
]
},
"dependencies": [
{
"targets": [
8
],
"trigger": "click",
"inputs": [
2,
6
],
"outputs": [
7
],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
},
{
"targets": [
13
],
"trigger": "click",
"inputs": [
2,
11
],
"outputs": [
12
],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
}
]
}

View File

@ -1,450 +1,479 @@
{
"version": "3.41.2",
"mode": "blocks",
"dev_mode": true,
"analytics_enabled": true,
"components": [
{
"id": 101,
"type": "markdown",
"props": {
"value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2",
"rtl": false,
"latex_delimiters": [
{
"left": "$",
"right": "$",
"display": false
}
],
"sanitize_html": true,
"name": "markdown",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 102,
"type": "checkboxgroup",
"props": {
"choices": [
["Covid", "Covid"],
["Malaria", "Malaria"],
["Lung Cancer", "Lung Cancer"]
],
"value": [],
"label": "Disease to Scan For",
"show_label": true,
"container": true,
"min_width": 160,
"name": "checkboxgroup",
"visible": true
},
"serializer": "ListStringSerializable",
"api_info": {
"info": {
"type": "array",
"items": {
"type": "string"
}
},
"serialized_info": false
},
"example_inputs": {
"raw": ["Covid"],
"serialized": ["Covid"]
}
},
{
"id": 103,
"type": "tabs",
"props": {
"visible": true
}
},
{
"id": 104,
"type": "tabitem",
"props": {
"label": "X-ray",
"visible": true
}
},
{
"id": 105,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 106,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 107,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 108,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 109,
"type": "tabitem",
"props": {
"label": "CT Scan",
"visible": true
}
},
{
"id": 110,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 111,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 112,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 113,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 114,
"type": "textbox",
"props": {
"lines": 1,
"max_lines": 20,
"value": "",
"type": "text",
"autofocus": false,
"show_copy_button": false,
"container": true,
"rtl": false,
"show_label": true,
"min_width": 160,
"name": "textbox",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 115,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
},
{
"id": 116,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
}
],
"css": null,
"title": "Gradio",
"space_id": null,
"enable_queue": null,
"show_error": true,
"show_api": true,
"is_colab": false,
"stylesheets": [
"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap",
"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap"
],
"theme": "default",
"layout": {
"id": 100,
"children": [
{
"id": 101
},
{
"id": 115,
"children": [
{
"id": 102
}
]
},
{
"id": 103,
"children": [
{
"id": 104,
"children": [
{
"id": 105,
"children": [
{
"id": 106
},
{
"id": 107
}
]
},
{
"id": 108
}
]
},
{
"id": 109,
"children": [
{
"id": 110,
"children": [
{
"id": 111
},
{
"id": 112
}
]
},
{
"id": 113
}
]
}
]
},
{
"id": 116,
"children": [
{
"id": 114
}
]
}
]
},
"dependencies": [
{
"targets": [108],
"trigger": "click",
"inputs": [102, 106],
"outputs": [107],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
},
{
"targets": [113],
"trigger": "click",
"inputs": [102, 111],
"outputs": [112],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
}
]
}
"version": "3.43.2",
"mode": "blocks",
"app_id": 1168406096942204620,
"dev_mode": false,
"analytics_enabled": true,
"components": [
{
"id": 101,
"type": "markdown",
"props": {
"value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2",
"rtl": false,
"latex_delimiters": [
{
"left": "$",
"right": "$",
"display": false
}
],
"sanitize_html": true,
"name": "markdown",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 102,
"type": "checkboxgroup",
"props": {
"choices": [
[
"Covid",
"Covid"
],
[
"Malaria",
"Malaria"
],
[
"Lung Cancer",
"Lung Cancer"
]
],
"value": [],
"label": "Disease to Scan For",
"show_label": true,
"container": true,
"min_width": 160,
"name": "checkboxgroup",
"visible": true
},
"serializer": "ListStringSerializable",
"api_info": {
"info": {
"type": "array",
"items": {
"type": "string"
}
},
"serialized_info": false
},
"example_inputs": {
"raw": [
"Covid"
],
"serialized": [
"Covid"
]
}
},
{
"id": 103,
"type": "tabs",
"props": {
"visible": true
}
},
{
"id": 104,
"type": "tabitem",
"props": {
"label": "X-ray",
"visible": true
}
},
{
"id": 105,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 106,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 107,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 108,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 109,
"type": "tabitem",
"props": {
"label": "CT Scan",
"visible": true
}
},
{
"id": 110,
"type": "row",
"props": {
"type": "row",
"variant": "default",
"equal_height": true,
"visible": true
}
},
{
"id": 111,
"type": "image",
"props": {
"image_mode": "RGB",
"source": "upload",
"tool": "editor",
"streaming": false,
"mirror_webcam": true,
"brush_color": "#000000",
"mask_opacity": 0.7,
"selectable": false,
"show_share_button": false,
"show_download_button": true,
"show_label": true,
"container": true,
"min_width": 160,
"name": "image",
"visible": true
},
"serializer": "ImgSerializable",
"api_info": {
"info": {
"type": "string",
"description": "base64 representation of an image"
},
"serialized_info": true
},
"example_inputs": {
"raw": "data:image/png;base64,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",
"serialized": "https://raw.githubusercontent.com/gradio-app/gradio/main/test/test_files/bus.png"
}
},
{
"id": 112,
"type": "json",
"props": {
"show_label": true,
"container": true,
"min_width": 160,
"name": "json",
"visible": true
},
"serializer": "JSONSerializable",
"api_info": {
"info": {
"type": {},
"description": "any valid json"
},
"serialized_info": true
},
"example_inputs": {
"raw": {
"a": 1,
"b": 2
},
"serialized": null
}
},
{
"id": 113,
"type": "button",
"props": {
"value": "Run",
"variant": "secondary",
"interactive": true,
"name": "button",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 114,
"type": "textbox",
"props": {
"lines": 1,
"max_lines": 20,
"value": "",
"type": "text",
"autofocus": false,
"show_copy_button": false,
"container": true,
"rtl": false,
"autoscroll": true,
"show_label": true,
"min_width": 160,
"name": "textbox",
"visible": true
},
"serializer": "StringSerializable",
"api_info": {
"info": {
"type": "string"
},
"serialized_info": false
},
"example_inputs": {
"raw": "Howdy!",
"serialized": "Howdy!"
}
},
{
"id": 115,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
},
{
"id": 116,
"type": "form",
"props": {
"type": "form",
"scale": 0,
"min_width": 0,
"visible": true
}
}
],
"css": null,
"title": "Gradio",
"space_id": null,
"enable_queue": null,
"show_error": true,
"show_api": true,
"is_colab": false,
"stylesheets": [
"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap",
"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&display=swap"
],
"theme": "default",
"layout": {
"id": 100,
"children": [
{
"id": 101
},
{
"id": 115,
"children": [
{
"id": 102
}
]
},
{
"id": 103,
"children": [
{
"id": 104,
"children": [
{
"id": 105,
"children": [
{
"id": 106
},
{
"id": 107
}
]
},
{
"id": 108
}
]
},
{
"id": 109,
"children": [
{
"id": 110,
"children": [
{
"id": 111
},
{
"id": 112
}
]
},
{
"id": 113
}
]
}
]
},
{
"id": 116,
"children": [
{
"id": 114
}
]
}
]
},
"dependencies": [
{
"targets": [
108
],
"trigger": "click",
"inputs": [
102,
106
],
"outputs": [
107
],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
},
{
"targets": [
113
],
"trigger": "click",
"inputs": [
102,
111
],
"outputs": [
112
],
"backend_fn": true,
"js": null,
"queue": null,
"api_name": null,
"scroll_to_output": false,
"show_progress": "full",
"every": null,
"batch": false,
"max_batch_size": 4,
"cancels": [],
"types": {
"continuous": false,
"generator": false
},
"collects_event_data": false,
"trigger_after": null,
"trigger_only_on_success": false
}
]
}

File diff suppressed because it is too large Load Diff