ComfyUI/comfy/api/paths/queue/post/operation.py
doctorpangloss 1b2ea61345 Improved API support
- Run comfyui workflows directly inside other python applications using
   EmbeddedComfyClient.
 - Optional telemetry in prompts and models using anonymity preserving
   Plausible self-hosted or hosted.
 - Better OpenAPI schema
 - Basic support for distributed ComfyUI backends. Limitations: no
   progress reporting, no easy way to start your own distributed
   backend, requires RabbitMQ as a message broker.
2024-02-07 14:20:21 -08:00

137 lines
4.3 KiB
Python

# coding: utf-8
"""
Generated by: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator
"""
from comfy.api import api_client
from comfy.api.shared_imports.operation_imports import * # pyright: ignore [reportWildcardImportFromLibrary]
from comfy.api.paths.queue.post.request_body.content.application_json import schema
from .. import path
from .responses import response_200
from . import request_body
__StatusCodeToResponse = typing.TypedDict(
'__StatusCodeToResponse',
{
'200': typing.Type[response_200.ResponseFor200],
}
)
_status_code_to_response: __StatusCodeToResponse = {
'200': response_200.ResponseFor200,
}
_non_error_status_codes = frozenset({
'200',
})
class BaseApi(api_client.Api):
@typing.overload
def _post_queue(
self,
body: typing.Union[
schema.SchemaDictInput,
schema.SchemaDict,
schemas.Unset
] = schemas.unset,
*,
skip_deserialization: typing.Literal[False] = False,
content_type: typing.Literal["application/json"] = "application/json",
server_index: typing.Optional[int] = None,
stream: bool = False,
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
) -> response_200.ApiResponse: ...
@typing.overload
def _post_queue(
self,
body: typing.Union[
schema.SchemaDictInput,
schema.SchemaDict,
schemas.Unset
] = schemas.unset,
*,
skip_deserialization: typing.Literal[True],
content_type: typing.Literal["application/json"] = "application/json",
server_index: typing.Optional[int] = None,
stream: bool = False,
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
) -> api_response.ApiResponseWithoutDeserialization: ...
def _post_queue(
self,
body: typing.Union[
schema.SchemaDictInput,
schema.SchemaDict,
schemas.Unset
] = schemas.unset,
*,
skip_deserialization: bool = False,
content_type: typing.Literal["application/json"] = "application/json",
server_index: typing.Optional[int] = None,
stream: bool = False,
timeout: typing.Optional[typing.Union[int, float, typing.Tuple]] = None,
):
"""
(UI) Post queue
:param skip_deserialization: If true then api_response.response will be set but
api_response.body and api_response.headers will not be deserialized into schema
class instances
"""
used_path = path
headers = self._get_headers()
# TODO add cookie handling
fields, serialized_body = self._get_fields_and_body(
request_body=request_body.RequestBody,
body=body,
content_type=content_type,
headers=headers
)
host = self.api_client.configuration.get_server_url(
"servers", server_index
)
raw_response = self.api_client.call_api(
resource_path=used_path,
method='post',
host=host,
headers=headers,
fields=fields,
body=serialized_body,
stream=stream,
timeout=timeout,
)
if skip_deserialization:
skip_deser_response = api_response.ApiResponseWithoutDeserialization(response=raw_response)
self._verify_response_status(skip_deser_response)
return skip_deser_response
status = str(raw_response.status)
if status in _non_error_status_codes:
status_code = typing.cast(
typing.Literal[
'200',
],
status
)
return _status_code_to_response[status_code].deserialize(
raw_response, self.api_client.schema_configuration)
response = api_response.ApiResponseWithoutDeserialization(response=raw_response)
self._verify_response_status(response)
return response
class PostQueue(BaseApi):
# this class is used by api classes that refer to endpoints with operationId.snakeCase fn names
post_queue = BaseApi._post_queue
class ApiForPost(BaseApi):
# this class is used by api classes that refer to endpoints by path and http method names
post = BaseApi._post_queue