Files
comfy-deploy-python/src/comfydeploy/sdk.py
bennykok 6ea0b09d80 init
2024-07-16 14:45:28 -07:00

90 lines
3.3 KiB
Python

"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
import requests as requests_http
from .comfyui import Comfyui
from .files import Files
from .machines import Machines
from .run import Run
from .sdkconfiguration import SDKConfiguration
from .utils.retries import RetryConfig
from .workflows import Workflows
from comfydeploy import utils
from comfydeploy._hooks import SDKHooks
from comfydeploy.models import components
from typing import Callable, Dict, Optional, Union
class ComfyDeploy:
r"""Comfy Deploy API: Interact with Comfy Deploy programmatically to trigger run and retrieve output"""
run: Run
files: Files
workflows: Workflows
comfyui: Comfyui
machines: Machines
sdk_configuration: SDKConfiguration
def __init__(self,
bearer_auth: Union[str, Callable[[], str]],
server_idx: Optional[int] = None,
server_url: Optional[str] = None,
url_params: Optional[Dict[str, str]] = None,
client: Optional[requests_http.Session] = None,
retry_config: Optional[RetryConfig] = None
) -> None:
"""Instantiates the SDK configuring it with the provided parameters.
:param bearer_auth: The bearer_auth required for authentication
:type bearer_auth: Union[str, Callable[[], str]]
:param server_idx: The index of the server to use for all operations
:type server_idx: int
:param server_url: The server URL to use for all operations
:type server_url: str
:param url_params: Parameters to optionally template the server URL with
:type url_params: Dict[str, str]
:param client: The requests.Session HTTP client to use for all operations
:type client: requests_http.Session
:param retry_config: The utils.RetryConfig to use globally
:type retry_config: RetryConfig
"""
if client is None:
client = requests_http.Session()
if callable(bearer_auth):
def security():
return components.Security(bearer_auth = bearer_auth())
else:
security = components.Security(bearer_auth = bearer_auth)
if server_url is not None:
if url_params is not None:
server_url = utils.template_url(server_url, url_params)
self.sdk_configuration = SDKConfiguration(
client,
security,
server_url,
server_idx,
retry_config=retry_config
)
hooks = SDKHooks()
current_server_url, *_ = self.sdk_configuration.get_server_details()
server_url, self.sdk_configuration.client = hooks.sdk_init(current_server_url, self.sdk_configuration.client)
if current_server_url != server_url:
self.sdk_configuration.server_url = server_url
# pylint: disable=protected-access
self.sdk_configuration.__dict__['_hooks'] = hooks
self._init_sdks()
def _init_sdks(self):
self.run = Run(self.sdk_configuration)
self.files = Files(self.sdk_configuration)
self.workflows = Workflows(self.sdk_configuration)
self.comfyui = Comfyui(self.sdk_configuration)
self.machines = Machines(self.sdk_configuration)