Spaces:
Running
Running
File size: 2,320 Bytes
f51c1fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
"""
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
)
|