Spaces:
Running
Running
""" | |
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 | |
) | |