Scriptorium / backend /input_files.py
mattkevan's picture
First in space
af4851b
Raw
History Blame Contribute Delete
1.25 kB
from pathlib import Path
from typing import Any
def resolve_uploaded_path(uploaded: Any) -> Path:
if isinstance(uploaded, Path):
return uploaded
if isinstance(uploaded, str):
return Path(uploaded)
if isinstance(uploaded, dict):
for key in ("path", "orig_name", "name"):
value = uploaded.get(key)
if isinstance(value, str) and value:
return Path(value)
raise TypeError(
f"Unsupported uploaded file payload: expected path-like value or Gradio file dict, got {type(uploaded).__name__}"
)
def resolve_uploaded_name(uploaded: Any) -> str:
if isinstance(uploaded, Path):
return uploaded.name
if isinstance(uploaded, str):
return Path(uploaded).name
if isinstance(uploaded, dict):
for key in ("orig_name", "name"):
value = uploaded.get(key)
if isinstance(value, str) and value:
return Path(value).name
path_value = uploaded.get("path")
if isinstance(path_value, str) and path_value:
return Path(path_value).name
raise TypeError(
f"Unsupported uploaded file payload: expected path-like value or Gradio file dict, got {type(uploaded).__name__}"
)