mirror of
https://github.com/gradio-app/gradio.git
synced 2025-04-06 12:30:29 +08:00
Component Server fix (#6884)
* changes * add changeset * Update gradio/routes.py Co-authored-by: Aarni Koskela <akx@iki.fi> * changes * changes --------- Co-authored-by: Ali Abid <ubuntu@ip-172-31-25-241.us-west-2.compute.internal> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Aarni Koskela <akx@iki.fi>
This commit is contained in:
parent
53b95f8683
commit
24a5836880
5
.changeset/ten-chefs-argue.md
Normal file
5
.changeset/ten-chefs-argue.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
"gradio": minor
|
||||
---
|
||||
|
||||
feat:Component Server fix
|
@ -139,10 +139,8 @@ class FileExplorer(Component):
|
||||
return FileExplorerData(root=root)
|
||||
|
||||
@server
|
||||
def ls(self, value=None) -> list[dict[str, str]] | None:
|
||||
def ls(self, _=None) -> list[dict[str, str]] | None:
|
||||
"""
|
||||
Parameters:
|
||||
value: file path as a list of strings for each directory level relative to the root.
|
||||
Returns:
|
||||
tuple of list of files in directory, then list of folders in directory
|
||||
"""
|
||||
|
@ -699,7 +699,12 @@ class App(FastAPI):
|
||||
block = state[component_id]
|
||||
else:
|
||||
block = app.get_blocks().blocks[component_id]
|
||||
fn = getattr(block, body.fn_name)
|
||||
fn = getattr(block, body.fn_name, None)
|
||||
if fn is None or not getattr(fn, "_is_server_fn", False):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Function not found.",
|
||||
)
|
||||
return fn(body.data)
|
||||
|
||||
@app.get(
|
||||
|
@ -831,3 +831,34 @@ class TestShowAPI:
|
||||
assert (
|
||||
interface.show_api is True
|
||||
), "show_api should be True when IS_WASM is False"
|
||||
|
||||
|
||||
def test_component_server_endpoints(connect):
|
||||
here = os.path.dirname(os.path.abspath(__file__))
|
||||
with gr.Blocks() as demo:
|
||||
file_explorer = gr.FileExplorer(root=here)
|
||||
|
||||
with closing(demo) as io:
|
||||
app, _, _ = io.launch(prevent_thread_lock=True)
|
||||
client = TestClient(app)
|
||||
success_req = client.post(
|
||||
"/component_server/",
|
||||
json={
|
||||
"session_hash": "123",
|
||||
"component_id": file_explorer._id,
|
||||
"fn_name": "ls",
|
||||
"data": None,
|
||||
},
|
||||
)
|
||||
assert success_req.status_code == 200
|
||||
assert len(success_req.json()) > 0
|
||||
fail_req = client.post(
|
||||
"/component_server/",
|
||||
json={
|
||||
"session_hash": "123",
|
||||
"component_id": file_explorer._id,
|
||||
"fn_name": "preprocess",
|
||||
"data": None,
|
||||
},
|
||||
)
|
||||
assert fail_req.status_code == 404
|
||||
|
Loading…
x
Reference in New Issue
Block a user