Spaces:
Running
Running
from __future__ import annotations | |
from pathlib import Path | |
from typing import Any, Callable, Iterable, Literal | |
import numpy as np | |
import PIL.Image | |
from gradio import components | |
from gradio.components.audio import WaveformOptions | |
from gradio.components.image_editor import Brush, Eraser | |
class TextArea(components.Textbox): | |
""" | |
Sets: lines=7 | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | Callable | None = None, | |
*, | |
lines: int = 7, | |
max_lines: int = 20, | |
placeholder: str | None = None, | |
label: str | None = None, | |
info: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
autofocus: bool = False, | |
autoscroll: bool = True, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
type: Literal["text", "password", "email"] = "text", | |
text_align: Literal["left", "right"] | None = None, | |
rtl: bool = False, | |
show_copy_button: bool = False, | |
): | |
super().__init__( | |
value=value, | |
lines=lines, | |
max_lines=max_lines, | |
placeholder=placeholder, | |
label=label, | |
info=info, | |
every=every, | |
show_label=show_label, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
autofocus=autofocus, | |
autoscroll=autoscroll, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
type=type, | |
text_align=text_align, | |
rtl=rtl, | |
show_copy_button=show_copy_button, | |
) | |
class Sketchpad(components.ImageEditor): | |
""" | |
Sets: sources=(), brush=Brush(colors=["#000000"], color_mode="fixed") | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | PIL.Image.Image | np.ndarray | None = None, | |
*, | |
height: int | str | None = None, | |
width: int | str | None = None, | |
image_mode: Literal[ | |
"1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" | |
] = "RGBA", | |
sources: Iterable[Literal["upload", "webcam", "clipboard"]] = (), | |
type: Literal["numpy", "pil", "filepath"] = "numpy", | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
show_download_button: bool = True, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
mirror_webcam: bool = True, | |
show_share_button: bool | None = None, | |
_selectable: bool = False, | |
crop_size: tuple[int | float, int | float] | str | None = None, | |
transforms: Iterable[Literal["crop"]] = ("crop",), | |
eraser: Eraser | None = None, | |
brush: Brush | None = None, | |
format: str = "webp", | |
layers: bool = True, | |
canvas_size: tuple[int, int] | None = None, | |
): | |
if not brush: | |
brush = Brush(colors=["#000000"], color_mode="fixed") | |
super().__init__( | |
value=value, | |
height=height, | |
width=width, | |
image_mode=image_mode, | |
sources=sources, | |
type=type, | |
label=label, | |
every=every, | |
show_label=show_label, | |
show_download_button=show_download_button, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
mirror_webcam=mirror_webcam, | |
show_share_button=show_share_button, | |
_selectable=_selectable, | |
crop_size=crop_size, | |
transforms=transforms, | |
eraser=eraser, | |
brush=brush, | |
format=format, | |
layers=layers, | |
canvas_size=canvas_size, | |
) | |
class Paint(components.ImageEditor): | |
""" | |
Sets: sources=() | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | PIL.Image.Image | np.ndarray | None = None, | |
*, | |
height: int | str | None = None, | |
width: int | str | None = None, | |
image_mode: Literal[ | |
"1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" | |
] = "RGBA", | |
sources: Iterable[Literal["upload", "webcam", "clipboard"]] = (), | |
type: Literal["numpy", "pil", "filepath"] = "numpy", | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
show_download_button: bool = True, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
mirror_webcam: bool = True, | |
show_share_button: bool | None = None, | |
_selectable: bool = False, | |
crop_size: tuple[int | float, int | float] | str | None = None, | |
transforms: Iterable[Literal["crop"]] = ("crop",), | |
eraser: Eraser | None = None, | |
brush: Brush | None = None, | |
format: str = "webp", | |
layers: bool = True, | |
canvas_size: tuple[int, int] | None = None, | |
): | |
super().__init__( | |
value=value, | |
height=height, | |
width=width, | |
image_mode=image_mode, | |
sources=sources, | |
type=type, | |
label=label, | |
every=every, | |
show_label=show_label, | |
show_download_button=show_download_button, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
mirror_webcam=mirror_webcam, | |
show_share_button=show_share_button, | |
_selectable=_selectable, | |
crop_size=crop_size, | |
transforms=transforms, | |
eraser=eraser, | |
brush=brush, | |
format=format, | |
layers=layers, | |
canvas_size=canvas_size, | |
) | |
class ImageMask(components.ImageEditor): | |
""" | |
Sets: brush=Brush(colors=["#000000"], color_mode="fixed") | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | PIL.Image.Image | np.ndarray | None = None, | |
*, | |
height: int | None = None, | |
width: int | str | None = None, | |
image_mode: Literal[ | |
"1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" | |
] = "RGBA", | |
sources: Iterable[Literal["upload", "webcam", "clipboard"]] = ( | |
"upload", | |
"webcam", | |
"clipboard", | |
), | |
type: Literal["numpy", "pil", "filepath"] = "numpy", | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
show_download_button: bool = True, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
mirror_webcam: bool = True, | |
show_share_button: bool | None = None, | |
_selectable: bool = False, | |
crop_size: tuple[int | float, int | float] | str | None = None, | |
transforms: Iterable[Literal["crop"]] = ("crop",), | |
eraser: Eraser | None = None, | |
brush: Brush | None = None, | |
format: str = "webp", | |
layers: bool = True, | |
canvas_size: tuple[int, int] | None = None, | |
): | |
if not brush: | |
brush = Brush(colors=["#000000"], color_mode="fixed") | |
super().__init__( | |
value=value, | |
height=height, | |
width=width, | |
image_mode=image_mode, | |
sources=sources, | |
type=type, | |
label=label, | |
every=every, | |
show_label=show_label, | |
show_download_button=show_download_button, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
mirror_webcam=mirror_webcam, | |
show_share_button=show_share_button, | |
_selectable=_selectable, | |
crop_size=crop_size, | |
transforms=transforms, | |
eraser=eraser, | |
brush=brush, | |
format=format, | |
layers=layers, | |
canvas_size=canvas_size, | |
) | |
class PlayableVideo(components.Video): | |
""" | |
Sets: format="mp4" | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: ( | |
str | Path | tuple[str | Path, str | Path | None] | Callable | None | |
) = None, | |
*, | |
format: Literal["mp4"] = "mp4", | |
sources: list[Literal["upload", "webcam"]] | None = None, | |
height: int | str | None = None, | |
width: int | str | None = None, | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
mirror_webcam: bool = True, | |
include_audio: bool | None = None, | |
autoplay: bool = False, | |
show_share_button: bool | None = None, | |
show_download_button: bool | None = None, | |
min_length: int | None = None, | |
max_length: int | None = None, | |
): | |
sources = ["upload"] | |
super().__init__( | |
value=value, | |
format=format, | |
sources=sources, # type: ignore | |
height=height, | |
width=width, | |
label=label, | |
every=every, | |
show_label=show_label, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
mirror_webcam=mirror_webcam, | |
include_audio=include_audio, | |
autoplay=autoplay, | |
show_share_button=show_share_button, | |
show_download_button=show_download_button, | |
min_length=min_length, | |
max_length=max_length, | |
) | |
class Microphone(components.Audio): | |
""" | |
Sets: sources=["microphone"] | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | Path | tuple[int, np.ndarray] | Callable | None = None, | |
*, | |
sources: list[Literal["upload", "microphone"]] | None = None, | |
type: Literal["numpy", "filepath"] = "numpy", | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
streaming: bool = False, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
format: Literal["wav", "mp3"] = "wav", | |
autoplay: bool = False, | |
show_download_button: bool | None = None, | |
show_share_button: bool | None = None, | |
editable: bool = True, | |
min_length: int | None = None, | |
max_length: int | None = None, | |
waveform_options: WaveformOptions | dict | None = None, | |
): | |
sources = ["microphone"] | |
super().__init__( | |
value, | |
sources=sources, | |
type=type, | |
label=label, | |
every=every, | |
show_label=show_label, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
interactive=interactive, | |
visible=visible, | |
streaming=streaming, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
format=format, | |
autoplay=autoplay, | |
show_download_button=show_download_button, | |
show_share_button=show_share_button, | |
editable=editable, | |
min_length=min_length, | |
max_length=max_length, | |
waveform_options=waveform_options, | |
) | |
class Files(components.File): | |
""" | |
Sets: file_count="multiple" | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: str | list[str] | Callable | None = None, | |
*, | |
file_count: Literal["multiple"] = "multiple", | |
file_types: list[str] | None = None, | |
type: Literal["filepath", "binary"] = "filepath", | |
label: str | None = None, | |
every: float | None = None, | |
show_label: bool | None = None, | |
container: bool = True, | |
scale: int | None = None, | |
min_width: int = 160, | |
height: int | float | None = None, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
): | |
super().__init__( | |
value, | |
file_count=file_count, | |
file_types=file_types, | |
type=type, | |
label=label, | |
every=every, | |
show_label=show_label, | |
container=container, | |
scale=scale, | |
min_width=min_width, | |
height=height, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
) | |
class Numpy(components.Dataframe): | |
""" | |
Sets: type="numpy" | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: list[list[Any]] | Callable | None = None, | |
*, | |
headers: list[str] | None = None, | |
row_count: int | tuple[int, str] = (1, "dynamic"), | |
col_count: int | tuple[int, str] | None = None, | |
datatype: str | list[str] = "str", | |
type: Literal["numpy"] = "numpy", | |
latex_delimiters: list[dict[str, str | bool]] | None = None, | |
label: str | None = None, | |
show_label: bool | None = None, | |
every: float | None = None, | |
height: int = 500, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
wrap: bool = False, | |
line_breaks: bool = True, | |
column_widths: list[str | int] | None = None, | |
): | |
super().__init__( | |
value=value, | |
headers=headers, | |
row_count=row_count, | |
col_count=col_count, | |
datatype=datatype, | |
type=type, | |
label=label, | |
show_label=show_label, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
wrap=wrap, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
line_breaks=line_breaks, | |
column_widths=column_widths, | |
every=every, | |
height=height, | |
scale=scale, | |
latex_delimiters=latex_delimiters, | |
min_width=min_width, | |
) | |
class Matrix(components.Dataframe): | |
""" | |
Sets: type="array" | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: list[list[Any]] | Callable | None = None, | |
*, | |
headers: list[str] | None = None, | |
row_count: int | tuple[int, str] = (1, "dynamic"), | |
col_count: int | tuple[int, str] | None = None, | |
datatype: str | list[str] = "str", | |
type: Literal["array"] = "array", | |
latex_delimiters: list[dict[str, str | bool]] | None = None, | |
label: str | None = None, | |
show_label: bool | None = None, | |
every: float | None = None, | |
height: int = 500, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
wrap: bool = False, | |
line_breaks: bool = True, | |
column_widths: list[str | int] | None = None, | |
): | |
super().__init__( | |
value=value, | |
headers=headers, | |
row_count=row_count, | |
col_count=col_count, | |
datatype=datatype, | |
type=type, | |
label=label, | |
show_label=show_label, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
wrap=wrap, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
line_breaks=line_breaks, | |
column_widths=column_widths, | |
every=every, | |
height=height, | |
scale=scale, | |
latex_delimiters=latex_delimiters, | |
min_width=min_width, | |
) | |
class List(components.Dataframe): | |
""" | |
Sets: type="array", col_count=1 | |
""" | |
is_template = True | |
def __init__( | |
self, | |
value: list[list[Any]] | Callable | None = None, | |
*, | |
headers: list[str] | None = None, | |
row_count: int | tuple[int, str] = (1, "dynamic"), | |
col_count: Literal[1] = 1, | |
datatype: str | list[str] = "str", | |
type: Literal["array"] = "array", | |
latex_delimiters: list[dict[str, str | bool]] | None = None, | |
label: str | None = None, | |
show_label: bool | None = None, | |
every: float | None = None, | |
height: int = 500, | |
scale: int | None = None, | |
min_width: int = 160, | |
interactive: bool | None = None, | |
visible: bool = True, | |
elem_id: str | None = None, | |
elem_classes: list[str] | str | None = None, | |
render: bool = True, | |
key: int | str | None = None, | |
wrap: bool = False, | |
line_breaks: bool = True, | |
column_widths: list[str | int] | None = None, | |
): | |
super().__init__( | |
value=value, | |
headers=headers, | |
row_count=row_count, | |
col_count=col_count, | |
datatype=datatype, | |
type=type, | |
label=label, | |
show_label=show_label, | |
interactive=interactive, | |
visible=visible, | |
elem_id=elem_id, | |
wrap=wrap, | |
elem_classes=elem_classes, | |
render=render, | |
key=key, | |
line_breaks=line_breaks, | |
column_widths=column_widths, | |
every=every, | |
height=height, | |
scale=scale, | |
latex_delimiters=latex_delimiters, | |
min_width=min_width, | |
) | |
Mic = Microphone | |