"""gr.Api() component.""" from __future__ import annotations from typing import Any from gradio.components.base import Component class Api(Component): """ A generic component that holds any value. Used for generating APIs with no actual frontend component. """ EVENTS = [] def __init__( self, value: Any, _api_info: dict[str, str], label: str = "API", ): """ Parameters: value: default value. """ self._api_info = _api_info super().__init__(value=value, label=label) def preprocess(self, payload: Any) -> Any: return payload def postprocess(self, value: Any) -> Any: return value def api_info(self) -> dict[str, str]: return self._api_info def example_payload(self) -> Any: return self.value if self.value is not None else "..." def example_value(self) -> Any: return self.value if self.value is not None else "..." # def get_block_name(self) -> str: # return "state" # so that it does not render in the frontend, just like state