|
"""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: |
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
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. |
|
""" |
|
|
|
|
|
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. |
|
""" |
|
|
|
|
|
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) |
|
|