V4: Fix component update bug (#6027)

* Fix tests + bugs

* add changeset

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
This commit is contained in:
Freddy Boulton 2023-10-20 11:34:42 -04:00 committed by GitHub
parent 83e947676d
commit de18102b8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 27 deletions

View File

@ -0,0 +1,5 @@
---
"gradio": minor
---
feat:V4: Fix component update bug

View File

@ -157,8 +157,13 @@ class Component(ComponentBase, Block):
if callable(value) and getattr(value, "_is_server_fn", False)
]
# This gets overriden when `select` is called
# Svelte components expect elem_classes to be a list
# If we don't do this, returning a new component for an
# update will break the frontend
if not elem_classes:
elem_classes = []
# This gets overriden when `select` is called
self.selectable = False
if not hasattr(self, "data_model"):
self.data_model: type[GradioDataModel] | None = None

View File

@ -81,7 +81,7 @@ class TestTextbox:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -199,7 +199,7 @@ class TestNumber:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -275,7 +275,7 @@ class TestSlider:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -333,7 +333,7 @@ class TestCheckbox:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -383,7 +383,7 @@ class TestCheckboxGroup:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -433,7 +433,7 @@ class TestRadio:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -514,7 +514,7 @@ class TestDropdown:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -588,7 +588,7 @@ class TestImage:
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
@ -762,7 +762,7 @@ class TestAudio:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
@ -806,7 +806,7 @@ class TestAudio:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
@ -901,7 +901,7 @@ class TestFile:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
@ -1018,7 +1018,7 @@ class TestDataframe:
"interactive": None,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"wrap": False,
"root_url": None,
"name": "dataframe",
@ -1053,7 +1053,7 @@ class TestDataframe:
"interactive": None,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"wrap": False,
"root_url": None,
"name": "dataframe",
@ -1373,7 +1373,7 @@ class TestVideo:
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
@ -1607,7 +1607,7 @@ class TestLabel:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"root_url": None,
"color": None,
@ -1748,7 +1748,7 @@ class TestHighlightedText:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"root_url": None,
@ -1826,7 +1826,7 @@ class TestAnnotatedImage:
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"root_url": None,
@ -1885,7 +1885,7 @@ class TestChatbot:
"show_share_button": False,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"container": True,
"min_width": 160,
"scale": None,
@ -1917,7 +1917,7 @@ class TestJSON:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"show_label": True,
@ -1974,7 +1974,7 @@ class TestHTML:
"show_label": True,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"root_url": None,
"name": "html",
}
@ -2022,7 +2022,7 @@ class TestModel3D:
"min_width": 160,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"root_url": None,
"name": "model3d",
"camera_position": (None, None, None),
@ -2064,7 +2064,7 @@ class TestColorPicker:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
@ -2219,7 +2219,7 @@ class TestScatterPlot:
assert gr.ScatterPlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
@ -2378,7 +2378,7 @@ class TestLinePlot:
assert gr.LinePlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
@ -2482,7 +2482,7 @@ class TestBarPlot:
assert gr.BarPlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
@ -2621,7 +2621,7 @@ class TestCode:
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,