OCEANAI / app /components.py
ElenaRyumina's picture
Summary
f51c1fd
raw
history blame
2.32 kB
"""
File: components.py
Author: Elena Ryumina and Dmitry Ryumin
Description: Utility functions for creating Gradio components.
License: MIT License
"""
import gradio as gr
from typing import Union, List, Callable, Optional
def html_message(
message: str = "", error: bool = True, visible: bool = True
) -> gr.HTML:
css_class = "noti_err" if not error else "noti_true"
return gr.HTML(value=f"<h3 class='{css_class}'>{message}</h3>", visible=visible)
def files_create_ui(
value: Union[str, List[str], Callable, None] = None,
file_count: str = "multiple",
file_types: List = ["video"],
label: str = "Video Files",
show_label: bool = True,
interactive: bool = True,
visible: bool = True,
elem_classes: Optional[str] = "files-container",
) -> gr.File:
return gr.File(
value=value,
file_count=file_count,
file_types=file_types,
label=label,
show_label=show_label,
interactive=interactive,
visible=visible,
elem_classes=elem_classes,
)
def video_create_ui(
value: Optional[str] = None,
label: str = "Video Player",
file_name: Optional[str] = None,
show_label: bool = True,
interactive: bool = False,
visible: bool = True,
elem_classes: Optional[str] = "files-container",
) -> gr.Video:
if file_name is not None:
label += f" ({file_name})"
return gr.Video(
value=value,
label=label,
show_label=show_label,
interactive=interactive,
visible=visible,
elem_classes=elem_classes,
)
def dataframe(
headers: Optional[List] = None,
values: Optional[List] = None,
height: int = 500,
wrap: bool = True,
visible: bool = True,
) -> gr.Dataframe:
if headers is None or values is None:
datatype = "str"
else:
datatype = ["markdown"] * len(headers)
return gr.Dataframe(
value=values,
headers=headers,
datatype=datatype,
height=height,
wrap=wrap,
visible=visible,
)
def button(
value: str = "",
interactive: bool = True,
scale: int = 3,
elem_classes: Optional[str] = None,
) -> gr.Button:
return gr.Button(
value=value, interactive=interactive, scale=scale, elem_classes=elem_classes
)