Spaces:
Runtime error
Runtime error
"""Contains all of the events that can be triggered in a gr.Blocks() app, with the exception | |
of the on-page-load event, which is defined in gr.Blocks().load().""" | |
from __future__ import annotations | |
import warnings | |
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Set | |
from gradio.blocks import Block | |
from gradio.utils import get_cancel_function | |
if TYPE_CHECKING: # Only import for type checking (is False at runtime). | |
from gradio.components import Component, StatusTracker | |
def set_cancel_events( | |
block: Block, event_name: str, cancels: None | Dict[str, Any] | List[Dict[str, Any]] | |
): | |
if cancels: | |
if not isinstance(cancels, list): | |
cancels = [cancels] | |
cancel_fn, fn_indices_to_cancel = get_cancel_function(cancels) | |
block.set_event_trigger( | |
event_name, | |
cancel_fn, | |
inputs=None, | |
outputs=None, | |
queue=False, | |
preprocess=False, | |
cancels=fn_indices_to_cancel, | |
) | |
class EventListener(Block): | |
pass | |
class Changeable(EventListener): | |
def change( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the component's input value changes (e.g. when the user types in a textbox | |
or uploads an image). This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"change", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "change", cancels) | |
return dep | |
class Clickable(EventListener): | |
def click( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue=None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the component (e.g. a button) is clicked. | |
This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"click", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "click", cancels) | |
return dep | |
class Submittable(EventListener): | |
def submit( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user presses the Enter key while the component (e.g. a textbox) is focused. | |
This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"submit", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "submit", cancels) | |
return dep | |
class Editable(EventListener): | |
def edit( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user edits the component (e.g. image) using the | |
built-in editor. This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"edit", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "edit", cancels) | |
return dep | |
class Clearable(EventListener): | |
def clear( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user clears the component (e.g. image or audio) | |
using the X button for the component. This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"submit", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "submit", cancels) | |
return dep | |
class Playable(EventListener): | |
def play( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user plays the component (e.g. audio or video). | |
This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"play", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "play", cancels) | |
return dep | |
def pause( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user pauses the component (e.g. audio or video). | |
This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"pause", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "pause", cancels) | |
return dep | |
def stop( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user stops the component (e.g. audio or video). | |
This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"stop", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "stop", cancels) | |
return dep | |
class Streamable(EventListener): | |
def stream( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
status_tracker: StatusTracker | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = False, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user streams the component (e.g. a live webcam | |
component). This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
self.streaming = True | |
if status_tracker: | |
warnings.warn( | |
"The 'status_tracker' parameter has been deprecated and has no effect." | |
) | |
dep = self.set_event_trigger( | |
"stream", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "stream", cancels) | |
return dep | |
class Blurrable(EventListener): | |
def blur( | |
self, | |
fn: Callable | None, | |
inputs: Component | List[Component] | Set[Component] | None = None, | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the component's is unfocused/blurred (e.g. when the user clicks outside of a textbox). This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: Callable function | |
inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. | |
outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
self.set_event_trigger( | |
"blur", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "blur", cancels) | |
class Uploadable(EventListener): | |
def upload( | |
self, | |
fn: Callable | None, | |
inputs: List[Component], | |
outputs: Component | List[Component] | None = None, | |
api_name: str | None = None, | |
scroll_to_output: bool = False, | |
show_progress: bool = True, | |
queue: bool | None = None, | |
batch: bool = False, | |
max_batch_size: int = 4, | |
preprocess: bool = True, | |
postprocess: bool = True, | |
cancels: List[Dict[str, Any]] | None = None, | |
every: float | None = None, | |
_js: str | None = None, | |
): | |
""" | |
This event is triggered when the user uploads a file into the component (e.g. when the user uploads a video into a video component). This method can be used when this component is in a Gradio Blocks. | |
Parameters: | |
fn: Callable function | |
inputs: List of inputs | |
outputs: List of outputs | |
api_name: Defining this parameter exposes the endpoint in the api docs | |
scroll_to_output: If True, will scroll to output component on completion | |
show_progress: If True, will show progress animation while pending | |
queue: If True, will place the request on the queue, if the queue exists | |
batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. | |
max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) | |
preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). | |
postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. | |
cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. | |
every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. | |
""" | |
# _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. | |
self.set_event_trigger( | |
"upload", | |
fn, | |
inputs, | |
outputs, | |
preprocess=preprocess, | |
postprocess=postprocess, | |
scroll_to_output=scroll_to_output, | |
show_progress=show_progress, | |
api_name=api_name, | |
js=_js, | |
queue=queue, | |
batch=batch, | |
max_batch_size=max_batch_size, | |
every=every, | |
) | |
set_cancel_events(self, "upload", cancels) | |