Skip to content

Commit

Permalink
V4: Fix component update bug (#6027)
Browse files Browse the repository at this point in the history
* Fix tests + bugs

* add changeset

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
  • Loading branch information
freddyaboulton and gradio-pr-bot committed Oct 20, 2023
1 parent 83e9476 commit de18102
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 27 deletions.
5 changes: 5 additions & 0 deletions .changeset/spotty-papers-ask.md
@@ -0,0 +1,5 @@
---
"gradio": minor
---

feat:V4: Fix component update bug
7 changes: 6 additions & 1 deletion gradio/components/base.py
Expand Up @@ -157,8 +157,13 @@ def __init__(
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
Expand Down
52 changes: 26 additions & 26 deletions test/test_components.py
Expand Up @@ -81,7 +81,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -199,7 +199,7 @@ def test_component_functions_integer(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -275,7 +275,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -333,7 +333,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -383,7 +383,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -433,7 +433,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -514,7 +514,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -588,7 +588,7 @@ def test_component_functions(self, gradio_temp_dir):
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
Expand Down Expand Up @@ -762,7 +762,7 @@ def test_component_functions(self, gradio_temp_dir):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
Expand Down Expand Up @@ -806,7 +806,7 @@ def test_component_functions(self, gradio_temp_dir):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
Expand Down Expand Up @@ -901,7 +901,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
Expand Down Expand Up @@ -1018,7 +1018,7 @@ def test_component_functions(self):
"interactive": None,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"wrap": False,
"root_url": None,
"name": "dataframe",
Expand Down Expand Up @@ -1053,7 +1053,7 @@ def test_component_functions(self):
"interactive": None,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"wrap": False,
"root_url": None,
"name": "dataframe",
Expand Down Expand Up @@ -1373,7 +1373,7 @@ def test_component_functions(self):
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"interactive": None,
Expand Down Expand Up @@ -1607,7 +1607,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"root_url": None,
"color": None,
Expand Down Expand Up @@ -1748,7 +1748,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"root_url": None,
Expand Down Expand Up @@ -1826,7 +1826,7 @@ def test_component_functions(self):
"height": None,
"width": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"root_url": None,
Expand Down Expand Up @@ -1885,7 +1885,7 @@ def test_component_functions(self):
"show_share_button": False,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"container": True,
"min_width": 160,
"scale": None,
Expand Down Expand Up @@ -1917,7 +1917,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"value": None,
"show_label": True,
Expand Down Expand Up @@ -1974,7 +1974,7 @@ def test_component_functions(self):
"show_label": True,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"root_url": None,
"name": "html",
}
Expand Down Expand Up @@ -2022,7 +2022,7 @@ def test_component_functions(self):
"min_width": 160,
"visible": True,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"root_url": None,
"name": "model3d",
"camera_position": (None, None, None),
Expand Down Expand Up @@ -2064,7 +2064,7 @@ def test_component_functions(self):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down Expand Up @@ -2219,7 +2219,7 @@ def test_get_config(self):
assert gr.ScatterPlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
Expand Down Expand Up @@ -2378,7 +2378,7 @@ def test_get_config(self):
assert gr.LinePlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
Expand Down Expand Up @@ -2482,7 +2482,7 @@ def test_get_config(self):
assert gr.BarPlot().get_config() == {
"caption": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"interactive": None,
"label": None,
"name": "plot",
Expand Down Expand Up @@ -2621,7 +2621,7 @@ def fn(a):
"min_width": 160,
"scale": None,
"elem_id": None,
"elem_classes": None,
"elem_classes": [],
"visible": True,
"interactive": None,
"root_url": None,
Expand Down

0 comments on commit de18102

Please sign in to comment.