From 95d84fa12e628066c84e740273f7a98a8fb17703 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 10 Jan 2025 04:54:50 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.467.0 --- .gitignore | 1 + .speakeasy/gen.lock | 741 ++++++++++----- .speakeasy/gen.yaml | 7 +- .speakeasy/workflow.lock | 17 +- README.md | 484 +--------- RELEASES.md | 12 +- USAGE.md | 27 +- codeSamples.yaml | 651 ++++++------- docs/models/errors/httpvalidationerror.md | 2 - ...ntstreamrundeploymentstreampostresponse.md | 8 +- .../createrunstreamrunstreampostresponse.md | 8 +- ...flowstreamrunworkflowstreampostresponse.md | 8 +- docs/sdks/comfydeploy/README.md | 2 - docs/sdks/deployment/README.md | 107 +-- docs/sdks/deployments/README.md | 48 +- docs/sdks/file/README.md | 148 +-- docs/sdks/models/README.md | 20 +- docs/sdks/run/README.md | 141 +-- docs/sdks/search/README.md | 20 +- docs/sdks/session/README.md | 106 ++- docs/sdks/workflow/README.md | 119 ++- poetry.lock | 359 +++---- pylintrc | 2 +- pyproject.toml | 29 +- scripts/compile.sh | 85 -- src/comfydeploy/__init__.py | 13 + src/comfydeploy/_hooks/sdkhooks.py | 27 +- src/comfydeploy/_hooks/types.py | 36 +- src/comfydeploy/_version.py | 15 + src/comfydeploy/basesdk.py | 123 ++- src/comfydeploy/deployment.py | 445 +++++---- src/comfydeploy/deployments.py | 281 +++--- src/comfydeploy/file.py | 899 +++++++++++------- src/comfydeploy/httpclient.py | 6 + src/comfydeploy/models/callbacks/__init__.py | 38 +- ...yment_stream_run_deployment_stream_post.py | 33 +- .../create_run_queue_run_queue_post.py | 29 +- .../create_run_stream_run_stream_post.py | 29 +- .../create_run_sync_run_sync_post.py | 29 +- ...orkflow_stream_run_workflow_stream_post.py | 33 +- src/comfydeploy/models/components/__init__.py | 241 ++++- .../models/components/assetresponse.py | 51 +- ...dy_upload_asset_file_assets_upload_post.py | 34 +- .../body_upload_file_file_upload_post.py | 31 +- .../models/components/cancelfunctionbody.py | 5 +- .../models/components/createfolderrequest.py | 23 +- .../models/components/createrunresponse.py | 5 +- .../models/components/createsessionbody.py | 26 +- .../components/createsessionresponse.py | 23 +- .../components/deletesessionresponse.py | 5 +- .../models/components/deploymentcreate.py | 8 +- .../models/components/deploymentmodel.py | 57 +- .../models/components/deploymentrunrequest.py | 19 +- .../models/components/eventupdate.py | 24 +- .../models/components/eventupdateevent.py | 20 +- .../models/components/fileuploadresponse.py | 8 +- .../models/components/gpueventmodel.py | 76 +- .../models/components/httpmetadata.py | 8 +- .../models/components/increasetimeoutbody.py | 8 +- .../models/components/inputmodel.py | 68 +- .../models/components/logdatacontent.py | 6 +- .../models/components/logupdateevent.py | 17 +- .../models/components/mediaitem.py | 27 +- .../models/components/modelinput.py | 54 +- .../models/components/modeloutput.py | 7 +- .../models/components/modelrunrequest.py | 21 +- .../models/components/modelsearchquery.py | 41 +- .../models/components/modelwithmetadata.py | 39 +- .../models/components/outputmodel.py | 6 +- .../models/components/runstream.py | 15 +- .../models/components/searchmodelsresponse.py | 6 +- src/comfydeploy/models/components/security.py | 18 +- src/comfydeploy/models/components/session.py | 11 +- .../models/components/validationerror.py | 12 +- .../models/components/workflowrunmodel.py | 93 +- .../components/workflowrunoutputmodel.py | 34 +- .../models/components/workflowrunrequest.py | 32 +- .../components/workflowrunversionrequest.py | 46 +- .../components/workflowrunwebhookbody.py | 24 +- .../components/workflowrunwebhookresponse.py | 5 +- .../models/components/workflowwithname.py | 6 +- .../models/errors/httpvalidationerror.py | 4 +- src/comfydeploy/models/operations/__init__.py | 241 ++++- .../cancel_run_run_run_id_cancel_post.py | 31 +- .../create_deployment_deployment_post.py | 17 +- .../create_folder_assets_folder_post.py | 17 +- ...yment_stream_run_deployment_stream_post.py | 34 +- .../create_run_queue_run_queue_post.py | 45 +- .../create_run_stream_run_stream_post.py | 58 +- .../create_run_sync_run_sync_post.py | 49 +- ...orkflow_stream_run_workflow_stream_post.py | 34 +- .../operations/create_session_session_post.py | 25 +- .../delete_asset_assets_asset_id_delete.py | 20 +- ...elete_session_session_session_id_delete.py | 33 +- .../get_asset_assets_asset_id_get.py | 25 +- .../get_deployments_deployments_get.py | 55 +- .../get_machine_sessions_sessions_get.py | 33 +- .../operations/get_run_run_run_id_get.py | 29 +- .../get_session_session_session_id_get.py | 25 +- ...e_timeout_session_increase_timeout_post.py | 12 +- .../operations/list_assets_assets_get.py | 34 +- .../operations/public_models_models_get.py | 25 +- ...eployment_run_run_deployment_queue_post.py | 21 +- ...ue_workflow_run_run_workflow_queue_post.py | 21 +- .../operations/search_search_model_get.py | 39 +- ...deployment_run_run_deployment_sync_post.py | 25 +- ...ync_workflow_run_run_workflow_sync_post.py | 25 +- .../upload_asset_file_assets_upload_post.py | 33 +- .../upload_file_file_upload_post.py | 25 +- src/comfydeploy/models/webhooks/__init__.py | 10 +- .../run_update_request_body_webhook_post.py | 25 +- src/comfydeploy/models_.py | 125 ++- src/comfydeploy/run.py | 799 ++++++++++------ src/comfydeploy/sdk.py | 61 +- src/comfydeploy/sdkconfiguration.py | 21 +- src/comfydeploy/search.py | 141 +-- src/comfydeploy/session.py | 685 +++++++------ src/comfydeploy/utils/__init__.py | 19 +- src/comfydeploy/utils/annotations.py | 62 +- src/comfydeploy/utils/eventstreaming.py | 62 +- src/comfydeploy/utils/forms.py | 33 +- src/comfydeploy/utils/headers.py | 16 +- src/comfydeploy/utils/logger.py | 6 + src/comfydeploy/utils/queryparams.py | 30 +- src/comfydeploy/utils/requestbodies.py | 2 +- src/comfydeploy/utils/retries.py | 3 +- src/comfydeploy/utils/security.py | 18 +- src/comfydeploy/utils/serializers.py | 50 +- src/comfydeploy/utils/url.py | 21 +- src/comfydeploy/utils/values.py | 6 + src/comfydeploy/workflow.py | 445 +++++---- 131 files changed, 6197 insertions(+), 3926 deletions(-) delete mode 100755 scripts/compile.sh create mode 100644 src/comfydeploy/_version.py diff --git a/.gitignore b/.gitignore index 18aca90..f7aac94 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.speakeasy/reports README-PYPI.md .venv/ pyrightconfig.json diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index f39c63b..a7e4181 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 2c1d440e-25e4-46e2-a435-ebd1f72a7373 management: - docChecksum: 69e7ed1c4e2f158cef4ec88a2e8330f5 + docChecksum: 90a1294d42e1fd57f405f6d16fa371c6 docVersion: V2 - speakeasyVersion: 1.361.1 - generationVersion: 2.393.4 - releaseVersion: 0.5.0 - configChecksum: 4229e7295a10841570e30b16f7b276e5 + speakeasyVersion: 1.467.0 + generationVersion: 2.492.3 + releaseVersion: 0.6.0 + configChecksum: 51f9d7e9490205b617ca72789edb9613 repoURL: https://github.com/comfy-deploy/comfy-deploy-python.git installationURL: https://github.com/comfy-deploy/comfy-deploy-python.git published: true @@ -14,51 +14,274 @@ features: python: additionalDependencies: 1.0.0 callbacks: 2.0.0 - constsAndDefaults: 1.0.2 - core: 5.3.7 + constsAndDefaults: 1.0.5 + core: 5.10.0 defaultEnabledRetries: 0.2.0 - deprecations: 3.0.0 + deprecations: 3.0.2 devContainers: 3.0.0 - envVarSecurityUsage: 0.3.1 - flattening: 3.0.0 + enumUnions: 0.1.0 + envVarSecurityUsage: 0.3.2 + flattening: 3.1.0 globalSecurity: 3.0.2 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 - globalServerURLs: 3.0.0 + globalServerURLs: 3.1.0 groups: 3.0.0 multipartFileContentType: 1.0.0 - nameOverrides: 3.0.0 + nameOverrides: 3.0.1 nullables: 1.0.0 - responseFormat: 1.0.0 - retries: 3.0.0 + responseFormat: 1.0.1 + retries: 3.0.2 sdkHooks: 1.0.0 - serverEvents: 1.0.2 - unions: 3.0.2 + serverEvents: 1.0.7 + unions: 3.0.4 uploadStreams: 1.0.0 webhooks: 2.0.0 generatedFiles: - - src/comfydeploy/sdkconfiguration.py - - src/comfydeploy/deployment.py - - src/comfydeploy/workflow.py - - src/comfydeploy/run.py - - src/comfydeploy/session.py - - src/comfydeploy/deployments.py - - src/comfydeploy/file.py - - src/comfydeploy/models_.py - - src/comfydeploy/search.py - - src/comfydeploy/sdk.py + - .devcontainer/README.md + - .devcontainer/devcontainer.json + - .devcontainer/setup.sh + - .gitattributes + - .python-version - .vscode/settings.json + - CONTRIBUTING.md + - USAGE.md + - docs/models/callbacks/createrundeploymentstreamrundeploymentstreampostrunupdaterequestbodywebhookpostresponse.md + - docs/models/callbacks/createrunqueuerunqueuepostrunupdaterequestbodywebhookpostresponse.md + - docs/models/callbacks/createrunstreamrunstreampostrunupdaterequestbodywebhookpostresponse.md + - docs/models/callbacks/createrunsyncrunsyncpostrunupdaterequestbodywebhookpostresponse.md + - docs/models/callbacks/createrunworkflowstreamrunworkflowstreampostrunupdaterequestbodywebhookpostresponse.md + - docs/models/components/apiroutestypesmachinegpu2.md + - docs/models/components/assetresponse.md + - docs/models/components/bodyuploadassetfileassetsuploadpost.md + - docs/models/components/bodyuploadassetfileassetsuploadpostfile.md + - docs/models/components/bodyuploadfilefileuploadpost.md + - docs/models/components/cancelfunctionbody.md + - docs/models/components/classtype.md + - docs/models/components/createfolderrequest.md + - docs/models/components/createrunresponse.md + - docs/models/components/createsessionbody.md + - docs/models/components/createsessionresponse.md + - docs/models/components/data.md + - docs/models/components/defaultvalue.md + - docs/models/components/deletesessionresponse.md + - docs/models/components/deploymentcreate.md + - docs/models/components/deploymentenvironment.md + - docs/models/components/deploymentmodel.md + - docs/models/components/deploymentrunrequest.md + - docs/models/components/event.md + - docs/models/components/eventupdate.md + - docs/models/components/eventupdateevent.md + - docs/models/components/eventupdateeventevent.md + - docs/models/components/file.md + - docs/models/components/fileuploadresponse.md + - docs/models/components/gpu.md + - docs/models/components/gpueventmodel.md + - docs/models/components/gpuprovidertype.md + - docs/models/components/httpmetadata.md + - docs/models/components/increasetimeoutbody.md + - docs/models/components/inputmodel.md + - docs/models/components/inputs.md + - docs/models/components/loc.md + - docs/models/components/logdatacontent.md + - docs/models/components/logupdateevent.md + - docs/models/components/machinegpuoutput.md + - docs/models/components/maxvalue.md + - docs/models/components/mediaitem.md + - docs/models/components/minvalue.md + - docs/models/components/modelinput.md + - docs/models/components/modeloutput.md + - docs/models/components/modeloutputclasstype.md + - docs/models/components/modelrunrequest.md + - docs/models/components/modelrunrequestgpu.md + - docs/models/components/modelrunrequestinputs.md + - docs/models/components/modelsearchquery.md + - docs/models/components/modelwithmetadata.md + - docs/models/components/outputmodel.md + - docs/models/components/runstream.md + - docs/models/components/searchmodelsresponse.md + - docs/models/components/security.md + - docs/models/components/session.md + - docs/models/components/shareoptions.md + - docs/models/components/showcasemedia.md + - docs/models/components/step.md + - docs/models/components/two.md + - docs/models/components/validationerror.md + - docs/models/components/workflow.md + - docs/models/components/workflowapijson.md + - docs/models/components/workflowrunmodel.md + - docs/models/components/workflowrunoutputmodel.md + - docs/models/components/workflowrunrequest.md + - docs/models/components/workflowrunrequestgpu.md + - docs/models/components/workflowrunrequestinputs.md + - docs/models/components/workflowrunstatus.md + - docs/models/components/workflowrunversionrequest.md + - docs/models/components/workflowrunversionrequestgpu.md + - docs/models/components/workflowrunversionrequestinputs.md + - docs/models/components/workflowrunwebhookbody.md + - docs/models/components/workflowrunwebhookresponse.md + - docs/models/components/workflowwithname.md + - docs/models/components/workspacegpu.md + - docs/models/errors/httpvalidationerror.md + - docs/models/operations/cancelrunrunrunidcancelpostrequest.md + - docs/models/operations/cancelrunrunrunidcancelpostresponse.md + - docs/models/operations/createdeploymentdeploymentpostresponse.md + - docs/models/operations/createfolderassetsfolderpostresponse.md + - docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md + - docs/models/operations/createrunqueuerunqueuepostdata.md + - docs/models/operations/createrunqueuerunqueuepostresponse.md + - docs/models/operations/createrunstreamrunstreampostdata.md + - docs/models/operations/createrunstreamrunstreampostresponse.md + - docs/models/operations/createrunsyncrunsyncpostdata.md + - docs/models/operations/createrunsyncrunsyncpostresponse.md + - docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md + - docs/models/operations/createsessionsessionpostresponse.md + - docs/models/operations/deleteassetassetsassetiddeleterequest.md + - docs/models/operations/deleteassetassetsassetiddeleteresponse.md + - docs/models/operations/deletesessionsessionsessioniddeleterequest.md + - docs/models/operations/deletesessionsessionsessioniddeleteresponse.md + - docs/models/operations/getassetassetsassetidgetrequest.md + - docs/models/operations/getassetassetsassetidgetresponse.md + - docs/models/operations/getdeploymentsdeploymentsgetrequest.md + - docs/models/operations/getdeploymentsdeploymentsgetresponse.md + - docs/models/operations/getmachinesessionssessionsgetrequest.md + - docs/models/operations/getmachinesessionssessionsgetresponse.md + - docs/models/operations/getrunrunrunidgetrequest.md + - docs/models/operations/getrunrunrunidgetresponse.md + - docs/models/operations/getsessionsessionsessionidgetrequest.md + - docs/models/operations/getsessionsessionsessionidgetresponse.md + - docs/models/operations/increasetimeoutsessionincreasetimeoutpostresponse.md + - docs/models/operations/listassetsassetsgetrequest.md + - docs/models/operations/listassetsassetsgetresponse.md + - docs/models/operations/publicmodelsmodelsgetresponse.md + - docs/models/operations/queuedeploymentrunrundeploymentqueuepostresponse.md + - docs/models/operations/queueworkflowrunrunworkflowqueuepostresponse.md + - docs/models/operations/searchsearchmodelgetrequest.md + - docs/models/operations/searchsearchmodelgetresponse.md + - docs/models/operations/syncdeploymentrunrundeploymentsyncpostresponse.md + - docs/models/operations/syncworkflowrunrunworkflowsyncpostresponse.md + - docs/models/operations/uploadassetfileassetsuploadpostrequest.md + - docs/models/operations/uploadassetfileassetsuploadpostresponse.md + - docs/models/operations/uploadfilefileuploadpostresponse.md + - docs/models/utils/retryconfig.md + - docs/models/webhooks/runupdaterequestbodywebhookpostresponse.md + - docs/sdks/comfydeploy/README.md + - docs/sdks/deployment/README.md + - docs/sdks/deployments/README.md + - docs/sdks/file/README.md + - docs/sdks/models/README.md + - docs/sdks/run/README.md + - docs/sdks/search/README.md + - docs/sdks/session/README.md + - docs/sdks/workflow/README.md - poetry.toml - py.typed - pylintrc - pyproject.toml - - scripts/compile.sh - scripts/prepare-readme.py - scripts/publish.sh - src/comfydeploy/__init__.py + - src/comfydeploy/_hooks/__init__.py + - src/comfydeploy/_hooks/sdkhooks.py + - src/comfydeploy/_hooks/types.py + - src/comfydeploy/_version.py - src/comfydeploy/basesdk.py + - src/comfydeploy/deployment.py + - src/comfydeploy/deployments.py + - src/comfydeploy/file.py - src/comfydeploy/httpclient.py + - src/comfydeploy/models/callbacks/__init__.py + - src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py + - src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py + - src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py + - src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py + - src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py + - src/comfydeploy/models/components/__init__.py + - src/comfydeploy/models/components/api_routes_types_machinegpu_2.py + - src/comfydeploy/models/components/assetresponse.py + - src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py + - src/comfydeploy/models/components/body_upload_file_file_upload_post.py + - src/comfydeploy/models/components/cancelfunctionbody.py + - src/comfydeploy/models/components/createfolderrequest.py + - src/comfydeploy/models/components/createrunresponse.py + - src/comfydeploy/models/components/createsessionbody.py + - src/comfydeploy/models/components/createsessionresponse.py + - src/comfydeploy/models/components/deletesessionresponse.py + - src/comfydeploy/models/components/deploymentcreate.py + - src/comfydeploy/models/components/deploymentenvironment.py + - src/comfydeploy/models/components/deploymentmodel.py + - src/comfydeploy/models/components/deploymentrunrequest.py + - src/comfydeploy/models/components/eventupdate.py + - src/comfydeploy/models/components/eventupdateevent.py + - src/comfydeploy/models/components/fileuploadresponse.py + - src/comfydeploy/models/components/gpueventmodel.py + - src/comfydeploy/models/components/gpuprovidertype.py + - src/comfydeploy/models/components/httpmetadata.py + - src/comfydeploy/models/components/increasetimeoutbody.py + - src/comfydeploy/models/components/inputmodel.py + - src/comfydeploy/models/components/logdatacontent.py + - src/comfydeploy/models/components/logupdateevent.py + - src/comfydeploy/models/components/machinegpu_output.py + - src/comfydeploy/models/components/mediaitem.py + - src/comfydeploy/models/components/modelinput.py + - src/comfydeploy/models/components/modeloutput.py + - src/comfydeploy/models/components/modelrunrequest.py + - src/comfydeploy/models/components/modelsearchquery.py + - src/comfydeploy/models/components/modelwithmetadata.py + - src/comfydeploy/models/components/outputmodel.py + - src/comfydeploy/models/components/runstream.py + - src/comfydeploy/models/components/searchmodelsresponse.py + - src/comfydeploy/models/components/security.py + - src/comfydeploy/models/components/session.py + - src/comfydeploy/models/components/validationerror.py + - src/comfydeploy/models/components/workflowrunmodel.py + - src/comfydeploy/models/components/workflowrunoutputmodel.py + - src/comfydeploy/models/components/workflowrunrequest.py + - src/comfydeploy/models/components/workflowrunstatus.py + - src/comfydeploy/models/components/workflowrunversionrequest.py + - src/comfydeploy/models/components/workflowrunwebhookbody.py + - src/comfydeploy/models/components/workflowrunwebhookresponse.py + - src/comfydeploy/models/components/workflowwithname.py + - src/comfydeploy/models/components/workspacegpu.py + - src/comfydeploy/models/errors/__init__.py + - src/comfydeploy/models/errors/httpvalidationerror.py + - src/comfydeploy/models/errors/sdkerror.py + - src/comfydeploy/models/operations/__init__.py + - src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py + - src/comfydeploy/models/operations/create_deployment_deployment_post.py + - src/comfydeploy/models/operations/create_folder_assets_folder_post.py + - src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py + - src/comfydeploy/models/operations/create_run_queue_run_queue_post.py + - src/comfydeploy/models/operations/create_run_stream_run_stream_post.py + - src/comfydeploy/models/operations/create_run_sync_run_sync_post.py + - src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py + - src/comfydeploy/models/operations/create_session_session_post.py + - src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py + - src/comfydeploy/models/operations/delete_session_session_session_id_delete.py + - src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py + - src/comfydeploy/models/operations/get_deployments_deployments_get.py + - src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py + - src/comfydeploy/models/operations/get_run_run_run_id_get.py + - src/comfydeploy/models/operations/get_session_session_session_id_get.py + - src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py + - src/comfydeploy/models/operations/list_assets_assets_get.py + - src/comfydeploy/models/operations/public_models_models_get.py + - src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py + - src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py + - src/comfydeploy/models/operations/search_search_model_get.py + - src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py + - src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py + - src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py + - src/comfydeploy/models/operations/upload_file_file_upload_post.py + - src/comfydeploy/models/webhooks/__init__.py + - src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py + - src/comfydeploy/models_.py - src/comfydeploy/py.typed + - src/comfydeploy/run.py + - src/comfydeploy/sdk.py + - src/comfydeploy/sdkconfiguration.py + - src/comfydeploy/search.py + - src/comfydeploy/session.py - src/comfydeploy/types/__init__.py - src/comfydeploy/types/basemodel.py - src/comfydeploy/utils/__init__.py @@ -76,225 +299,245 @@ generatedFiles: - src/comfydeploy/utils/serializers.py - src/comfydeploy/utils/url.py - src/comfydeploy/utils/values.py - - src/comfydeploy/models/errors/sdkerror.py - - src/comfydeploy/models/operations/get_run_run_run_id_get.py - - src/comfydeploy/models/operations/create_run_queue_run_queue_post.py - - src/comfydeploy/models/operations/create_run_sync_run_sync_post.py - - src/comfydeploy/models/operations/create_run_stream_run_stream_post.py - - src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py - - src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py - - src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py - - src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py - - src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py - - src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py - - src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py - - src/comfydeploy/models/operations/get_session_session_session_id_get.py - - src/comfydeploy/models/operations/delete_session_session_session_id_delete.py - - src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py - - src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py - - src/comfydeploy/models/operations/create_session_session_post.py - - src/comfydeploy/models/operations/create_deployment_deployment_post.py - - src/comfydeploy/models/operations/get_deployments_deployments_get.py - - src/comfydeploy/models/operations/upload_file_file_upload_post.py - - src/comfydeploy/models/operations/create_folder_assets_folder_post.py - - src/comfydeploy/models/operations/list_assets_assets_get.py - - src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py - - src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py - - src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py - - src/comfydeploy/models/operations/public_models_models_get.py - - src/comfydeploy/models/operations/search_search_model_get.py - - src/comfydeploy/models/operations/__init__.py - - src/comfydeploy/models/components/workflowrunmodel.py - - src/comfydeploy/models/components/workflowrunoutputmodel.py - - src/comfydeploy/models/components/mediaitem.py - - src/comfydeploy/models/components/httpmetadata.py - - src/comfydeploy/models/components/validationerror.py - - src/comfydeploy/models/components/createrunresponse.py - - src/comfydeploy/models/components/workflowrunversionrequest.py - - src/comfydeploy/models/components/workflowrunrequest.py - - src/comfydeploy/models/components/deploymentrunrequest.py - - src/comfydeploy/models/components/modelrunrequest.py - - src/comfydeploy/models/components/workflowrunwebhookbody.py - - src/comfydeploy/models/components/workflowrunstatus.py - - src/comfydeploy/models/components/workflowrunwebhookresponse.py - - src/comfydeploy/models/components/runstream.py - - src/comfydeploy/models/components/logupdateevent.py - - src/comfydeploy/models/components/logdatacontent.py - - src/comfydeploy/models/components/eventupdateevent.py - - src/comfydeploy/models/components/eventupdate.py - - src/comfydeploy/models/components/cancelfunctionbody.py - - src/comfydeploy/models/components/session.py - - src/comfydeploy/models/components/deletesessionresponse.py - - src/comfydeploy/models/components/gpueventmodel.py - - src/comfydeploy/models/components/gpuprovidertype.py - - src/comfydeploy/models/components/workspacegpu.py - - src/comfydeploy/models/components/machinegpu_output.py - - src/comfydeploy/models/components/increasetimeoutbody.py - - src/comfydeploy/models/components/createsessionresponse.py - - src/comfydeploy/models/components/createsessionbody.py - - src/comfydeploy/models/components/api_routes_types_machinegpu_2.py - - src/comfydeploy/models/components/deploymentmodel.py - - src/comfydeploy/models/components/outputmodel.py - - src/comfydeploy/models/components/inputmodel.py - - src/comfydeploy/models/components/workflowwithname.py - - src/comfydeploy/models/components/deploymentenvironment.py - - src/comfydeploy/models/components/deploymentcreate.py - - src/comfydeploy/models/components/fileuploadresponse.py - - src/comfydeploy/models/components/body_upload_file_file_upload_post.py - - src/comfydeploy/models/components/assetresponse.py - - src/comfydeploy/models/components/createfolderrequest.py - - src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py - - src/comfydeploy/models/components/modelwithmetadata.py - - src/comfydeploy/models/components/modeloutput.py - - src/comfydeploy/models/components/modelinput.py - - src/comfydeploy/models/components/searchmodelsresponse.py - - src/comfydeploy/models/components/modelsearchquery.py - - src/comfydeploy/models/components/security.py - - src/comfydeploy/models/components/__init__.py - - src/comfydeploy/models/errors/httpvalidationerror.py - - src/comfydeploy/models/errors/__init__.py - - src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py - - src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py - - src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py - - src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py - - src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py - - src/comfydeploy/models/callbacks/__init__.py - - src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py - - src/comfydeploy/models/webhooks/__init__.py - - docs/models/operations/getrunrunrunidgetrequest.md - - docs/models/operations/getrunrunrunidgetresponse.md - - docs/models/operations/createrunqueuerunqueuepostdata.md - - docs/models/operations/createrunqueuerunqueuepostresponse.md - - docs/models/operations/createrunsyncrunsyncpostdata.md - - docs/models/operations/createrunsyncrunsyncpostresponse.md - - docs/models/operations/createrunstreamrunstreampostdata.md - - docs/models/operations/createrunstreamrunstreampostresponse.md - - docs/models/operations/cancelrunrunrunidcancelpostrequest.md - - docs/models/operations/cancelrunrunrunidcancelpostresponse.md - - docs/models/operations/queuedeploymentrunrundeploymentqueuepostresponse.md - - docs/models/operations/syncdeploymentrunrundeploymentsyncpostresponse.md - - docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md - - docs/models/operations/queueworkflowrunrunworkflowqueuepostresponse.md - - docs/models/operations/syncworkflowrunrunworkflowsyncpostresponse.md - - docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md - - docs/models/operations/getsessionsessionsessionidgetrequest.md - - docs/models/operations/getsessionsessionsessionidgetresponse.md - - docs/models/operations/deletesessionsessionsessioniddeleterequest.md - - docs/models/operations/deletesessionsessionsessioniddeleteresponse.md - - docs/models/operations/getmachinesessionssessionsgetrequest.md - - docs/models/operations/getmachinesessionssessionsgetresponse.md - - docs/models/operations/increasetimeoutsessionincreasetimeoutpostresponse.md - - docs/models/operations/createsessionsessionpostresponse.md - - docs/models/operations/createdeploymentdeploymentpostresponse.md - - docs/models/operations/getdeploymentsdeploymentsgetrequest.md - - docs/models/operations/getdeploymentsdeploymentsgetresponse.md - - docs/models/operations/uploadfilefileuploadpostresponse.md - - docs/models/operations/createfolderassetsfolderpostresponse.md - - docs/models/operations/listassetsassetsgetrequest.md - - docs/models/operations/listassetsassetsgetresponse.md - - docs/models/operations/getassetassetsassetidgetrequest.md - - docs/models/operations/getassetassetsassetidgetresponse.md - - docs/models/operations/deleteassetassetsassetiddeleterequest.md - - docs/models/operations/deleteassetassetsassetiddeleteresponse.md - - docs/models/operations/uploadassetfileassetsuploadpostrequest.md - - docs/models/operations/uploadassetfileassetsuploadpostresponse.md - - docs/models/operations/publicmodelsmodelsgetresponse.md - - docs/models/operations/searchsearchmodelgetrequest.md - - docs/models/operations/searchsearchmodelgetresponse.md - - docs/models/components/workflowrunmodel.md - - docs/models/components/data.md - - docs/models/components/workflowrunoutputmodel.md - - docs/models/components/mediaitem.md - - docs/models/components/httpmetadata.md - - docs/models/components/loc.md - - docs/models/components/validationerror.md - - docs/models/components/createrunresponse.md - - docs/models/components/workflowrunversionrequestinputs.md - - docs/models/components/workflowrunversionrequestgpu.md - - docs/models/components/workflowrunversionrequest.md - - docs/models/components/workflowrunrequestinputs.md - - docs/models/components/workflowrunrequestgpu.md - - docs/models/components/workflowapijson.md - - docs/models/components/workflow.md - - docs/models/components/workflowrunrequest.md - - docs/models/components/inputs.md - - docs/models/components/gpu.md - - docs/models/components/deploymentrunrequest.md - - docs/models/components/modelrunrequestinputs.md - - docs/models/components/modelrunrequestgpu.md - - docs/models/components/modelrunrequest.md - - docs/models/components/workflowrunwebhookbody.md - - docs/models/components/workflowrunstatus.md - - docs/models/components/workflowrunwebhookresponse.md - - docs/models/components/runstream.md - - docs/models/components/event.md - - docs/models/components/logupdateevent.md - - docs/models/components/logdatacontent.md - - docs/models/components/eventupdateeventevent.md - - docs/models/components/eventupdateevent.md - - docs/models/components/eventupdate.md - - docs/models/components/cancelfunctionbody.md - - docs/models/components/session.md - - docs/models/components/deletesessionresponse.md - - docs/models/components/gpueventmodel.md - - docs/models/components/gpuprovidertype.md - - docs/models/components/workspacegpu.md - - docs/models/components/machinegpuoutput.md - - docs/models/components/increasetimeoutbody.md - - docs/models/components/createsessionresponse.md - - docs/models/components/createsessionbody.md - - docs/models/components/apiroutestypesmachinegpu2.md - - docs/models/components/shareoptions.md - - docs/models/components/showcasemedia.md - - docs/models/components/deploymentmodel.md - - docs/models/components/outputmodel.md - - docs/models/components/defaultvalue.md - - docs/models/components/minvalue.md - - docs/models/components/maxvalue.md - - docs/models/components/step.md - - docs/models/components/inputmodel.md - - docs/models/components/workflowwithname.md - - docs/models/components/deploymentenvironment.md - - docs/models/components/deploymentcreate.md - - docs/models/components/fileuploadresponse.md - - docs/models/components/file.md - - docs/models/components/bodyuploadfilefileuploadpost.md - - docs/models/components/assetresponse.md - - docs/models/components/createfolderrequest.md - - docs/models/components/bodyuploadassetfileassetsuploadpostfile.md - - docs/models/components/bodyuploadassetfileassetsuploadpost.md - - docs/models/components/modelwithmetadata.md - - docs/models/components/modeloutputclasstype.md - - docs/models/components/modeloutput.md - - docs/models/components/two.md - - docs/models/components/classtype.md - - docs/models/components/modelinput.md - - docs/models/components/searchmodelsresponse.md - - docs/models/components/modelsearchquery.md - - docs/models/components/security.md - - docs/models/errors/httpvalidationerror.md - - docs/models/callbacks/createrunqueuerunqueuepostrunupdaterequestbodywebhookpostresponse.md - - docs/models/callbacks/createrunsyncrunsyncpostrunupdaterequestbodywebhookpostresponse.md - - docs/models/callbacks/createrunstreamrunstreampostrunupdaterequestbodywebhookpostresponse.md - - docs/models/callbacks/createrundeploymentstreamrundeploymentstreampostrunupdaterequestbodywebhookpostresponse.md - - docs/models/callbacks/createrunworkflowstreamrunworkflowstreampostrunupdaterequestbodywebhookpostresponse.md - - docs/models/webhooks/runupdaterequestbodywebhookpostresponse.md - - docs/sdks/comfydeploy/README.md - - docs/models/utils/retryconfig.md - - docs/sdks/run/README.md - - docs/sdks/deployment/README.md - - docs/sdks/workflow/README.md - - docs/sdks/session/README.md - - docs/sdks/deployments/README.md - - docs/sdks/file/README.md - - docs/sdks/models/README.md - - docs/sdks/search/README.md - - USAGE.md - - .gitattributes - - .devcontainer/README.md - - .devcontainer/devcontainer.json - - .devcontainer/setup.sh - - src/comfydeploy/_hooks/sdkhooks.py - - src/comfydeploy/_hooks/types.py - - src/comfydeploy/_hooks/__init__.py - - CONTRIBUTING.md + - src/comfydeploy/workflow.py +examples: + get_run_run__run_id__get: + speakeasy-default-get-run-run-run-id-get: + parameters: + path: + run_id: "b888f774-3e7c-4135-a18c-6b985523c4bc" + responses: + "200": + application/json: {"id": "e50f7622-81da-484b-9c66-1c8a99c6b71b", "workflow_version_id": "ecd62b8f-7112-4aaf-90ab-4e43b4cca371", "workflow_inputs": "", "workflow_id": "f620807a-a1f8-4cf0-95d8-9d58ee381f6b", "workflow_api": "", "machine_id": "b885c09d-541c-4293-b683-64a15f8d7e75", "origin": "", "status": "", "created_at": "2024-02-02T12:01:38.576Z", "updated_at": "2023-04-16T15:25:27.950Z", "gpu_event_id": "", "gpu": "", "machine_version": "", "machine_type": "", "modal_function_call_id": "", "user_id": "", "org_id": "", "live_status": "", "webhook": "", "webhook_status": "", "number": 494415, "duration": "6188.68", "cold_start_duration": "9131.14", "cold_start_duration_total": "1865.92", "run_duration": "3787.04"} + "422": + application/json: {} + create_run_queue_run_queue_post: + speakeasy-default-create-run-queue-run-queue-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook_intermediate_status": true, "workflow_version_id": "3ec31b24-d0d3-4298-9ffa-c74003017b70"} + responses: + "200": + application/json: {"run_id": "312c491e-eee1-46d4-bb64-574d03253718"} + "422": + application/json: {} + create_run_sync_run_sync_post: + speakeasy-default-create-run-sync-run-sync-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook_intermediate_status": true, "model_id": ""} + responses: + "200": + application/json: [] + "422": + application/json: {} + create_run_stream_run_stream_post: + speakeasy-default-create-run-stream-run-stream-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook_intermediate_status": true, "model_id": ""} + responses: + "422": + application/json: {} + cancel_run_run__run_id__cancel_post: + speakeasy-default-cancel-run-run-run-id-cancel-post: + parameters: + path: + run_id: "" + requestBody: + application/json: {"function_id": ""} + responses: + "200": + application/json: "" + "422": + application/json: {} + queue_deployment_run_run_deployment_queue_post: + speakeasy-default-queue-deployment-run-run-deployment-queue-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957"} + responses: + "200": + application/json: {"run_id": "03ec31b2-4d0d-4329-88ff-ac74003017b7"} + "422": + application/json: {} + sync_deployment_run_run_deployment_sync_post: + speakeasy-default-sync-deployment-run-run-deployment-sync-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957"} + responses: + "200": + application/json: [{"id": "0897be30-8085-4c96-83b5-09c0142ddd3a", "run_id": "74537c27-c77e-45f3-8db2-d51ced44fce8", "data": {"key": [{"url": "https://excellent-someplace.com/", "type": "", "filename": "example.file"}], "key1": ["", {"url": "https://quixotic-pacemaker.name", "type": "", "filename": "example.file"}, {"url": "https://stupendous-reboot.com", "type": "", "filename": "example.file"}], "key2": [""]}, "node_meta": "", "created_at": "2025-06-15T03:39:15.085Z", "updated_at": "2023-01-07T17:33:50.101Z"}, {"id": "7b918394-ccd6-4006-bce6-e9d017d70eb9", "run_id": "65e87a7a-7857-4bfb-b41e-75104e9739c5", "data": {"key": []}, "node_meta": "", "created_at": "2023-08-28T07:34:17.021Z", "updated_at": "2024-05-07T07:06:17.977Z"}, {"id": "9f9cc0e7-be8b-46e8-8cb1-c6a768b8af61", "run_id": "a6bac807-9573-4ae1-9a78-99edf52381d0", "data": {"key": [{"url": "https://regal-pillbox.name/", "type": "", "filename": "example.file"}, ""], "key1": [{"url": "https://amused-completion.com/", "type": "", "filename": "example.file"}, {"url": "https://stingy-pulse.org/", "type": "", "filename": "example.file"}, {"url": "https://productive-populist.net/", "type": "", "filename": "example.file"}], "key2": [""]}, "node_meta": "", "created_at": "2024-09-02T10:46:05.380Z", "updated_at": "2025-02-12T08:26:26.046Z"}] + "422": + application/json: {} + create_run_deployment_stream_run_deployment_stream_post: + speakeasy-default-create-run-deployment-stream-run-deployment-stream-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957"} + responses: + "422": + application/json: {} + queue_workflow_run_run_workflow_queue_post: + speakeasy-default-queue-workflow-run-run-workflow-queue-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "workflow_id": "12345678-1234-5678-1234-567812345678"} + responses: + "200": + application/json: {"run_id": "03ec31b2-4d0d-4329-88ff-ac74003017b7"} + "422": + application/json: {} + sync_workflow_run_run_workflow_sync_post: + speakeasy-default-sync-workflow-run-run-workflow-sync-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "workflow_id": "12345678-1234-5678-1234-567812345678"} + responses: + "200": + application/json: [{"id": "0897be30-8085-4c96-83b5-09c0142ddd3a", "run_id": "74537c27-c77e-45f3-8db2-d51ced44fce8", "data": {"key": [{"url": "https://excellent-someplace.com/", "type": "", "filename": "example.file"}], "key1": ["", {"url": "https://quixotic-pacemaker.name", "type": "", "filename": "example.file"}, {"url": "https://stupendous-reboot.com", "type": "", "filename": "example.file"}], "key2": [""]}, "node_meta": "", "created_at": "2025-06-15T03:39:15.085Z", "updated_at": "2023-01-07T17:33:50.101Z"}, {"id": "7b918394-ccd6-4006-bce6-e9d017d70eb9", "run_id": "65e87a7a-7857-4bfb-b41e-75104e9739c5", "data": {"key": []}, "node_meta": "", "created_at": "2023-08-28T07:34:17.021Z", "updated_at": "2024-05-07T07:06:17.977Z"}, {"id": "9f9cc0e7-be8b-46e8-8cb1-c6a768b8af61", "run_id": "a6bac807-9573-4ae1-9a78-99edf52381d0", "data": {"key": [{"url": "https://regal-pillbox.name/", "type": "", "filename": "example.file"}, ""], "key1": [{"url": "https://amused-completion.com/", "type": "", "filename": "example.file"}, {"url": "https://stingy-pulse.org/", "type": "", "filename": "example.file"}, {"url": "https://productive-populist.net/", "type": "", "filename": "example.file"}], "key2": [""]}, "node_meta": "", "created_at": "2024-09-02T10:46:05.380Z", "updated_at": "2025-02-12T08:26:26.046Z"}] + "422": + application/json: {} + create_run_workflow_stream_run_workflow_stream_post: + speakeasy-default-create-run-workflow-stream-run-workflow-stream-post: + requestBody: + application/json: {"inputs": {"prompt": "A beautiful landscape", "seed": 42}, "webhook": "https://myapp.com/webhook", "workflow_id": "12345678-1234-5678-1234-567812345678"} + responses: + "422": + application/json: {} + get_session_session__session_id__get: + speakeasy-default-get-session-session-session-id-get: + parameters: + path: + session_id: "" + responses: + "200": + application/json: {"session_id": "", "gpu_event_id": "", "url": "https://normal-making.name", "gpu": "", "created_at": "2025-11-29T01:50:48.954Z", "timeout": 458049, "machine_id": ""} + "422": + application/json: {} + delete_session_session__session_id__delete: + speakeasy-default-delete-session-session-session-id-delete: + parameters: + path: + session_id: "" + responses: + "200": + application/json: {"success": true} + "422": + application/json: {} + get_machine_sessions_sessions_get: + speakeasy-default-get-machine-sessions-sessions-get: + parameters: + query: + machine_id: "" + responses: + "200": + application/json: [{"id": "8a232aa0-b11b-48a0-8057-1e9e705d0e6e", "user_id": "", "org_id": "", "machine_id": "1e276671-8d6d-4461-b2e0-aee1b9ddf121", "start_time": "2025-05-01T20:38:29.097Z", "end_time": "2023-06-05T08:58:03.644Z", "gpu": "A100", "gpu_provider": "runpod"}, {"id": "c8104fb4-51a7-40cf-8c8f-e07fbc60ab96", "user_id": "", "org_id": "", "machine_id": "d5611ff6-573e-40a6-a233-1ad7c07cc481", "start_time": "2024-09-14T02:22:04.749Z", "end_time": "2023-04-20T19:52:18.966Z", "gpu": "L4", "gpu_provider": "modal"}, {"id": "6ebd834b-7d8c-4223-a6e0-85944ebceb27", "user_id": "", "org_id": "", "machine_id": "d4753d0a-17c4-478e-9329-a9ec97938e1a", "start_time": "2023-09-28T14:04:50.967Z", "end_time": "2023-01-03T14:26:00.039Z", "gpu": "H100", "gpu_provider": "modal"}] + "422": + application/json: {} + increase_timeout_session_increase_timeout_post: + speakeasy-default-increase-timeout-session-increase-timeout-post: + requestBody: + application/json: {"machine_id": "", "session_id": "d1cbd355-89fb-45f4-9778-6137629fc60d", "timeout": 465465, "gpu": ""} + responses: + "200": + application/json: "" + "422": + application/json: {} + create_session_session_post: + speakeasy-default-create-session-session-post: + requestBody: + application/json: {"machine_id": ""} + responses: + "200": + application/json: {"session_id": "7a621cf0-21cd-49cf-8540-3315211a509a"} + "422": + application/json: {} + create_deployment_deployment_post: + speakeasy-default-create-deployment-deployment-post: + requestBody: + application/json: {"workflow_version_id": "", "workflow_id": "", "machine_id": "", "environment": ""} + responses: + "200": + application/json: {"id": "7a621cf0-21cd-49cf-8540-3315211a509a", "user_id": "", "org_id": "", "workflow_version_id": "080a8e77-4c2b-4ecc-9376-91775e024985", "workflow_id": "13de0ee8-03d5-46a1-adf9-436bfd394947", "machine_id": "8bc19d4c-51e9-49df-9f42-acbeff61bc52", "share_slug": "", "description": "formula other gosh carouse", "environment": "staging", "created_at": "2024-02-24T22:31:50.589Z", "updated_at": "2024-09-18T22:12:00.266Z"} + "422": + application/json: {} + get_deployments_deployments_get: + speakeasy-default-get-deployments-deployments-get: + responses: + "200": + application/json: [{"id": "8a232aa0-b11b-48a0-8057-1e9e705d0e6e", "user_id": "", "org_id": "", "workflow_version_id": "1e276671-8d6d-4461-b2e0-aee1b9ddf121", "workflow_id": "c2a4c810-4fb4-451a-a70c-fc8fe07fbc60", "machine_id": "b960d561-1ff6-4573-be0a-62331ad7c07c", "share_slug": "", "description": "promptly expatiate dreamily of rosy", "showcase_media": [], "environment": "production", "created_at": "2025-03-21T06:52:57.825Z", "updated_at": "2025-07-20T01:34:08.268Z"}, {"id": "4753d0a1-7c47-48e3-829a-9ec97938e1a6", "user_id": "", "org_id": "", "workflow_version_id": "0f5fe368-082f-4a02-be08-74e78307648e", "workflow_id": "2ed7f303-9dec-46f4-a5d9-7b2c5d7f7bcf", "machine_id": "269af219-4d58-461b-83fe-5754c0c551a9", "share_slug": "", "description": "waft mortally toward by selfishly devise yet questioningly anenst", "environment": "staging", "created_at": "2024-08-14T18:41:19.055Z", "updated_at": "2024-03-01T04:00:01.219Z"}, {"id": "95ca433b-1104-4d1e-9fae-bad1494b3d27", "user_id": "", "org_id": "", "workflow_version_id": "b63f806d-94b8-443a-91ce-423bc77dd5bb", "workflow_id": "2fcfa6f3-f7b3-4d58-8ee6-1458f7304a0a", "machine_id": "715e54f6-42e8-46b7-9c60-873f569812ed", "share_slug": "", "description": "ripe solicit that willing gah", "showcase_media": [], "environment": "public-share", "created_at": "2024-10-02T09:00:05.612Z", "updated_at": "2025-04-03T09:40:26.403Z"}] + "422": + application/json: {} + upload_file_file_upload_post: + speakeasy-default-upload-file-file-upload-post: + requestBody: + multipart/form-data: {"file": {}} + responses: + "200": + application/json: {"message": "File uploaded successfully", "file_id": "img_1a2b3c4d5e6f7g8h", "file_name": "example_image.jpg", "file_url": "https://your-bucket.s3.your-region.amazonaws.com/inputs/img_1a2b3c4d5e6f7g8h.jpg"} + "422": + application/json: {} + create_folder_assets_folder_post: + speakeasy-default-create-folder-assets-folder-post: + requestBody: + application/json: {"name": ""} + responses: + "200": + application/json: {"id": "", "name": "", "is_folder": true, "path": "/boot", "created_at": "2024-05-12T23:47:53.128Z", "updated_at": "2025-02-08T02:30:03.351Z"} + "422": + application/json: {} + list_assets_assets_get: + speakeasy-default-list-assets-assets-get: + responses: + "200": + application/json: [{"id": "", "name": "", "is_folder": false, "path": "/sbin", "created_at": "2025-12-25T17:21:49.793Z", "updated_at": "2025-01-18T10:50:56.287Z"}, {"id": "", "name": "", "is_folder": true, "path": "/etc/ppp", "created_at": "2025-12-04T16:54:21.906Z", "updated_at": "2025-04-01T12:23:51.277Z"}] + "422": + application/json: {} + delete_asset_assets__asset_id__delete: + speakeasy-default-delete-asset-assets-asset-id-delete: + parameters: + path: + asset_id: "" + responses: + "200": + application/json: "" + "422": + application/json: {} + get_asset_assets__asset_id__get: + speakeasy-default-get-asset-assets-asset-id-get: + parameters: + path: + asset_id: "" + responses: + "200": + application/json: {"id": "", "name": "", "is_folder": true, "path": "/lost+found", "created_at": "2024-01-07T09:26:38.024Z", "updated_at": "2025-09-14T11:53:46.680Z"} + "422": + application/json: {} + upload_asset_file_assets_upload_post: + speakeasy-default-upload-asset-file-assets-upload-post: + requestBody: + multipart/form-data: {"file": {}} + responses: + "200": + application/json: {"id": "", "name": "", "is_folder": false, "path": "/dev", "created_at": "2023-03-10T03:20:38.050Z", "updated_at": "2025-09-25T00:29:12.832Z"} + "422": + application/json: {} + public_models_models_get: + speakeasy-default-public-models-models-get: + responses: + "200": + application/json: [{"id": "", "name": "", "inputs": [{"input_id": "", "class_type": "ComfyUIDeployExternalEnum", "required": false}, {"input_id": "", "class_type": "", "required": false}], "outputs": [{"class_type": "ComfyDeployStdOutputImage", "output_id": ""}]}, {"id": "", "name": "", "inputs": [{"input_id": "", "class_type": "ComfyUIDeployExternalNumberInt", "required": false}, {"input_id": "", "class_type": "ComfyUIDeployExternalTextAny", "required": true}], "outputs": [{"class_type": "ComfyDeployStdOutputImage", "output_id": ""}, {"class_type": "ComfyDeployStdOutputAny", "output_id": ""}]}, {"id": "", "name": "", "inputs": [{"input_id": "", "class_type": "ComfyUIDeployExternalText", "required": false}, {"input_id": "", "class_type": "ComfyUIDeployExternalCheckpoint", "required": true}, {"input_id": "", "class_type": "ComfyUIDeployExternalTextAny", "required": false}], "outputs": []}] + search_search_model_get: + speakeasy-default-search-search-model-get: + parameters: + query: + query: "" + responses: + "200": + application/json: {} + "422": + application/json: {} + run_update__request_body__webhook__post: + speakeasy-default-run-update-request-body-webhook-post: + requestBody: + application/json: {"run_id": "", "status": "success", "live_status": ""} + responses: + "200": + application/json: {"status": ""} + "422": + application/json: {} +generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 8d7bcfa..ca49ca9 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -14,8 +14,9 @@ generation: requestResponseComponentNamesFeb2024: true auth: oAuth2ClientCredentialsEnabled: false + oAuth2PasswordEnabled: false python: - version: 0.5.0 + version: 0.6.0 additionalDependencies: dev: {} main: {} @@ -23,10 +24,14 @@ python: authors: - Speakeasy clientServerStatusCodesAsErrors: true + defaultErrorName: SDKError description: Python Client SDK Generated by Speakeasy enumFormat: enum + fixFlags: + responseRequiredSep2024: false flattenGlobalSecurity: true flattenRequests: false + flatteningOrder: parameters-first imports: option: openapi paths: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2033c9d..614ccec 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,23 +1,24 @@ -speakeasyVersion: 1.361.1 +speakeasyVersion: 1.467.0 sources: comfydeploy-api: sourceNamespace: comfydeploy-api - sourceRevisionDigest: sha256:379e798d86f110c5878757c3eeb00f6ffd3b01e4ae72ee8f03b43f17d720ee11 - sourceBlobDigest: sha256:2833bda6c4ae4a1f9305704b0c1c73bdc0ec2c5523c0cbaaf9e22c18c2997ab9 + sourceRevisionDigest: sha256:7e457aae30f1073849d8f7dd728010e3cacc22d88cf7fb13f1aa50d749d42e71 + sourceBlobDigest: sha256:ee2a461006d35edb1386cba134e3b2e817212649605f932e894e2c10c8b2547f tags: - latest + - speakeasy-sdk-regen-1736484840 + - V2 targets: comfy-deploy: source: comfydeploy-api sourceNamespace: comfydeploy-api - sourceRevisionDigest: sha256:379e798d86f110c5878757c3eeb00f6ffd3b01e4ae72ee8f03b43f17d720ee11 - sourceBlobDigest: sha256:2833bda6c4ae4a1f9305704b0c1c73bdc0ec2c5523c0cbaaf9e22c18c2997ab9 + sourceRevisionDigest: sha256:7e457aae30f1073849d8f7dd728010e3cacc22d88cf7fb13f1aa50d749d42e71 + sourceBlobDigest: sha256:ee2a461006d35edb1386cba134e3b2e817212649605f932e894e2c10c8b2547f codeSamplesNamespace: code-samples-python-comfy-deploy - codeSamplesRevisionDigest: sha256:573f1d5fd2957fa6c0a02e5d63f9cea3d83f3323e04954dc9348dd67deecda09 - outLocation: /Users/bennykok/Documents/GitHub/comfy-deploy-python + codeSamplesRevisionDigest: sha256:75aeb527434d27b0e6af2910b4c8c031d91369cf444bd32d3742f4d37988cd9d workflow: workflowVersion: 1.0.0 - speakeasyVersion: 1.361.1 + speakeasyVersion: latest sources: comfydeploy-api: inputs: diff --git a/README.md b/README.md index 33110ab..66dc905 100644 --- a/README.md +++ b/README.md @@ -1,483 +1 @@ -# comfydeploy - -
- - - - -
- - -## 🏗 **Welcome to your new SDK!** 🏗 - -It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps: -- [ ] 🛠 Make your SDK feel handcrafted by [customizing it](https://www.speakeasyapi.dev/docs/customize-sdks) -- [ ] ♻️ Refine your SDK quickly by iterating locally with the [Speakeasy CLI](https://github.com/speakeasy-api/speakeasy) -- [ ] 🎁 Publish your SDK to package managers by [configuring automatic publishing](https://www.speakeasyapi.dev/docs/advanced-setup/publish-sdks) -- [ ] ✨ When ready to productionize, delete this section from the README - - -## SDK Installation - -PIP -```bash -pip install comfydeploy -``` - -Poetry -```bash -poetry add comfydeploy -``` - - - -## SDK Example Usage - -### Example - -```python -# Synchronous Example -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -if res.workflow_run_model is not None: - # handle response - pass -``` - -
- -The same SDK client can also be used to make asychronous requests by importing asyncio. -```python -# Asynchronous Example -import asyncio -from comfydeploy import ComfyDeploy - -async def main(): - s = ComfyDeploy( - bearer="", - ) - res = await s.run.get_async(run_id="58ccc65b-c928-4154-952e-30c048b8c2b5") - if res.workflow_run_model is not None: - # handle response - pass - -asyncio.run(main()) -``` - - - -## Available Resources and Operations - -### [run](docs/sdks/run/README.md) - -* [get](docs/sdks/run/README.md#get) - Get Run -* [~~queue~~](docs/sdks/run/README.md#queue) - Queue a workflow :warning: **Deprecated** -* [~~sync~~](docs/sdks/run/README.md#sync) - Run a workflow in sync :warning: **Deprecated** -* [~~stream~~](docs/sdks/run/README.md#stream) - Run a workflow in stream :warning: **Deprecated** -* [cancel_run_run_run_id_cancel_post](docs/sdks/run/README.md#cancel_run_run_run_id_cancel_post) - Cancel Run - -### [run.deployment](docs/sdks/deployment/README.md) - -* [queue](docs/sdks/deployment/README.md#queue) - Deployment - Queue -* [sync](docs/sdks/deployment/README.md#sync) - Deployment - Sync -* [stream](docs/sdks/deployment/README.md#stream) - Deployment - Stream - -### [run.workflow](docs/sdks/workflow/README.md) - -* [queue](docs/sdks/workflow/README.md#queue) - Workflow - Queue -* [sync](docs/sdks/workflow/README.md#sync) - Workflow - Sync -* [stream](docs/sdks/workflow/README.md#stream) - Workflow - Stream - -### [session](docs/sdks/session/README.md) - -* [get](docs/sdks/session/README.md#get) - Get Session -* [cancel](docs/sdks/session/README.md#cancel) - Delete Session -* [list](docs/sdks/session/README.md#list) - Get Machine Sessions -* [increase_timeout_session_increase_timeout_post](docs/sdks/session/README.md#increase_timeout_session_increase_timeout_post) - Increase Timeout -* [create](docs/sdks/session/README.md#create) - Create Session - -### [deployments](docs/sdks/deployments/README.md) - -* [create](docs/sdks/deployments/README.md#create) - Create Deployment -* [list](docs/sdks/deployments/README.md#list) - Get Deployments - -### [file](docs/sdks/file/README.md) - -* [upload](docs/sdks/file/README.md#upload) - Upload File -* [create_folder_assets_folder_post](docs/sdks/file/README.md#create_folder_assets_folder_post) - Create Folder -* [list_assets_assets_get](docs/sdks/file/README.md#list_assets_assets_get) - List Assets -* [get_asset_assets_asset_id_get](docs/sdks/file/README.md#get_asset_assets_asset_id_get) - Get Asset -* [delete_asset_assets_asset_id_delete](docs/sdks/file/README.md#delete_asset_assets_asset_id_delete) - Delete Asset -* [upload_asset_file_assets_upload_post](docs/sdks/file/README.md#upload_asset_file_assets_upload_post) - Upload Asset File - -### [models](docs/sdks/models/README.md) - -* [public_models_models_get](docs/sdks/models/README.md#public_models_models_get) - Public Models - -### [search](docs/sdks/search/README.md) - -* [search_search_model_get](docs/sdks/search/README.md#search_search_model_get) - Search - - - -## Error Handling - -Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an error. If Error objects are specified in your OpenAPI Spec, the SDK will raise the appropriate Error type. - -| Error Object | Status Code | Content Type | -| -------------------------- | -------------------------- | -------------------------- | -| errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | - -### Example - -```python -from comfydeploy import ComfyDeploy -from comfydeploy.models import errors - -s = ComfyDeploy( - bearer="", -) - -res = None -try: - res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -except errors.HTTPValidationError as e: - # handle exception - raise(e) -except errors.SDKError as e: - # handle exception - raise(e) - -if res.workflow_run_model is not None: - # handle response - pass - -``` - - - -## Server Selection - -### Select Server by Index - -You can override the default server globally by passing a server index to the `server_idx: int` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers: - -| # | Server | Variables | -| - | ------ | --------- | -| 0 | `https://api.comfydeploy.com/api` | None | -| 1 | `https://staging.api.comfydeploy.com/api` | None | -| 2 | `http://localhost:3011/api` | None | - -#### Example - -```python -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - server_idx=2, - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -if res.workflow_run_model is not None: - # handle response - pass - -``` - - -### Override Server URL Per-Client - -The default server can also be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example: -```python -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - server_url="https://api.comfydeploy.com/api", - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -if res.workflow_run_model is not None: - # handle response - pass - -``` - - - -## Custom HTTP Client - -The Python SDK makes API calls using the [httpx](https://www.python-httpx.org/) HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with your own HTTP client instance. -Depending on whether you are using the sync or async version of the SDK, you can pass an instance of `HttpClient` or `AsyncHttpClient` respectively, which are Protocol's ensuring that the client has the necessary methods to make API calls. -This allows you to wrap the client with your own custom logic, such as adding custom headers, logging, or error handling, or you can just pass an instance of `httpx.Client` or `httpx.AsyncClient` directly. - -For example, you could specify a header for every request that this sdk makes as follows: -```python -from comfydeploy import ComfyDeploy -import httpx - -http_client = httpx.Client(headers={"x-custom-header": "someValue"}) -s = ComfyDeploy(client=http_client) -``` - -or you could wrap the client with your own custom logic: -```python -from comfydeploy import ComfyDeploy -from comfydeploy.httpclient import AsyncHttpClient -import httpx - -class CustomClient(AsyncHttpClient): - client: AsyncHttpClient - - def __init__(self, client: AsyncHttpClient): - self.client = client - - async def send( - self, - request: httpx.Request, - *, - stream: bool = False, - auth: Union[ - httpx._types.AuthTypes, httpx._client.UseClientDefault, None - ] = httpx.USE_CLIENT_DEFAULT, - follow_redirects: Union[ - bool, httpx._client.UseClientDefault - ] = httpx.USE_CLIENT_DEFAULT, - ) -> httpx.Response: - request.headers["Client-Level-Header"] = "added by client" - - return await self.client.send( - request, stream=stream, auth=auth, follow_redirects=follow_redirects - ) - - def build_request( - self, - method: str, - url: httpx._types.URLTypes, - *, - content: Optional[httpx._types.RequestContent] = None, - data: Optional[httpx._types.RequestData] = None, - files: Optional[httpx._types.RequestFiles] = None, - json: Optional[Any] = None, - params: Optional[httpx._types.QueryParamTypes] = None, - headers: Optional[httpx._types.HeaderTypes] = None, - cookies: Optional[httpx._types.CookieTypes] = None, - timeout: Union[ - httpx._types.TimeoutTypes, httpx._client.UseClientDefault - ] = httpx.USE_CLIENT_DEFAULT, - extensions: Optional[httpx._types.RequestExtensions] = None, - ) -> httpx.Request: - return self.client.build_request( - method, - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - extensions=extensions, - ) - -s = ComfyDeploy(async_client=CustomClient(httpx.AsyncClient())) -``` - - - -## Authentication - -### Per-Client Security Schemes - -This SDK supports the following security scheme globally: - -| Name | Type | Scheme | -| ----------- | ----------- | ----------- | -| `bearer` | http | HTTP Bearer | - -To authenticate with the API the `bearer` parameter must be set when initializing the SDK client instance. For example: -```python -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -if res.workflow_run_model is not None: - # handle response - pass - -``` - - - -## Retries - -Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK. - -To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call: -```python -from comfydeploy import ComfyDeploy -from comfydeploy.utils import BackoffStrategy, RetryConfig - -s = ComfyDeploy( - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591", - RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) - -if res.workflow_run_model is not None: - # handle response - pass - -``` - -If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK: -```python -from comfydeploy import ComfyDeploy -from comfydeploy.utils import BackoffStrategy, RetryConfig - -s = ComfyDeploy( - retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False), - bearer="", -) - - -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") - -if res.workflow_run_model is not None: - # handle response - pass - -``` - - - -## Debugging - -To emit debug logs for SDK requests and responses you can pass a logger object directly into your SDK object. - -```python -from comfydeploy import ComfyDeploy -import logging - -logging.basicConfig(level=logging.DEBUG) -s = ComfyDeploy(debug_logger=logging.getLogger("comfydeploy")) -``` - - - -## IDE Support - -### PyCharm - -Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin. - -- [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/) - - - -## Server-sent event streaming - -[Server-sent events][mdn-sse] are used to stream content from certain -operations. These operations will expose the stream as [Generator][generator] that -can be consumed using a simple `for` loop. The loop will -terminate when the server no longer has any events to send and closes the -underlying connection. - -```python -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - bearer="", -) - - -res = s.run.stream(request={ - "model_id": "", - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, -}) - -if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) - -``` - -[mdn-sse]: https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events -[generator]: https://wiki.python.org/moin/Generators - - - -## File uploads - -Certain SDK methods accept file objects as part of a request body or multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request. - -> [!TIP] -> -> For endpoints that handle file uploads bytes arrays can also be used. However, using streams is recommended for large files. -> - -```python -from comfydeploy import ComfyDeploy - -s = ComfyDeploy( - bearer="", -) - - -res = s.file.upload(request={ - "file": { - "file_name": "your_file_here", - "content": open("", "rb"), - }, -}) - -if res.file_upload_response is not None: - # handle response - pass - -``` - - - - -# Development - -## Maturity - -This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage -to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally -looking for the latest version. - -## Contributions - -While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. -We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release. - -### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks) +undefined \ No newline at end of file diff --git a/RELEASES.md b/RELEASES.md index c76b9a4..f40a100 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -138,4 +138,14 @@ Based on: ### Generated - [python v0.4.1] . ### Releases -- [PyPI v0.4.1] https://pypi.org/project/comfydeploy/0.4.1 - . \ No newline at end of file +- [PyPI v0.4.1] https://pypi.org/project/comfydeploy/0.4.1 - . + +## 2025-01-10 04:53:46 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.467.0 (2.492.3) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.6.0] . +### Releases +- [PyPI v0.6.0] https://pypi.org/project/comfydeploy/0.6.0 - . \ No newline at end of file diff --git a/USAGE.md b/USAGE.md index 953262a..93569eb 100644 --- a/USAGE.md +++ b/USAGE.md @@ -3,16 +3,16 @@ # Synchronous Example from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.get(run_id="b888f774-3e7c-4135-a18c-6b985523c4bc") -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") + assert res.workflow_run_model is not None -if res.workflow_run_model is not None: - # handle response - pass + # Handle response + print(res.workflow_run_model) ```
@@ -24,13 +24,16 @@ import asyncio from comfydeploy import ComfyDeploy async def main(): - s = ComfyDeploy( + async with ComfyDeploy( bearer="", - ) - res = await s.run.get_async(run_id="58ccc65b-c928-4154-952e-30c048b8c2b5") - if res.workflow_run_model is not None: - # handle response - pass + ) as comfy_deploy: + + res = await comfy_deploy.run.get_async(run_id="b888f774-3e7c-4135-a18c-6b985523c4bc") + + assert res.workflow_run_model is not None + + # Handle response + print(res.workflow_run_model) asyncio.run(main()) ``` diff --git a/codeSamples.yaml b/codeSamples.yaml index ee5c1be..a8ea435 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -3,74 +3,44 @@ info: title: CodeSamples overlay for python target version: 0.0.0 actions: - - target: $["paths"]["/run/deployment/sync"]["post"] - update: - x-codeSamples: - - lang: python - label: sync_deployment_run_run_deployment_sync_post - source: |- - from comfydeploy import ComfyDeploy - - s = ComfyDeploy( - bearer="", - ) - - - res = s.run.deployment.sync(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "deployment_id": "12345678-1234-5678-1234-567812345678", - }) - - if res.response_sync_deployment_run_run_deployment_sync_post is not None: - # handle response - pass - - target: $["paths"]["/deployment"]["post"] + - target: $["paths"]["/assets"]["get"] update: x-codeSamples: - lang: python - label: create_deployment_deployment_post + label: list_assets_assets_get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.file.list_assets_assets_get() - res = s.deployments.create(request={ - "workflow_version_id": "", - "workflow_id": "", - "machine_id": "", - "environment": "", - }) + assert res.response_list_assets_assets_get is not None - if res.deployment_model is not None: - # handle response - pass - - target: $["paths"]["/deployments"]["get"] + # Handle response + print(res.response_list_assets_assets_get) + - target: $["paths"]["/assets/folder"]["post"] update: x-codeSamples: - lang: python - label: get_deployments_deployments_get + label: create_folder_assets_folder_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.file.create_folder_assets_folder_post(request={ + "name": "", + }) - res = s.deployments.list() + assert res.asset_response is not None - if res.response_get_deployments_deployments_get is not None: - # handle response - pass + # Handle response + print(res.asset_response) - target: $["paths"]["/assets/upload"]["post"] update: x-codeSamples: @@ -79,39 +49,39 @@ actions: source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.file.upload_asset_file_assets_upload_post(body_upload_asset_file_assets_upload_post={ + "file": { + "file_name": "example.file", + "content": open("example.file", "rb"), + }, + }) - res = s.file.upload_asset_file_assets_upload_post(body_upload_asset_file_assets_upload_post={ - "file": { - "file_name": "your_file_here", - "content": open("", "rb"), - }, - }) + assert res.asset_response is not None - if res.asset_response is not None: - # handle response - pass - - target: $["paths"]["/models"]["get"] + # Handle response + print(res.asset_response) + - target: $["paths"]["/assets/{asset_id}"]["delete"] update: x-codeSamples: - lang: python - label: public_models_models_get + label: delete_asset_assets__asset_id__delete source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.file.delete_asset_assets_asset_id_delete(asset_id="") - res = s.models.public_models_models_get() + assert res.any is not None - if res.response_public_models_models_get is not None: - # handle response - pass + # Handle response + print(res.any) - target: $["paths"]["/assets/{asset_id}"]["get"] update: x-codeSamples: @@ -120,461 +90,426 @@ actions: source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.file.get_asset_assets_asset_id_get(asset_id="") - res = s.file.get_asset_assets_asset_id_get(asset_id="") + assert res.asset_response is not None - if res.asset_response is not None: - # handle response - pass - - target: $["paths"]["/search/model"]["get"] + # Handle response + print(res.asset_response) + - target: $["paths"]["/deployment"]["post"] update: x-codeSamples: - lang: python - label: search_search_model_get + label: create_deployment_deployment_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.deployments.create(request={ + "workflow_version_id": "", + "workflow_id": "", + "machine_id": "", + "environment": "", + }) - res = s.search.search_search_model_get(query="") + assert res.deployment_model is not None - if res.search_models_response is not None: - # handle response - pass - - target: $["paths"]["/run/deployment/queue"]["post"] + # Handle response + print(res.deployment_model) + - target: $["paths"]["/deployments"]["get"] update: x-codeSamples: - lang: python - label: queue_deployment_run_run_deployment_queue_post + label: get_deployments_deployments_get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.deployment.queue(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "deployment_id": "12345678-1234-5678-1234-567812345678", - }) - - if res.create_run_response is not None: - # handle response - pass - - target: $["paths"]["/run/deployment/stream"]["post"] - update: - x-codeSamples: - - lang: python - label: create_run_deployment_stream_run_deployment_stream_post - source: |- - from comfydeploy import ComfyDeploy + ) as comfy_deploy: - s = ComfyDeploy( - bearer="", - ) - - - res = s.run.deployment.stream(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "deployment_id": "12345678-1234-5678-1234-567812345678", - }) - - if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) - - target: $["paths"]["/run/workflow/sync"]["post"] + res = comfy_deploy.deployments.list() + + assert res.response_get_deployments_deployments_get is not None + + # Handle response + print(res.response_get_deployments_deployments_get) + - target: $["paths"]["/file/upload"]["post"] update: x-codeSamples: - lang: python - label: sync_workflow_run_run_workflow_sync_post + label: upload_file_file_upload_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.workflow.sync(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - }) - - if res.response_sync_workflow_run_run_workflow_sync_post is not None: - # handle response - pass - - target: $["paths"]["/session/increase-timeout"]["post"] + ) as comfy_deploy: + + res = comfy_deploy.file.upload(request={ + "file": { + "file_name": "example.file", + "content": open("example.file", "rb"), + }, + }) + + assert res.file_upload_response is not None + + # Handle response + print(res.file_upload_response) + - target: $["paths"]["/models"]["get"] update: x-codeSamples: - lang: python - label: increase_timeout_session_increase_timeout_post + label: public_models_models_get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.models.public_models_models_get() - res = s.session.increase_timeout_session_increase_timeout_post(request={ - "machine_id": "", - "session_id": "d712cbb0-db3d-45d5-a8f9-ef1b452fb427", - "timeout": 36199, - "gpu": "", - }) + assert res.response_public_models_models_get is not None - if res.any is not None: - # handle response - pass - - target: $["paths"]["/assets/folder"]["post"] + # Handle response + print(res.response_public_models_models_get) + - target: $["paths"]["/run/deployment/queue"]["post"] update: x-codeSamples: - lang: python - label: create_folder_assets_folder_post + label: queue_deployment_run_run_deployment_queue_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.run.deployment.queue(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + }) - res = s.file.create_folder_assets_folder_post(request={ - "name": "", - }) + assert res.create_run_response is not None - if res.asset_response is not None: - # handle response - pass - - target: $["paths"]["/assets"]["get"] + # Handle response + print(res.create_run_response) + - target: $["paths"]["/run/deployment/stream"]["post"] update: x-codeSamples: - lang: python - label: list_assets_assets_get + label: create_run_deployment_stream_run_deployment_stream_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.file.list_assets_assets_get() - - if res.response_list_assets_assets_get is not None: - # handle response - pass - - target: $["paths"]["/run/{run_id}"]["get"] + ) as comfy_deploy: + + res = comfy_deploy.run.deployment.stream(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + }) + + assert res.run_stream is not None + + with res.run_stream as event_stream: + for event in event_stream: + # handle event + print(event, flush=True) + - target: $["paths"]["/run/deployment/sync"]["post"] update: x-codeSamples: - lang: python - label: get_run_run__run_id__get + label: sync_deployment_run_run_deployment_sync_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.run.deployment.sync(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + }) - res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") + assert res.response_sync_deployment_run_run_deployment_sync_post is not None - if res.workflow_run_model is not None: - # handle response - pass - - target: $["paths"]["/run/stream"]["post"] + # Handle response + print(res.response_sync_deployment_run_run_deployment_sync_post) + - target: $["paths"]["/run/workflow/queue"]["post"] update: x-codeSamples: - lang: python - label: create_run_stream_run_stream_post + label: queue_workflow_run_run_workflow_queue_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.stream(request={ - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, - "model_id": "", - }) - - if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) - - target: $["paths"]["/session/{session_id}"]["delete"] + ) as comfy_deploy: + + res = comfy_deploy.run.workflow.queue(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + }) + + assert res.create_run_response is not None + + # Handle response + print(res.create_run_response) + - target: $["paths"]["/run/workflow/stream"]["post"] update: x-codeSamples: - lang: python - label: delete_session_session__session_id__delete + label: create_run_workflow_stream_run_workflow_stream_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.session.cancel(session_id="") - - if res.delete_session_response is not None: - # handle response - pass - - target: $["paths"]["/sessions"]["get"] + ) as comfy_deploy: + + res = comfy_deploy.run.workflow.stream(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + }) + + assert res.run_stream is not None + + with res.run_stream as event_stream: + for event in event_stream: + # handle event + print(event, flush=True) + - target: $["paths"]["/run/workflow/sync"]["post"] update: x-codeSamples: - lang: python - label: get_machine_sessions_sessions_get + label: sync_workflow_run_run_workflow_sync_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.session.list(machine_id="") - - if res.response_get_machine_sessions_sessions_get is not None: - # handle response - pass - - target: $["paths"]["/run/queue"]["post"] + ) as comfy_deploy: + + res = comfy_deploy.run.workflow.sync(request={ + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + }) + + assert res.response_sync_workflow_run_run_workflow_sync_post is not None + + # Handle response + print(res.response_sync_workflow_run_run_workflow_sync_post) + - target: $["paths"]["/run/{run_id}"]["get"] update: x-codeSamples: - lang: python - label: create_run_queue_run_queue_post + label: get_run_run__run_id__get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.queue(request={ - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, - "workflow_version_id": "a3ae2c73-d11b-402e-81da-06d33c2a9088", - }) - - if res.create_run_response is not None: - # handle response - pass - - target: $["paths"]["/run/sync"]["post"] + ) as comfy_deploy: + + res = comfy_deploy.run.get(run_id="b888f774-3e7c-4135-a18c-6b985523c4bc") + + assert res.workflow_run_model is not None + + # Handle response + print(res.workflow_run_model) + - target: $["paths"]["/run/{run_id}/cancel"]["post"] update: x-codeSamples: - lang: python - label: create_run_sync_run_sync_post + label: cancel_run_run__run_id__cancel_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.run.cancel_run_run_run_id_cancel_post(run_id="", cancel_function_body={ + "function_id": "", + }) - res = s.run.sync(request={ - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, - "model_id": "", - }) + assert res.any is not None - if res.response_create_run_sync_run_sync_post is not None: - # handle response - pass - - target: $["paths"]["/run/{run_id}/cancel"]["post"] + # Handle response + print(res.any) + - target: $["paths"]["/search/model"]["get"] update: x-codeSamples: - lang: python - label: cancel_run_run__run_id__cancel_post + label: search_search_model_get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.search.search_search_model_get(query="") - res = s.run.cancel_run_run_run_id_cancel_post(run_id="", cancel_function_body={ - "function_id": "", - }) + assert res.search_models_response is not None - if res.any is not None: - # handle response - pass - - target: $["paths"]["/run/workflow/queue"]["post"] + # Handle response + print(res.search_models_response) + - target: $["paths"]["/session"]["post"] update: x-codeSamples: - lang: python - label: queue_workflow_run_run_workflow_queue_post + label: create_session_session_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.workflow.queue(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - }) - - if res.create_run_response is not None: - # handle response - pass - - target: $["paths"]["/run/workflow/stream"]["post"] + ) as comfy_deploy: + + res = comfy_deploy.session.create(request={ + "machine_id": "", + }) + + assert res.create_session_response is not None + + # Handle response + print(res.create_session_response) + - target: $["paths"]["/session/increase-timeout"]["post"] update: x-codeSamples: - lang: python - label: create_run_workflow_stream_run_workflow_stream_post + label: increase_timeout_session_increase_timeout_post source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) - - - res = s.run.workflow.stream(request={ - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - }) - - if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) - - target: $["paths"]["/session/{session_id}"]["get"] + ) as comfy_deploy: + + res = comfy_deploy.session.increase_timeout_session_increase_timeout_post(request={ + "machine_id": "", + "session_id": "d1cbd355-89fb-45f4-9778-6137629fc60d", + "timeout": 465465, + "gpu": "", + }) + + assert res.any is not None + + # Handle response + print(res.any) + - target: $["paths"]["/session/{session_id}"]["delete"] update: x-codeSamples: - lang: python - label: get_session_session__session_id__get + label: delete_session_session__session_id__delete source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.session.cancel(session_id="") - res = s.session.get(session_id="") + assert res.delete_session_response is not None - if res.session is not None: - # handle response - pass - - target: $["paths"]["/session"]["post"] + # Handle response + print(res.delete_session_response) + - target: $["paths"]["/session/{session_id}"]["get"] update: x-codeSamples: - lang: python - label: create_session_session_post + label: get_session_session__session_id__get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.session.get(session_id="") - res = s.session.create(request={ - "machine_id": "", - }) + assert res.session is not None - if res.create_session_response is not None: - # handle response - pass - - target: $["paths"]["/file/upload"]["post"] + # Handle response + print(res.session) + - target: $["paths"]["/sessions"]["get"] update: x-codeSamples: - lang: python - label: upload_file_file_upload_post + label: get_machine_sessions_sessions_get source: |- from comfydeploy import ComfyDeploy - s = ComfyDeploy( + with ComfyDeploy( bearer="", - ) + ) as comfy_deploy: + res = comfy_deploy.session.list(machine_id="") - res = s.file.upload(request={ - "file": { - "file_name": "your_file_here", - "content": open("", "rb"), - }, - }) + assert res.response_get_machine_sessions_sessions_get is not None - if res.file_upload_response is not None: - # handle response - pass - - target: $["paths"]["/assets/{asset_id}"]["delete"] + # Handle response + print(res.response_get_machine_sessions_sessions_get) + - target: $["paths"]["{$request.body#/webhook}"]["post"] update: x-codeSamples: - lang: python - label: delete_asset_assets__asset_id__delete + label: run_update__request_body__webhook__post source: |- from comfydeploy import ComfyDeploy + from comfydeploy.models import components - s = ComfyDeploy( - bearer="", - ) + with ComfyDeploy() as comfy_deploy: + res = comfy_deploy.callbacks.run_update_request_body_webhook_post(request={ + "run_id": "", + "status": components.WorkflowRunStatus.SUCCESS, + "live_status": "", + }) - res = s.file.delete_asset_assets_asset_id_delete(asset_id="") + assert res.workflow_run_webhook_response is not None - if res.any is not None: - # handle response - pass + # Handle response + print(res.workflow_run_webhook_response) diff --git a/docs/models/errors/httpvalidationerror.md b/docs/models/errors/httpvalidationerror.md index 1812a6a..5cf28a6 100644 --- a/docs/models/errors/httpvalidationerror.md +++ b/docs/models/errors/httpvalidationerror.md @@ -1,7 +1,5 @@ # HTTPValidationError -Validation Error - ## Fields diff --git a/docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md b/docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md index 7e52f91..d9d13d7 100644 --- a/docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md +++ b/docs/models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | -| `run_stream` | *Optional[Union[Generator[components.RunStream, None, None], AsyncGenerator[components.RunStream, None]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `run_stream` | *Optional[Union[eventstreaming.EventStream[components.RunStream], eventstreaming.EventStreamAsync[components.RunStream]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file diff --git a/docs/models/operations/createrunstreamrunstreampostresponse.md b/docs/models/operations/createrunstreamrunstreampostresponse.md index f32787e..c529e50 100644 --- a/docs/models/operations/createrunstreamrunstreampostresponse.md +++ b/docs/models/operations/createrunstreamrunstreampostresponse.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | -| `run_stream` | *Optional[Union[Generator[components.RunStream, None, None], AsyncGenerator[components.RunStream, None]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `run_stream` | *Optional[Union[eventstreaming.EventStream[components.RunStream], eventstreaming.EventStreamAsync[components.RunStream]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file diff --git a/docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md b/docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md index bd22ec6..b545764 100644 --- a/docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md +++ b/docs/models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | -| `run_stream` | *Optional[Union[Generator[components.RunStream, None, None], AsyncGenerator[components.RunStream, None]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A | +| `run_stream` | *Optional[Union[eventstreaming.EventStream[components.RunStream], eventstreaming.EventStreamAsync[components.RunStream]]]* | :heavy_minus_sign: | Stream of workflow run events | \ No newline at end of file diff --git a/docs/sdks/comfydeploy/README.md b/docs/sdks/comfydeploy/README.md index 492fb2d..f8de388 100644 --- a/docs/sdks/comfydeploy/README.md +++ b/docs/sdks/comfydeploy/README.md @@ -1,6 +1,5 @@ # ComfyDeploy SDK - ## Overview ComfyDeploy API: @@ -21,4 +20,3 @@ To authenticate your requests, include your API key in the `Authorization` heade ### Available Operations - diff --git a/docs/sdks/deployment/README.md b/docs/sdks/deployment/README.md index a1cb78c..96f6418 100644 --- a/docs/sdks/deployment/README.md +++ b/docs/sdks/deployment/README.md @@ -1,6 +1,8 @@ # Deployment (*run.deployment*) +## Overview + ### Available Operations * [queue](#queue) - Deployment - Queue @@ -16,25 +18,23 @@ Create a new deployment run with the given parameters. ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.deployment.queue(request={ + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) -res = s.run.deployment.queue(request={ - "deployment_id": "12345678-1234-5678-1234-567812345678", - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) + assert res.create_run_response is not None -if res.create_run_response is not None: - # handle response - pass + # Handle response + print(res.create_run_response) ``` @@ -45,16 +45,16 @@ if res.create_run_response is not None: | `request` | [components.DeploymentRunRequest](../../models/components/deploymentrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.QueueDeploymentRunRunDeploymentQueuePostResponse](../../models/operations/queuedeploymentrunrundeploymentqueuepostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## sync @@ -65,25 +65,23 @@ Create a new deployment run with the given parameters. ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.deployment.sync(request={ + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) -res = s.run.deployment.sync(request={ - "deployment_id": "12345678-1234-5678-1234-567812345678", - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) + assert res.response_sync_deployment_run_run_deployment_sync_post is not None -if res.response_sync_deployment_run_run_deployment_sync_post is not None: - # handle response - pass + # Handle response + print(res.response_sync_deployment_run_run_deployment_sync_post) ``` @@ -94,16 +92,16 @@ if res.response_sync_deployment_run_run_deployment_sync_post is not None: | `request` | [components.DeploymentRunRequest](../../models/components/deploymentrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.SyncDeploymentRunRunDeploymentSyncPostResponse](../../models/operations/syncdeploymentrunrundeploymentsyncpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## stream @@ -114,26 +112,25 @@ Create a new deployment run with the given parameters. This function sets up the ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.deployment.stream(request={ + "deployment_id": "15e79589-12c9-453c-a41a-348fdd7de957", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) -res = s.run.deployment.stream(request={ - "deployment_id": "12345678-1234-5678-1234-567812345678", - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) + assert res.run_stream is not None -if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) + with res.run_stream as event_stream: + for event in event_stream: + # handle event + print(event, flush=True) ``` @@ -144,13 +141,13 @@ if res.run_stream is not None: | `request` | [components.DeploymentRunRequest](../../models/components/deploymentrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse](../../models/operations/createrundeploymentstreamrundeploymentstreampostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/deployments/README.md b/docs/sdks/deployments/README.md index beef053..1c53126 100644 --- a/docs/sdks/deployments/README.md +++ b/docs/sdks/deployments/README.md @@ -1,6 +1,8 @@ # Deployments (*deployments*) +## Overview + ### Available Operations * [create](#create) - Create Deployment @@ -15,21 +17,21 @@ Create Deployment ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.deployments.create(request={ + "workflow_version_id": "", + "workflow_id": "", + "machine_id": "", + "environment": "", + }) -res = s.deployments.create(request={ - "workflow_version_id": "", - "workflow_id": "", - "machine_id": "", - "environment": "", -}) + assert res.deployment_model is not None -if res.deployment_model is not None: - # handle response - pass + # Handle response + print(res.deployment_model) ``` @@ -40,16 +42,16 @@ if res.deployment_model is not None: | `request` | [components.DeploymentCreate](../../models/components/deploymentcreate.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateDeploymentDeploymentPostResponse](../../models/operations/createdeploymentdeploymentpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -60,16 +62,16 @@ Get Deployments ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.deployments.list() -res = s.deployments.list() + assert res.response_get_deployments_deployments_get is not None -if res.response_get_deployments_deployments_get is not None: - # handle response - pass + # Handle response + print(res.response_get_deployments_deployments_get) ``` @@ -80,13 +82,13 @@ if res.response_get_deployments_deployments_get is not None: | `environment` | [OptionalNullable[components.DeploymentEnvironment]](../../models/components/deploymentenvironment.md) | :heavy_minus_sign: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.GetDeploymentsDeploymentsGetResponse](../../models/operations/getdeploymentsdeploymentsgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/file/README.md b/docs/sdks/file/README.md index 89ae860..205bff8 100644 --- a/docs/sdks/file/README.md +++ b/docs/sdks/file/README.md @@ -1,13 +1,15 @@ # File (*file*) +## Overview + ### Available Operations * [upload](#upload) - Upload File * [create_folder_assets_folder_post](#create_folder_assets_folder_post) - Create Folder * [list_assets_assets_get](#list_assets_assets_get) - List Assets -* [get_asset_assets_asset_id_get](#get_asset_assets_asset_id_get) - Get Asset * [delete_asset_assets_asset_id_delete](#delete_asset_assets_asset_id_delete) - Delete Asset +* [get_asset_assets_asset_id_get](#get_asset_assets_asset_id_get) - Get Asset * [upload_asset_file_assets_upload_post](#upload_asset_file_assets_upload_post) - Upload Asset File ## upload @@ -19,21 +21,21 @@ Upload File ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.upload(request={ + "file": { + "file_name": "example.file", + "content": open("example.file", "rb"), + }, + }) -res = s.file.upload(request={ - "file": { - "file_name": "your_file_here", - "content": open("", "rb"), - }, -}) + assert res.file_upload_response is not None -if res.file_upload_response is not None: - # handle response - pass + # Handle response + print(res.file_upload_response) ``` @@ -44,16 +46,16 @@ if res.file_upload_response is not None: | `request` | [components.BodyUploadFileFileUploadPost](../../models/components/bodyuploadfilefileuploadpost.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.UploadFileFileUploadPostResponse](../../models/operations/uploadfilefileuploadpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## create_folder_assets_folder_post @@ -64,18 +66,18 @@ Create Folder ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.create_folder_assets_folder_post(request={ + "name": "", + }) -res = s.file.create_folder_assets_folder_post(request={ - "name": "", -}) + assert res.asset_response is not None -if res.asset_response is not None: - # handle response - pass + # Handle response + print(res.asset_response) ``` @@ -86,16 +88,16 @@ if res.asset_response is not None: | `request` | [components.CreateFolderRequest](../../models/components/createfolderrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateFolderAssetsFolderPostResponse](../../models/operations/createfolderassetsfolderpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list_assets_assets_get @@ -106,16 +108,16 @@ List Assets ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.list_assets_assets_get() -res = s.file.list_assets_assets_get() + assert res.response_list_assets_assets_get is not None -if res.response_list_assets_assets_get is not None: - # handle response - pass + # Handle response + print(res.response_list_assets_assets_get) ``` @@ -126,36 +128,36 @@ if res.response_list_assets_assets_get is not None: | `path` | *Optional[str]* | :heavy_minus_sign: | Folder path to list items from | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.ListAssetsAssetsGetResponse](../../models/operations/listassetsassetsgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | -## get_asset_assets_asset_id_get +## delete_asset_assets_asset_id_delete -Get Asset +Delete Asset ### Example Usage ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.delete_asset_assets_asset_id_delete(asset_id="") -res = s.file.get_asset_assets_asset_id_get(asset_id="") + assert res.any is not None -if res.asset_response is not None: - # handle response - pass + # Handle response + print(res.any) ``` @@ -166,36 +168,36 @@ if res.asset_response is not None: | `asset_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response -**[operations.GetAssetAssetsAssetIDGetResponse](../../models/operations/getassetassetsassetidgetresponse.md)** +**[operations.DeleteAssetAssetsAssetIDDeleteResponse](../../models/operations/deleteassetassetsassetiddeleteresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | -## delete_asset_assets_asset_id_delete +## get_asset_assets_asset_id_get -Delete Asset +Get Asset ### Example Usage ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.get_asset_assets_asset_id_get(asset_id="") -res = s.file.delete_asset_assets_asset_id_delete(asset_id="") + assert res.asset_response is not None -if res.any is not None: - # handle response - pass + # Handle response + print(res.asset_response) ``` @@ -206,16 +208,16 @@ if res.any is not None: | `asset_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response -**[operations.DeleteAssetAssetsAssetIDDeleteResponse](../../models/operations/deleteassetassetsassetiddeleteresponse.md)** +**[operations.GetAssetAssetsAssetIDGetResponse](../../models/operations/getassetassetsassetidgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## upload_asset_file_assets_upload_post @@ -226,21 +228,21 @@ Upload Asset File ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.file.upload_asset_file_assets_upload_post(body_upload_asset_file_assets_upload_post={ + "file": { + "file_name": "example.file", + "content": open("example.file", "rb"), + }, + }) -res = s.file.upload_asset_file_assets_upload_post(body_upload_asset_file_assets_upload_post={ - "file": { - "file_name": "your_file_here", - "content": open("", "rb"), - }, -}) + assert res.asset_response is not None -if res.asset_response is not None: - # handle response - pass + # Handle response + print(res.asset_response) ``` @@ -252,13 +254,13 @@ if res.asset_response is not None: | `parent_path` | *Optional[str]* | :heavy_minus_sign: | Parent folder path | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.UploadAssetFileAssetsUploadPostResponse](../../models/operations/uploadassetfileassetsuploadpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/models/README.md b/docs/sdks/models/README.md index d90060c..b156dc6 100644 --- a/docs/sdks/models/README.md +++ b/docs/sdks/models/README.md @@ -1,6 +1,8 @@ # Models (*models*) +## Overview + ### Available Operations * [public_models_models_get](#public_models_models_get) - Public Models @@ -14,16 +16,16 @@ Return a list of available public models with their input/output specifications ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.models.public_models_models_get() -res = s.models.public_models_models_get() + assert res.response_public_models_models_get is not None -if res.response_public_models_models_get is not None: - # handle response - pass + # Handle response + print(res.response_public_models_models_get) ``` @@ -33,12 +35,12 @@ if res.response_public_models_models_get is not None: | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.PublicModelsModelsGetResponse](../../models/operations/publicmodelsmodelsgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/run/README.md b/docs/sdks/run/README.md index fde5f49..560be8b 100644 --- a/docs/sdks/run/README.md +++ b/docs/sdks/run/README.md @@ -1,6 +1,8 @@ # Run (*run*) +## Overview + ### Available Operations * [get](#get) - Get Run @@ -18,16 +20,16 @@ Get Run ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.get(run_id="b888f774-3e7c-4135-a18c-6b985523c4bc") -res = s.run.get(run_id="b18d8d81-fd7b-4764-a31e-475cb1f36591") + assert res.workflow_run_model is not None -if res.workflow_run_model is not None: - # handle response - pass + # Handle response + print(res.workflow_run_model) ``` @@ -38,16 +40,16 @@ if res.workflow_run_model is not None: | `run_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.GetRunRunRunIDGetResponse](../../models/operations/getrunrunrunidgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## ~~queue~~ @@ -60,23 +62,23 @@ Create a new workflow run with the given parameters. This function sets up the r ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.queue(request={ + "workflow_version_id": "3ec31b24-d0d3-4298-9ffa-c74003017b70", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook_intermediate_status": True, + }) -res = s.run.queue(request={ - "workflow_version_id": "a3ae2c73-d11b-402e-81da-06d33c2a9088", - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, -}) + assert res.create_run_response is not None -if res.create_run_response is not None: - # handle response - pass + # Handle response + print(res.create_run_response) ``` @@ -87,16 +89,16 @@ if res.create_run_response is not None: | `request` | [operations.CreateRunQueueRunQueuePostData](../../models/operations/createrunqueuerunqueuepostdata.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateRunQueueRunQueuePostResponse](../../models/operations/createrunqueuerunqueuepostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## ~~sync~~ @@ -109,23 +111,23 @@ Create a new workflow run with the given parameters. This function sets up the r ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.sync(request={ + "model_id": "", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook_intermediate_status": True, + }) -res = s.run.sync(request={ - "model_id": "", - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, -}) + assert res.response_create_run_sync_run_sync_post is not None -if res.response_create_run_sync_run_sync_post is not None: - # handle response - pass + # Handle response + print(res.response_create_run_sync_run_sync_post) ``` @@ -136,16 +138,16 @@ if res.response_create_run_sync_run_sync_post is not None: | `request` | [operations.CreateRunSyncRunSyncPostData](../../models/operations/createrunsyncrunsyncpostdata.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateRunSyncRunSyncPostResponse](../../models/operations/createrunsyncrunsyncpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## ~~stream~~ @@ -158,24 +160,25 @@ Create a new workflow run with the given parameters. This function sets up the r ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.stream(request={ + "model_id": "", + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook_intermediate_status": True, + }) -res = s.run.stream(request={ - "model_id": "", - "inputs": { - "prompt": "A beautiful landscape", - "seed": 42, - }, - "webhook_intermediate_status": True, -}) + assert res.run_stream is not None -if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) + with res.run_stream as event_stream: + for event in event_stream: + # handle event + print(event, flush=True) ``` @@ -186,16 +189,16 @@ if res.run_stream is not None: | `request` | [operations.CreateRunStreamRunStreamPostData](../../models/operations/createrunstreamrunstreampostdata.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateRunStreamRunStreamPostResponse](../../models/operations/createrunstreamrunstreampostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## cancel_run_run_run_id_cancel_post @@ -206,18 +209,18 @@ Cancel Run ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.cancel_run_run_run_id_cancel_post(run_id="", cancel_function_body={ + "function_id": "", + }) -res = s.run.cancel_run_run_run_id_cancel_post(run_id="", cancel_function_body={ - "function_id": "", -}) + assert res.any is not None -if res.any is not None: - # handle response - pass + # Handle response + print(res.any) ``` @@ -229,13 +232,13 @@ if res.any is not None: | `cancel_function_body` | [components.CancelFunctionBody](../../models/components/cancelfunctionbody.md) | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CancelRunRunRunIDCancelPostResponse](../../models/operations/cancelrunrunrunidcancelpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index ba6f80f..e280fd7 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -1,6 +1,8 @@ # Search (*search*) +## Overview + ### Available Operations * [search_search_model_get](#search_search_model_get) - Search @@ -14,16 +16,16 @@ Search ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.search.search_search_model_get(query="") -res = s.search.search_search_model_get(query="") + assert res.search_models_response is not None -if res.search_models_response is not None: - # handle response - pass + # Handle response + print(res.search_models_response) ``` @@ -35,13 +37,13 @@ if res.search_models_response is not None: | `provider` | *Optional[str]* | :heavy_minus_sign: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.SearchSearchModelGetResponse](../../models/operations/searchsearchmodelgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/session/README.md b/docs/sdks/session/README.md index d8b585e..5193308 100644 --- a/docs/sdks/session/README.md +++ b/docs/sdks/session/README.md @@ -1,6 +1,8 @@ # Session (*session*) +## Overview + ### Available Operations * [get](#get) - Get Session @@ -18,16 +20,16 @@ Get Session ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.session.get(session_id="") -res = s.session.get(session_id="") + assert res.session is not None -if res.session is not None: - # handle response - pass + # Handle response + print(res.session) ``` @@ -38,16 +40,16 @@ if res.session is not None: | `session_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.GetSessionSessionSessionIDGetResponse](../../models/operations/getsessionsessionsessionidgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## cancel @@ -58,16 +60,16 @@ Delete Session ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.session.cancel(session_id="") -res = s.session.cancel(session_id="") + assert res.delete_session_response is not None -if res.delete_session_response is not None: - # handle response - pass + # Handle response + print(res.delete_session_response) ``` @@ -78,16 +80,16 @@ if res.delete_session_response is not None: | `session_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.DeleteSessionSessionSessionIDDeleteResponse](../../models/operations/deletesessionsessionsessioniddeleteresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## list @@ -98,16 +100,16 @@ Get Machine Sessions ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.session.list(machine_id="") -res = s.session.list(machine_id="") + assert res.response_get_machine_sessions_sessions_get is not None -if res.response_get_machine_sessions_sessions_get is not None: - # handle response - pass + # Handle response + print(res.response_get_machine_sessions_sessions_get) ``` @@ -118,16 +120,16 @@ if res.response_get_machine_sessions_sessions_get is not None: | `machine_id` | *str* | :heavy_check_mark: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.GetMachineSessionsSessionsGetResponse](../../models/operations/getmachinesessionssessionsgetresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## increase_timeout_session_increase_timeout_post @@ -138,21 +140,21 @@ Increase Timeout ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.session.increase_timeout_session_increase_timeout_post(request={ + "machine_id": "", + "session_id": "d1cbd355-89fb-45f4-9778-6137629fc60d", + "timeout": 465465, + "gpu": "", + }) -res = s.session.increase_timeout_session_increase_timeout_post(request={ - "machine_id": "", - "session_id": "d712cbb0-db3d-45d5-a8f9-ef1b452fb427", - "timeout": 36199, - "gpu": "", -}) + assert res.any is not None -if res.any is not None: - # handle response - pass + # Handle response + print(res.any) ``` @@ -163,16 +165,16 @@ if res.any is not None: | `request` | [components.IncreaseTimeoutBody](../../models/components/increasetimeoutbody.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse](../../models/operations/increasetimeoutsessionincreasetimeoutpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## create @@ -183,18 +185,18 @@ Create Session ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.session.create(request={ + "machine_id": "", + }) -res = s.session.create(request={ - "machine_id": "", -}) + assert res.create_session_response is not None -if res.create_session_response is not None: - # handle response - pass + # Handle response + print(res.create_session_response) ``` @@ -205,13 +207,13 @@ if res.create_session_response is not None: | `request` | [components.CreateSessionBody](../../models/components/createsessionbody.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateSessionSessionPostResponse](../../models/operations/createsessionsessionpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/workflow/README.md b/docs/sdks/workflow/README.md index 3ca55fd..31fdc24 100644 --- a/docs/sdks/workflow/README.md +++ b/docs/sdks/workflow/README.md @@ -1,6 +1,8 @@ # Workflow (*run.workflow*) +## Overview + ### Available Operations * [queue](#queue) - Workflow - Queue @@ -16,26 +18,24 @@ Create a new workflow run with the given parameters. ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.workflow.queue(request={ + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) -res = s.run.workflow.queue(request={ - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) + assert res.create_run_response is not None -if res.create_run_response is not None: - # handle response - pass + # Handle response + print(res.create_run_response) ``` @@ -46,16 +46,16 @@ if res.create_run_response is not None: | `request` | [components.WorkflowRunRequest](../../models/components/workflowrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.QueueWorkflowRunRunWorkflowQueuePostResponse](../../models/operations/queueworkflowrunrunworkflowqueuepostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## sync @@ -66,26 +66,24 @@ Create a new workflow run with the given parameters. ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) +) as comfy_deploy: + res = comfy_deploy.run.workflow.sync(request={ + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) -res = s.run.workflow.sync(request={ - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) + assert res.response_sync_workflow_run_run_workflow_sync_post is not None -if res.response_sync_workflow_run_run_workflow_sync_post is not None: - # handle response - pass + # Handle response + print(res.response_sync_workflow_run_run_workflow_sync_post) ``` @@ -96,16 +94,16 @@ if res.response_sync_workflow_run_run_workflow_sync_post is not None: | `request` | [components.WorkflowRunRequest](../../models/components/workflowrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.SyncWorkflowRunRunWorkflowSyncPostResponse](../../models/operations/syncworkflowrunrunworkflowsyncpostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## stream @@ -116,27 +114,26 @@ Create a new workflow run with the given parameters. This function sets up the r ```python from comfydeploy import ComfyDeploy -s = ComfyDeploy( +with ComfyDeploy( bearer="", -) - - -res = s.run.workflow.stream(request={ - "workflow_id": "12345678-1234-5678-1234-567812345678", - "workflow_api_json": {}, - "inputs": { - "num_inference_steps": 30, - "prompt": "A futuristic cityscape", - "seed": 123456, - }, - "webhook": "https://myapp.com/webhook", - "webhook_intermediate_status": True, -}) - -if res.run_stream is not None: - for event in res.run_stream: - # handle event - print(event, flush=True) +) as comfy_deploy: + + res = comfy_deploy.run.workflow.stream(request={ + "workflow_id": "12345678-1234-5678-1234-567812345678", + "workflow_api_json": {}, + "inputs": { + "prompt": "A beautiful landscape", + "seed": 42, + }, + "webhook": "https://myapp.com/webhook", + }) + + assert res.run_stream is not None + + with res.run_stream as event_stream: + for event in event_stream: + # handle event + print(event, flush=True) ``` @@ -147,13 +144,13 @@ if res.run_stream is not None: | `request` | [components.WorkflowRunRequest](../../models/components/workflowrunrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | - ### Response **[operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse](../../models/operations/createrunworkflowstreamrunworkflowstreampostresponse.md)** + ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | errors.HTTPValidationError | 422 | application/json | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 2516d78..b7e79fd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.0.0 and should not be changed by hand. [[package]] name = "annotated-types" @@ -6,20 +6,19 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} - [[package]] name = "anyio" version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, @@ -42,6 +41,7 @@ version = "3.2.3" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "astroid-3.2.3-py3-none-any.whl", hash = "sha256:3eae9ea67c11c858cdd2c91337d2e816bd019ac897ca07d7b346ac10105fceb3"}, {file = "astroid-3.2.3.tar.gz", hash = "sha256:7099b5a60985529d8d46858befa103b82d0d05a5a5e8b816b5303ed96075e1d9"}, @@ -56,6 +56,7 @@ version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, @@ -67,6 +68,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -78,6 +81,7 @@ version = "0.3.8" description = "serialize all of Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, @@ -93,6 +97,7 @@ version = "0.2.0" description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "eval_type_backport-0.2.0-py3-none-any.whl", hash = "sha256:ac2f73d30d40c5a30a80b8739a789d6bb5e49fdffa66d7912667e2015d9c9933"}, {file = "eval_type_backport-0.2.0.tar.gz", hash = "sha256:68796cfbc7371ebf923f03bdf7bef415f3ec098aeced24e054b253a0e78f7b37"}, @@ -107,6 +112,8 @@ version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -121,6 +128,7 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -132,6 +140,7 @@ version = "1.0.5" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, @@ -149,13 +158,14 @@ trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" -version = "0.27.0" +version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, - {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] [package.dependencies] @@ -163,13 +173,13 @@ anyio = "*" certifi = "*" httpcore = "==1.*" idna = "*" -sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" @@ -177,6 +187,7 @@ version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" +groups = ["main"] files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -188,6 +199,7 @@ version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, @@ -202,6 +214,7 @@ version = "1.0.6" description = "A more powerful JSONPath implementation in modern python" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "jsonpath-python-1.0.6.tar.gz", hash = "sha256:dd5be4a72d8a2995c3f583cf82bf3cd1a9544cfdabf2d22595b67aff07349666"}, {file = "jsonpath_python-1.0.6-py3-none-any.whl", hash = "sha256:1e3b78df579f5efc23565293612decee04214609208a2335884b3ee3f786b575"}, @@ -213,6 +226,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -220,47 +234,60 @@ files = [ [[package]] name = "mypy" -version = "1.10.1" +version = "1.14.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ - {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, - {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, - {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, - {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, - {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, - {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, - {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, - {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, - {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, - {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, - {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, - {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, - {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, - {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, - {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, - {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, - {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, - {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, - {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, + {file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"}, + {file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"}, + {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90716d8b2d1f4cd503309788e51366f07c56635a3309b0f6a32547eaaa36a64d"}, + {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae753f5c9fef278bcf12e1a564351764f2a6da579d4a81347e1d5a15819997b"}, + {file = "mypy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0fe0f5feaafcb04505bcf439e991c6d8f1bf8b15f12b05feeed96e9e7bf1427"}, + {file = "mypy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:7d54bd85b925e501c555a3227f3ec0cfc54ee8b6930bd6141ec872d1c572f81f"}, + {file = "mypy-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f995e511de847791c3b11ed90084a7a0aafdc074ab88c5a9711622fe4751138c"}, + {file = "mypy-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d64169ec3b8461311f8ce2fd2eb5d33e2d0f2c7b49116259c51d0d96edee48d1"}, + {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba24549de7b89b6381b91fbc068d798192b1b5201987070319889e93038967a8"}, + {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:183cf0a45457d28ff9d758730cd0210419ac27d4d3f285beda038c9083363b1f"}, + {file = "mypy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f2a0ecc86378f45347f586e4163d1769dd81c5a223d577fe351f26b179e148b1"}, + {file = "mypy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:ad3301ebebec9e8ee7135d8e3109ca76c23752bac1e717bc84cd3836b4bf3eae"}, + {file = "mypy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30ff5ef8519bbc2e18b3b54521ec319513a26f1bba19a7582e7b1f58a6e69f14"}, + {file = "mypy-1.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb9f255c18052343c70234907e2e532bc7e55a62565d64536dbc7706a20b78b9"}, + {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b4e3413e0bddea671012b063e27591b953d653209e7a4fa5e48759cda77ca11"}, + {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:553c293b1fbdebb6c3c4030589dab9fafb6dfa768995a453d8a5d3b23784af2e"}, + {file = "mypy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fad79bfe3b65fe6a1efaed97b445c3d37f7be9fdc348bdb2d7cac75579607c89"}, + {file = "mypy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fa2220e54d2946e94ab6dbb3ba0a992795bd68b16dc852db33028df2b00191b"}, + {file = "mypy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:92c3ed5afb06c3a8e188cb5da4984cab9ec9a77ba956ee419c68a388b4595255"}, + {file = "mypy-1.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dbec574648b3e25f43d23577309b16534431db4ddc09fda50841f1e34e64ed34"}, + {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c6d94b16d62eb3e947281aa7347d78236688e21081f11de976376cf010eb31a"}, + {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4b19b03fdf54f3c5b2fa474c56b4c13c9dbfb9a2db4370ede7ec11a2c5927d9"}, + {file = "mypy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c911fde686394753fff899c409fd4e16e9b294c24bfd5e1ea4675deae1ac6fd"}, + {file = "mypy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8b21525cb51671219f5307be85f7e646a153e5acc656e5cebf64bfa076c50107"}, + {file = "mypy-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7084fb8f1128c76cd9cf68fe5971b37072598e7c31b2f9f95586b65c741a9d31"}, + {file = "mypy-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f845a00b4f420f693f870eaee5f3e2692fa84cc8514496114649cfa8fd5e2c6"}, + {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44bf464499f0e3a2d14d58b54674dee25c031703b2ffc35064bd0df2e0fac319"}, + {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c99f27732c0b7dc847adb21c9d47ce57eb48fa33a17bc6d7d5c5e9f9e7ae5bac"}, + {file = "mypy-1.14.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:bce23c7377b43602baa0bd22ea3265c49b9ff0b76eb315d6c34721af4cdf1d9b"}, + {file = "mypy-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:8edc07eeade7ebc771ff9cf6b211b9a7d93687ff892150cb5692e4f4272b0837"}, + {file = "mypy-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3888a1816d69f7ab92092f785a462944b3ca16d7c470d564165fe703b0970c35"}, + {file = "mypy-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46c756a444117c43ee984bd055db99e498bc613a70bbbc120272bd13ca579fbc"}, + {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27fc248022907e72abfd8e22ab1f10e903915ff69961174784a3900a8cba9ad9"}, + {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:499d6a72fb7e5de92218db961f1a66d5f11783f9ae549d214617edab5d4dbdbb"}, + {file = "mypy-1.14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57961db9795eb566dc1d1b4e9139ebc4c6b0cb6e7254ecde69d1552bf7613f60"}, + {file = "mypy-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:07ba89fdcc9451f2ebb02853deb6aaaa3d2239a236669a63ab3801bbf923ef5c"}, + {file = "mypy-1.14.1-py3-none-any.whl", hash = "sha256:b66a60cc4073aeb8ae00057f9c1f64d49e90f918fbcef9a977eb121da8b8f1d1"}, + {file = "mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6"}, ] [package.dependencies] -mypy-extensions = ">=1.0.0" +mypy_extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +typing_extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] @@ -271,28 +298,19 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["main", "dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] -[[package]] -name = "nodeenv" -version = "1.9.1" -description = "Node.js virtual environment builder" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, - {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, -] - [[package]] name = "platformdirs" version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, @@ -305,122 +323,133 @@ type = ["mypy (>=1.8)"] [[package]] name = "pydantic" -version = "2.8.2" +version = "2.10.5" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, - {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, + {file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"}, + {file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"}, ] [package.dependencies] -annotated-types = ">=0.4.0" -pydantic-core = "2.20.1" -typing-extensions = [ - {version = ">=4.6.1", markers = "python_version < \"3.13\""}, - {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, -] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" [package.extras] email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.20.1" +version = "2.27.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, - {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, - {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, - {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, - {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, - {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, - {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, - {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, - {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, - {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, - {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, - {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, - {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, - {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, - {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, - {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, - {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, - {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, - {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, - {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, - {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, - {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, - {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, - {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, - {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, - {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, - {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, - {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, - {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, - {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, - {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, - {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, - {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, ] [package.dependencies] @@ -432,6 +461,7 @@ version = "3.2.3" description = "python code static checker" optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "pylint-3.2.3-py3-none-any.whl", hash = "sha256:b3d7d2708a3e04b4679e02d99e72329a8b7ee8afb8d04110682278781f889fa8"}, {file = "pylint-3.2.3.tar.gz", hash = "sha256:02f6c562b215582386068d52a30f520d84fdbcf2a95fc7e855b816060d048b60"}, @@ -456,30 +486,13 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\"" spelling = ["pyenchant (>=3.2,<4.0)"] testutils = ["gitpython (>3)"] -[[package]] -name = "pyright" -version = "1.1.374" -description = "Command line wrapper for pyright" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyright-1.1.374-py3-none-any.whl", hash = "sha256:55752bcf7a3646d293cd76710a983b71e16f6128aab2d42468e6eb7e46c0a70d"}, - {file = "pyright-1.1.374.tar.gz", hash = "sha256:d01b2daf864ba5e0362e56b844984865970d7204158e61eb685e2dab7804cb82"}, -] - -[package.dependencies] -nodeenv = ">=1.6.0" - -[package.extras] -all = ["twine (>=3.4.1)"] -dev = ["twine (>=3.4.1)"] - [[package]] name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -494,6 +507,7 @@ version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -505,6 +519,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -516,6 +531,8 @@ version = "2.0.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version < \"3.11\"" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, @@ -527,6 +544,7 @@ version = "0.13.0" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, @@ -538,6 +556,7 @@ version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, @@ -549,6 +568,7 @@ version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, @@ -560,6 +580,7 @@ version = "0.9.0" description = "Runtime inspection utilities for typing module." optional = false python-versions = "*" +groups = ["main"] files = [ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, @@ -570,6 +591,6 @@ mypy-extensions = ">=0.3.0" typing-extensions = ">=3.7.4" [metadata] -lock-version = "2.0" -python-versions = "^3.8" -content-hash = "5e3e72943c34780d014eb72863f79b3dfadc226e495ca4846d346ae58522bc1c" +lock-version = "2.1" +python-versions = ">=3.9" +content-hash = "1bd4e6f40bcdc58f113fbd67b7c65821133d23a04876c22cf3119c1bc9a5fb6b" diff --git a/pylintrc b/pylintrc index 5080038..f2385e8 100644 --- a/pylintrc +++ b/pylintrc @@ -89,7 +89,7 @@ persistent=yes # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. -py-version=3.8 +py-version=3.9 # Discover python modules and packages in the file system subtree. recursive=no diff --git a/pyproject.toml b/pyproject.toml index cf08739..03154ea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,20 @@ -[tool.poetry] +[project] name = "comfydeploy" -version = "0.5.0" +version = "0.6.0" description = "Python Client SDK Generated by Speakeasy" -authors = ["Speakeasy",] +authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" +requires-python = ">=3.9" +dependencies = [ + "eval-type-backport (>=0.2.0,<0.3.0)", + "httpx (>=0.28.1,<0.29.0)", + "jsonpath-python (>=1.0.6,<2.0.0)", + "pydantic (>=2.10.3,<2.11.0)", + "python-dateutil (>=2.8.2,<3.0.0)", + "typing-inspect (>=0.9.0,<0.10.0)", +] + +[tool.poetry] repository = "https://github.com/comfy-deploy/comfy-deploy-python.git" packages = [ { include = "comfydeploy", from = "src" } @@ -16,19 +27,9 @@ include = ["py.typed", "src/comfydeploy/py.typed"] [virtualenvs] in-project = true -[tool.poetry.dependencies] -python = "^3.8" -eval-type-backport = "^0.2.0" -httpx = "^0.27.0" -jsonpath-python = "^1.0.6" -pydantic = "~2.8.2" -python-dateutil = "^2.9.0.post0" -typing-inspect = "^0.9.0" - [tool.poetry.group.dev.dependencies] -mypy = "==1.10.1" +mypy = "==1.14.1" pylint = "==3.2.3" -pyright = "==1.1.374" types-python-dateutil = "^2.9.0.20240316" [build-system] diff --git a/scripts/compile.sh b/scripts/compile.sh deleted file mode 100755 index fafe635..0000000 --- a/scripts/compile.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail # Ensure pipeline failures are propagated - -# Use temporary files to store outputs and exit statuses -declare -A output_files -declare -A status_files - -# Function to run a command with temporary output and status files -run_command() { - local cmd="$1" - local key="$2" - local output_file="$3" - local status_file="$4" - - # Run the command and store output and exit status - { - eval "$cmd" - echo $? > "$status_file" - } &> "$output_file" & -} - -poetry run python scripts/prepare-readme.py - -# Create temporary files for outputs and statuses -for cmd in compileall pylint mypy pyright; do - output_files[$cmd]=$(mktemp) - status_files[$cmd]=$(mktemp) -done - -# Collect PIDs for background processes -declare -a pids - -# Run commands in parallel using temporary files -echo "Running python -m compileall" -run_command 'poetry run python -m compileall -q . && echo "Success"' 'compileall' "${output_files[compileall]}" "${status_files[compileall]}" -pids+=($!) - -echo "Running pylint" -run_command 'poetry run pylint src' 'pylint' "${output_files[pylint]}" "${status_files[pylint]}" -pids+=($!) - -echo "Running mypy" -run_command 'poetry run mypy src' 'mypy' "${output_files[mypy]}" "${status_files[mypy]}" -pids+=($!) - -echo "Running pyright (optional)" -run_command 'if command -v pyright > /dev/null 2>&1; then pyright src; else echo "pyright not found, skipping"; fi' 'pyright' "${output_files[pyright]}" "${status_files[pyright]}" -pids+=($!) - -# Wait for all processes to complete -echo "Waiting for processes to complete" -for pid in "${pids[@]}"; do - wait "$pid" -done - -# Print output sequentially and check for failures -failed=false -for key in "${!output_files[@]}"; do - echo "--- Output from Command: $key ---" - echo - cat "${output_files[$key]}" - echo # Empty line for separation - echo "--- End of Output from Command: $key ---" - echo - - exit_status=$(cat "${status_files[$key]}") - if [ "$exit_status" -ne 0 ]; then - echo "Command $key failed with exit status $exit_status" >&2 - failed=true - fi -done - -# Clean up temporary files -for tmp_file in "${output_files[@]}" "${status_files[@]}"; do - rm -f "$tmp_file" -done - -if $failed; then - echo "One or more commands failed." >&2 - exit 1 -else - echo "All commands completed successfully." - exit 0 -fi diff --git a/src/comfydeploy/__init__.py b/src/comfydeploy/__init__.py index d8d60c4..833c68c 100644 --- a/src/comfydeploy/__init__.py +++ b/src/comfydeploy/__init__.py @@ -1,4 +1,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +from ._version import ( + __title__, + __version__, + __openapi_doc_version__, + __gen_version__, + __user_agent__, +) from .sdk import * from .sdkconfiguration import * + + +VERSION: str = __version__ +OPENAPI_DOC_VERSION = __openapi_doc_version__ +SPEAKEASY_GENERATOR_VERSION = __gen_version__ +USER_AGENT = __user_agent__ diff --git a/src/comfydeploy/_hooks/sdkhooks.py b/src/comfydeploy/_hooks/sdkhooks.py index d92bd20..78fb71c 100644 --- a/src/comfydeploy/_hooks/sdkhooks.py +++ b/src/comfydeploy/_hooks/sdkhooks.py @@ -1,11 +1,21 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" import httpx -from .types import SDKInitHook, BeforeRequestContext, BeforeRequestHook, AfterSuccessContext, AfterSuccessHook, AfterErrorContext, AfterErrorHook, Hooks +from .types import ( + SDKInitHook, + BeforeRequestContext, + BeforeRequestHook, + AfterSuccessContext, + AfterSuccessHook, + AfterErrorContext, + AfterErrorHook, + Hooks, +) from .registration import init_hooks from typing import List, Optional, Tuple from comfydeploy.httpclient import HttpClient + class SDKHooks(Hooks): def __init__(self) -> None: self.sdk_init_hooks: List[SDKInitHook] = [] @@ -31,7 +41,9 @@ def sdk_init(self, base_url: str, client: HttpClient) -> Tuple[str, HttpClient]: base_url, client = hook.sdk_init(base_url, client) return base_url, client - def before_request(self, hook_ctx: BeforeRequestContext, request: httpx.Request) -> httpx.Request: + def before_request( + self, hook_ctx: BeforeRequestContext, request: httpx.Request + ) -> httpx.Request: for hook in self.before_request_hooks: out = hook.before_request(hook_ctx, request) if isinstance(out, Exception): @@ -40,7 +52,9 @@ def before_request(self, hook_ctx: BeforeRequestContext, request: httpx.Request) return request - def after_success(self, hook_ctx: AfterSuccessContext, response: httpx.Response) -> httpx.Response: + def after_success( + self, hook_ctx: AfterSuccessContext, response: httpx.Response + ) -> httpx.Response: for hook in self.after_success_hooks: out = hook.after_success(hook_ctx, response) if isinstance(out, Exception): @@ -48,7 +62,12 @@ def after_success(self, hook_ctx: AfterSuccessContext, response: httpx.Response) response = out return response - def after_error(self, hook_ctx: AfterErrorContext, response: Optional[httpx.Response], error: Optional[Exception]) -> Tuple[Optional[httpx.Response], Optional[Exception]]: + def after_error( + self, + hook_ctx: AfterErrorContext, + response: Optional[httpx.Response], + error: Optional[Exception], + ) -> Tuple[Optional[httpx.Response], Optional[Exception]]: for hook in self.after_error_hooks: result = hook.after_error(hook_ctx, response, error) if isinstance(result, Exception): diff --git a/src/comfydeploy/_hooks/types.py b/src/comfydeploy/_hooks/types.py index fe2bebd..a230fae 100644 --- a/src/comfydeploy/_hooks/types.py +++ b/src/comfydeploy/_hooks/types.py @@ -1,6 +1,5 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - from abc import ABC, abstractmethod from comfydeploy.httpclient import HttpClient import httpx @@ -12,7 +11,12 @@ class HookContext: oauth2_scopes: Optional[List[str]] = None security_source: Optional[Union[Any, Callable[[], Any]]] = None - def __init__(self, operation_id: str, oauth2_scopes: Optional[List[str]], security_source: Optional[Union[Any, Callable[[], Any]]]): + def __init__( + self, + operation_id: str, + oauth2_scopes: Optional[List[str]], + security_source: Optional[Union[Any, Callable[[], Any]]], + ): self.operation_id = operation_id self.oauth2_scopes = oauth2_scopes self.security_source = security_source @@ -20,18 +24,23 @@ def __init__(self, operation_id: str, oauth2_scopes: Optional[List[str]], securi class BeforeRequestContext(HookContext): def __init__(self, hook_ctx: HookContext): - super().__init__(hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source) + super().__init__( + hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source + ) class AfterSuccessContext(HookContext): def __init__(self, hook_ctx: HookContext): - super().__init__(hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source) - + super().__init__( + hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source + ) class AfterErrorContext(HookContext): def __init__(self, hook_ctx: HookContext): - super().__init__(hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source) + super().__init__( + hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source + ) class SDKInitHook(ABC): @@ -42,19 +51,28 @@ def sdk_init(self, base_url: str, client: HttpClient) -> Tuple[str, HttpClient]: class BeforeRequestHook(ABC): @abstractmethod - def before_request(self, hook_ctx: BeforeRequestContext, request: httpx.Request) -> Union[httpx.Request, Exception]: + def before_request( + self, hook_ctx: BeforeRequestContext, request: httpx.Request + ) -> Union[httpx.Request, Exception]: pass class AfterSuccessHook(ABC): @abstractmethod - def after_success(self, hook_ctx: AfterSuccessContext, response: httpx.Response) -> Union[httpx.Response, Exception]: + def after_success( + self, hook_ctx: AfterSuccessContext, response: httpx.Response + ) -> Union[httpx.Response, Exception]: pass class AfterErrorHook(ABC): @abstractmethod - def after_error(self, hook_ctx: AfterErrorContext, response: Optional[httpx.Response], error: Optional[Exception]) -> Union[Tuple[Optional[httpx.Response], Optional[Exception]], Exception]: + def after_error( + self, + hook_ctx: AfterErrorContext, + response: Optional[httpx.Response], + error: Optional[Exception], + ) -> Union[Tuple[Optional[httpx.Response], Optional[Exception]], Exception]: pass diff --git a/src/comfydeploy/_version.py b/src/comfydeploy/_version.py new file mode 100644 index 0000000..584eb7f --- /dev/null +++ b/src/comfydeploy/_version.py @@ -0,0 +1,15 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +import importlib.metadata + +__title__: str = "comfydeploy" +__version__: str = "0.6.0" +__openapi_doc_version__: str = "V2" +__gen_version__: str = "2.492.3" +__user_agent__: str = "speakeasy-sdk/python 0.6.0 2.492.3 V2 comfydeploy" + +try: + if __package__ is not None: + __version__ = importlib.metadata.version(__package__) +except importlib.metadata.PackageNotFoundError: + pass diff --git a/src/comfydeploy/basesdk.py b/src/comfydeploy/basesdk.py index 3dbd116..88f2fff 100644 --- a/src/comfydeploy/basesdk.py +++ b/src/comfydeploy/basesdk.py @@ -2,11 +2,17 @@ from .sdkconfiguration import SDKConfiguration from comfydeploy import utils -from comfydeploy._hooks import AfterErrorContext, AfterSuccessContext, BeforeRequestContext +from comfydeploy._hooks import ( + AfterErrorContext, + AfterSuccessContext, + BeforeRequestContext, +) from comfydeploy.models import errors from comfydeploy.utils import RetryConfig, SerializedRequestBody, get_body_content import httpx -from typing import Callable, List, Optional, Tuple +from typing import Callable, List, Mapping, Optional, Tuple +from urllib.parse import parse_qs, urlparse + class BaseSDK: sdk_configuration: SDKConfiguration @@ -14,7 +20,7 @@ class BaseSDK: def __init__(self, sdk_config: SDKConfiguration) -> None: self.sdk_configuration = sdk_config - def get_url(self, base_url, url_variables): + def _get_url(self, base_url, url_variables): sdk_url, sdk_variables = self.sdk_configuration.get_server_details() if base_url is None: @@ -25,7 +31,7 @@ def get_url(self, base_url, url_variables): return utils.template_url(base_url, url_variables) - def build_request( + def _build_request_async( self, method, path, @@ -44,15 +50,99 @@ def build_request( Callable[[], Optional[SerializedRequestBody]] ] = None, url_override: Optional[str] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> httpx.Request: + client = self.sdk_configuration.async_client + return self._build_request_with_client( + client, + method, + path, + base_url, + url_variables, + request, + request_body_required, + request_has_path_params, + request_has_query_params, + user_agent_header, + accept_header_value, + _globals, + security, + timeout_ms, + get_serialized_body, + url_override, + http_headers, + ) + + def _build_request( + self, + method, + path, + base_url, + url_variables, + request, + request_body_required, + request_has_path_params, + request_has_query_params, + user_agent_header, + accept_header_value, + _globals=None, + security=None, + timeout_ms: Optional[int] = None, + get_serialized_body: Optional[ + Callable[[], Optional[SerializedRequestBody]] + ] = None, + url_override: Optional[str] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> httpx.Request: client = self.sdk_configuration.client + return self._build_request_with_client( + client, + method, + path, + base_url, + url_variables, + request, + request_body_required, + request_has_path_params, + request_has_query_params, + user_agent_header, + accept_header_value, + _globals, + security, + timeout_ms, + get_serialized_body, + url_override, + http_headers, + ) + def _build_request_with_client( + self, + client, + method, + path, + base_url, + url_variables, + request, + request_body_required, + request_has_path_params, + request_has_query_params, + user_agent_header, + accept_header_value, + _globals=None, + security=None, + timeout_ms: Optional[int] = None, + get_serialized_body: Optional[ + Callable[[], Optional[SerializedRequestBody]] + ] = None, + url_override: Optional[str] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> httpx.Request: query_params = {} url = url_override if url is None: url = utils.generate_url( - self.get_url(base_url, url_variables), + self._get_url(base_url, url_variables), path, request if request_has_path_params else None, _globals if request_has_path_params else None, @@ -62,6 +152,12 @@ def build_request( request if request_has_query_params else None, _globals if request_has_query_params else None, ) + else: + # Pick up the query parameter from the override so they can be + # preserved when building the request later on (necessary as of + # httpx 0.28). + parsed_override = urlparse(str(url_override)) + query_params = parse_qs(parsed_override.query, keep_blank_values=True) headers = utils.get_headers(request, _globals) headers["Accept"] = accept_header_value @@ -70,13 +166,13 @@ def build_request( if security is not None: if callable(security): security = security() - + if security is not None: security_headers, security_query_params = utils.get_security(security) headers = {**headers, **security_headers} query_params = {**query_params, **security_query_params} - serialized_request_body = SerializedRequestBody("application/octet-stream") + serialized_request_body = SerializedRequestBody() if get_serialized_body is not None: rb = get_serialized_body() if request_body_required and rb is None: @@ -95,6 +191,10 @@ def build_request( ): headers["content-type"] = serialized_request_body.media_type + if http_headers is not None: + for header, value in http_headers.items(): + headers[header] = value + timeout = timeout_ms / 1000 if timeout_ms is not None else None return client.build_request( @@ -130,7 +230,7 @@ def do(): req.method, req.url, req.headers, - get_body_content(req) + get_body_content(req), ) http_res = client.send(req, stream=stream) except Exception as e: @@ -150,7 +250,7 @@ def do(): http_res.status_code, http_res.url, http_res.headers, - "" if stream else http_res.text + "" if stream else http_res.text, ) if utils.match_status_codes(error_status_codes, http_res.status_code): @@ -190,6 +290,7 @@ async def do_request_async( ) -> httpx.Response: client = self.sdk_configuration.async_client logger = self.sdk_configuration.debug_logger + async def do(): http_res = None try: @@ -201,7 +302,7 @@ async def do(): req.method, req.url, req.headers, - get_body_content(req) + get_body_content(req), ) http_res = await client.send(req, stream=stream) except Exception as e: @@ -221,7 +322,7 @@ async def do(): http_res.status_code, http_res.url, http_res.headers, - "" if stream else http_res.text + "" if stream else http_res.text, ) if utils.match_status_codes(error_status_codes, http_res.status_code): diff --git a/src/comfydeploy/deployment.py b/src/comfydeploy/deployment.py index 30910f4..e1a6830 100644 --- a/src/comfydeploy/deployment.py +++ b/src/comfydeploy/deployment.py @@ -6,17 +6,20 @@ from comfydeploy.models import components, errors, operations from comfydeploy.types import BaseModel, OptionalNullable, UNSET from comfydeploy.utils import eventstreaming -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast + class Deployment(BaseSDK): - - def queue( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.QueueDeploymentRunRunDeploymentQueuePostResponse: r"""Deployment - Queue @@ -26,20 +29,21 @@ def queue( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/deployment/queue", base_url=base_url, @@ -50,52 +54,69 @@ def queue( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="queue_deployment_run_run_deployment_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="queue_deployment_run_run_deployment_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.QueueDeploymentRunRunDeploymentQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.QueueDeploymentRunRunDeploymentQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def queue_async( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.QueueDeploymentRunRunDeploymentQueuePostResponse: r"""Deployment - Queue @@ -105,20 +126,21 @@ async def queue_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/deployment/queue", base_url=base_url, @@ -129,52 +151,69 @@ async def queue_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="queue_deployment_run_run_deployment_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="queue_deployment_run_run_deployment_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.QueueDeploymentRunRunDeploymentQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.QueueDeploymentRunRunDeploymentQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def sync( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SyncDeploymentRunRunDeploymentSyncPostResponse: r"""Deployment - Sync @@ -184,20 +223,21 @@ def sync( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/deployment/sync", base_url=base_url, @@ -208,52 +248,69 @@ def sync( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="sync_deployment_run_run_deployment_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="sync_deployment_run_run_deployment_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SyncDeploymentRunRunDeploymentSyncPostResponse(response_sync_deployment_run_run_deployment_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SyncDeploymentRunRunDeploymentSyncPostResponse( + response_sync_deployment_run_run_deployment_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def sync_async( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SyncDeploymentRunRunDeploymentSyncPostResponse: r"""Deployment - Sync @@ -263,20 +320,21 @@ async def sync_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/deployment/sync", base_url=base_url, @@ -287,52 +345,69 @@ async def sync_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="sync_deployment_run_run_deployment_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="sync_deployment_run_run_deployment_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SyncDeploymentRunRunDeploymentSyncPostResponse(response_sync_deployment_run_run_deployment_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SyncDeploymentRunRunDeploymentSyncPostResponse( + response_sync_deployment_run_run_deployment_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def stream( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse: r"""Deployment - Stream @@ -342,20 +417,21 @@ def stream( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/deployment/stream", base_url=base_url, @@ -366,53 +442,72 @@ def stream( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_run_deployment_stream_run_deployment_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_deployment_stream_run_deployment_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse(run_stream=eventstreaming.stream_events(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse( + run_stream=eventstreaming.EventStream( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = utils.stream_to_text(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def stream_async( - self, *, - request: Union[components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict], + self, + *, + request: Union[ + components.DeploymentRunRequest, components.DeploymentRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse: r"""Deployment - Stream @@ -422,20 +517,21 @@ async def stream_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentRunRequest) request = cast(components.DeploymentRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/deployment/stream", base_url=base_url, @@ -446,43 +542,58 @@ async def stream_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_run_deployment_stream_run_deployment_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_deployment_stream_run_deployment_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse(run_stream=eventstreaming.stream_events_async(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunDeploymentStreamRunDeploymentStreamPostResponse( + run_stream=eventstreaming.EventStreamAsync( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = await utils.stream_to_text_async(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/deployments.py b/src/comfydeploy/deployments.py index 19bcfcc..2d88458 100644 --- a/src/comfydeploy/deployments.py +++ b/src/comfydeploy/deployments.py @@ -5,17 +5,20 @@ from comfydeploy._hooks import HookContext from comfydeploy.models import components, errors, operations from comfydeploy.types import BaseModel, OptionalNullable, UNSET -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast + class Deployments(BaseSDK): - - def create( - self, *, - request: Union[components.DeploymentCreate, components.DeploymentCreateTypedDict], + self, + *, + request: Union[ + components.DeploymentCreate, components.DeploymentCreateTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateDeploymentDeploymentPostResponse: r"""Create Deployment @@ -23,20 +26,21 @@ def create( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentCreate) request = cast(components.DeploymentCreate, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/deployment", base_url=base_url, @@ -47,52 +51,69 @@ def create( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentCreate), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentCreate + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_deployment_deployment_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_deployment_deployment_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateDeploymentDeploymentPostResponse(deployment_model=utils.unmarshal_json(http_res.text, Optional[components.DeploymentModel]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateDeploymentDeploymentPostResponse( + deployment_model=utils.unmarshal_json( + http_res.text, Optional[components.DeploymentModel] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def create_async( - self, *, - request: Union[components.DeploymentCreate, components.DeploymentCreateTypedDict], + self, + *, + request: Union[ + components.DeploymentCreate, components.DeploymentCreateTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateDeploymentDeploymentPostResponse: r"""Create Deployment @@ -100,20 +121,21 @@ async def create_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.DeploymentCreate) request = cast(components.DeploymentCreate, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/deployment", base_url=base_url, @@ -124,73 +146,89 @@ async def create_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.DeploymentCreate), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.DeploymentCreate + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_deployment_deployment_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_deployment_deployment_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateDeploymentDeploymentPostResponse(deployment_model=utils.unmarshal_json(http_res.text, Optional[components.DeploymentModel]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateDeploymentDeploymentPostResponse( + deployment_model=utils.unmarshal_json( + http_res.text, Optional[components.DeploymentModel] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def list( - self, *, + self, + *, environment: OptionalNullable[components.DeploymentEnvironment] = UNSET, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetDeploymentsDeploymentsGetResponse: r"""Get Deployments - :param environment: + :param environment: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetDeploymentsDeploymentsGetRequest( environment=environment, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/deployments", base_url=base_url, @@ -201,72 +239,86 @@ def list( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="get_deployments_deployments_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_deployments_deployments_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetDeploymentsDeploymentsGetResponse(response_get_deployments_deployments_get=utils.unmarshal_json(http_res.text, Optional[List[components.DeploymentModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetDeploymentsDeploymentsGetResponse( + response_get_deployments_deployments_get=utils.unmarshal_json( + http_res.text, Optional[List[components.DeploymentModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def list_async( - self, *, + self, + *, environment: OptionalNullable[components.DeploymentEnvironment] = UNSET, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetDeploymentsDeploymentsGetResponse: r"""Get Deployments - :param environment: + :param environment: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetDeploymentsDeploymentsGetRequest( environment=environment, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/deployments", base_url=base_url, @@ -277,41 +329,52 @@ async def list_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="get_deployments_deployments_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_deployments_deployments_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetDeploymentsDeploymentsGetResponse(response_get_deployments_deployments_get=utils.unmarshal_json(http_res.text, Optional[List[components.DeploymentModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetDeploymentsDeploymentsGetResponse( + response_get_deployments_deployments_get=utils.unmarshal_json( + http_res.text, Optional[List[components.DeploymentModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/file.py b/src/comfydeploy/file.py index f872e19..865163c 100644 --- a/src/comfydeploy/file.py +++ b/src/comfydeploy/file.py @@ -5,17 +5,21 @@ from comfydeploy._hooks import HookContext from comfydeploy.models import components, errors, operations from comfydeploy.types import BaseModel, OptionalNullable, UNSET -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast + class File(BaseSDK): - - def upload( - self, *, - request: Union[components.BodyUploadFileFileUploadPost, components.BodyUploadFileFileUploadPostTypedDict], + self, + *, + request: Union[ + components.BodyUploadFileFileUploadPost, + components.BodyUploadFileFileUploadPostTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.UploadFileFileUploadPostResponse: r"""Upload File @@ -23,20 +27,21 @@ def upload( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.BodyUploadFileFileUploadPost) request = cast(components.BodyUploadFileFileUploadPost, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/file/upload", base_url=base_url, @@ -47,52 +52,74 @@ def upload( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "multipart", components.BodyUploadFileFileUploadPost), + get_serialized_body=lambda: utils.serialize_request_body( + request, + False, + False, + "multipart", + components.BodyUploadFileFileUploadPost, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="upload_file_file_upload_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="upload_file_file_upload_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.UploadFileFileUploadPostResponse(file_upload_response=utils.unmarshal_json(http_res.text, Optional[components.FileUploadResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.UploadFileFileUploadPostResponse( + file_upload_response=utils.unmarshal_json( + http_res.text, Optional[components.FileUploadResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def upload_async( - self, *, - request: Union[components.BodyUploadFileFileUploadPost, components.BodyUploadFileFileUploadPostTypedDict], + self, + *, + request: Union[ + components.BodyUploadFileFileUploadPost, + components.BodyUploadFileFileUploadPostTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.UploadFileFileUploadPostResponse: r"""Upload File @@ -100,20 +127,21 @@ async def upload_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.BodyUploadFileFileUploadPost) request = cast(components.BodyUploadFileFileUploadPost, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/file/upload", base_url=base_url, @@ -124,52 +152,73 @@ async def upload_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "multipart", components.BodyUploadFileFileUploadPost), + get_serialized_body=lambda: utils.serialize_request_body( + request, + False, + False, + "multipart", + components.BodyUploadFileFileUploadPost, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="upload_file_file_upload_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="upload_file_file_upload_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.UploadFileFileUploadPostResponse(file_upload_response=utils.unmarshal_json(http_res.text, Optional[components.FileUploadResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.UploadFileFileUploadPostResponse( + file_upload_response=utils.unmarshal_json( + http_res.text, Optional[components.FileUploadResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def create_folder_assets_folder_post( - self, *, - request: Union[components.CreateFolderRequest, components.CreateFolderRequestTypedDict], + self, + *, + request: Union[ + components.CreateFolderRequest, components.CreateFolderRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateFolderAssetsFolderPostResponse: r"""Create Folder @@ -177,20 +226,21 @@ def create_folder_assets_folder_post( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.CreateFolderRequest) request = cast(components.CreateFolderRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/assets/folder", base_url=base_url, @@ -201,52 +251,69 @@ def create_folder_assets_folder_post( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.CreateFolderRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.CreateFolderRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_folder_assets_folder_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_folder_assets_folder_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateFolderAssetsFolderPostResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateFolderAssetsFolderPostResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def create_folder_assets_folder_post_async( - self, *, - request: Union[components.CreateFolderRequest, components.CreateFolderRequestTypedDict], + self, + *, + request: Union[ + components.CreateFolderRequest, components.CreateFolderRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateFolderAssetsFolderPostResponse: r"""Create Folder @@ -254,20 +321,21 @@ async def create_folder_assets_folder_post_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.CreateFolderRequest) request = cast(components.CreateFolderRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/assets/folder", base_url=base_url, @@ -278,52 +346,67 @@ async def create_folder_assets_folder_post_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.CreateFolderRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.CreateFolderRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_folder_assets_folder_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_folder_assets_folder_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateFolderAssetsFolderPostResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateFolderAssetsFolderPostResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def list_assets_assets_get( - self, *, + self, + *, path: Optional[str] = "/", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.ListAssetsAssetsGetResponse: r"""List Assets @@ -331,20 +414,21 @@ def list_assets_assets_get( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.ListAssetsAssetsGetRequest( path=path, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/assets", base_url=base_url, @@ -355,51 +439,64 @@ def list_assets_assets_get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="list_assets_assets_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="list_assets_assets_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.ListAssetsAssetsGetResponse(response_list_assets_assets_get=utils.unmarshal_json(http_res.text, Optional[List[components.AssetResponse]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.ListAssetsAssetsGetResponse( + response_list_assets_assets_get=utils.unmarshal_json( + http_res.text, Optional[List[components.AssetResponse]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def list_assets_assets_get_async( - self, *, + self, + *, path: Optional[str] = "/", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.ListAssetsAssetsGetResponse: r"""List Assets @@ -407,20 +504,21 @@ async def list_assets_assets_get_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.ListAssetsAssetsGetRequest( path=path, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/assets", base_url=base_url, @@ -431,73 +529,87 @@ async def list_assets_assets_get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="list_assets_assets_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="list_assets_assets_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.ListAssetsAssetsGetResponse(response_list_assets_assets_get=utils.unmarshal_json(http_res.text, Optional[List[components.AssetResponse]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.ListAssetsAssetsGetResponse( + response_list_assets_assets_get=utils.unmarshal_json( + http_res.text, Optional[List[components.AssetResponse]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - def get_asset_assets_asset_id_get( - self, *, + def delete_asset_assets_asset_id_delete( + self, + *, asset_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, - ) -> operations.GetAssetAssetsAssetIDGetResponse: - r"""Get Asset + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.DeleteAssetAssetsAssetIDDeleteResponse: + r"""Delete Asset - :param asset_id: + :param asset_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - - request = operations.GetAssetAssetsAssetIDGetRequest( + + request = operations.DeleteAssetAssetsAssetIDDeleteRequest( asset_id=asset_id, ) - - req = self.build_request( - method="GET", + + req = self._build_request( + method="DELETE", path="/assets/{asset_id}", base_url=base_url, url_variables=url_variables, @@ -507,73 +619,85 @@ def get_asset_assets_asset_id_get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="get_asset_assets__asset_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="delete_asset_assets__asset_id__delete", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetAssetAssetsAssetIDGetResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.DeleteAssetAssetsAssetIDDeleteResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - async def get_asset_assets_asset_id_get_async( - self, *, + async def delete_asset_assets_asset_id_delete_async( + self, + *, asset_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, - ) -> operations.GetAssetAssetsAssetIDGetResponse: - r"""Get Asset + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.DeleteAssetAssetsAssetIDDeleteResponse: + r"""Delete Asset - :param asset_id: + :param asset_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - - request = operations.GetAssetAssetsAssetIDGetRequest( + + request = operations.DeleteAssetAssetsAssetIDDeleteRequest( asset_id=asset_id, ) - - req = self.build_request( - method="GET", + + req = self._build_request_async( + method="DELETE", path="/assets/{asset_id}", base_url=base_url, url_variables=url_variables, @@ -583,73 +707,85 @@ async def get_asset_assets_asset_id_get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="get_asset_assets__asset_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="delete_asset_assets__asset_id__delete", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetAssetAssetsAssetIDGetResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.DeleteAssetAssetsAssetIDDeleteResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - def delete_asset_assets_asset_id_delete( - self, *, + def get_asset_assets_asset_id_get( + self, + *, asset_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, - ) -> operations.DeleteAssetAssetsAssetIDDeleteResponse: - r"""Delete Asset + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.GetAssetAssetsAssetIDGetResponse: + r"""Get Asset - :param asset_id: + :param asset_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - - request = operations.DeleteAssetAssetsAssetIDDeleteRequest( + + request = operations.GetAssetAssetsAssetIDGetRequest( asset_id=asset_id, ) - - req = self.build_request( - method="DELETE", + + req = self._build_request( + method="GET", path="/assets/{asset_id}", base_url=base_url, url_variables=url_variables, @@ -659,73 +795,87 @@ def delete_asset_assets_asset_id_delete( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="delete_asset_assets__asset_id__delete", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_asset_assets__asset_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.DeleteAssetAssetsAssetIDDeleteResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetAssetAssetsAssetIDGetResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - async def delete_asset_assets_asset_id_delete_async( - self, *, + async def get_asset_assets_asset_id_get_async( + self, + *, asset_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, - ) -> operations.DeleteAssetAssetsAssetIDDeleteResponse: - r"""Delete Asset + http_headers: Optional[Mapping[str, str]] = None, + ) -> operations.GetAssetAssetsAssetIDGetResponse: + r"""Get Asset - :param asset_id: + :param asset_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - - request = operations.DeleteAssetAssetsAssetIDDeleteRequest( + + request = operations.GetAssetAssetsAssetIDGetRequest( asset_id=asset_id, ) - - req = self.build_request( - method="DELETE", + + req = self._build_request_async( + method="GET", path="/assets/{asset_id}", base_url=base_url, url_variables=url_variables, @@ -735,75 +885,95 @@ async def delete_asset_assets_asset_id_delete_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="delete_asset_assets__asset_id__delete", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_asset_assets__asset_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.DeleteAssetAssetsAssetIDDeleteResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetAssetAssetsAssetIDGetResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def upload_asset_file_assets_upload_post( - self, *, - body_upload_asset_file_assets_upload_post: Union[components.BodyUploadAssetFileAssetsUploadPost, components.BodyUploadAssetFileAssetsUploadPostTypedDict], + self, + *, + body_upload_asset_file_assets_upload_post: Union[ + components.BodyUploadAssetFileAssetsUploadPost, + components.BodyUploadAssetFileAssetsUploadPostTypedDict, + ], parent_path: Optional[str] = "/", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.UploadAssetFileAssetsUploadPostResponse: r"""Upload Asset File - :param body_upload_asset_file_assets_upload_post: + :param body_upload_asset_file_assets_upload_post: :param parent_path: Parent folder path :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.UploadAssetFileAssetsUploadPostRequest( parent_path=parent_path, - body_upload_asset_file_assets_upload_post=utils.get_pydantic_model(body_upload_asset_file_assets_upload_post, components.BodyUploadAssetFileAssetsUploadPost), + body_upload_asset_file_assets_upload_post=utils.get_pydantic_model( + body_upload_asset_file_assets_upload_post, + components.BodyUploadAssetFileAssetsUploadPost, + ), ) - - req = self.build_request( + + req = self._build_request( method="POST", path="/assets/upload", base_url=base_url, @@ -814,76 +984,102 @@ def upload_asset_file_assets_upload_post( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request.body_upload_asset_file_assets_upload_post, False, False, "multipart", components.BodyUploadAssetFileAssetsUploadPost), + get_serialized_body=lambda: utils.serialize_request_body( + request.body_upload_asset_file_assets_upload_post, + False, + False, + "multipart", + components.BodyUploadAssetFileAssetsUploadPost, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="upload_asset_file_assets_upload_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="upload_asset_file_assets_upload_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.UploadAssetFileAssetsUploadPostResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.UploadAssetFileAssetsUploadPostResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def upload_asset_file_assets_upload_post_async( - self, *, - body_upload_asset_file_assets_upload_post: Union[components.BodyUploadAssetFileAssetsUploadPost, components.BodyUploadAssetFileAssetsUploadPostTypedDict], + self, + *, + body_upload_asset_file_assets_upload_post: Union[ + components.BodyUploadAssetFileAssetsUploadPost, + components.BodyUploadAssetFileAssetsUploadPostTypedDict, + ], parent_path: Optional[str] = "/", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.UploadAssetFileAssetsUploadPostResponse: r"""Upload Asset File - :param body_upload_asset_file_assets_upload_post: + :param body_upload_asset_file_assets_upload_post: :param parent_path: Parent folder path :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.UploadAssetFileAssetsUploadPostRequest( parent_path=parent_path, - body_upload_asset_file_assets_upload_post=utils.get_pydantic_model(body_upload_asset_file_assets_upload_post, components.BodyUploadAssetFileAssetsUploadPost), + body_upload_asset_file_assets_upload_post=utils.get_pydantic_model( + body_upload_asset_file_assets_upload_post, + components.BodyUploadAssetFileAssetsUploadPost, + ), ) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/assets/upload", base_url=base_url, @@ -894,42 +1090,59 @@ async def upload_asset_file_assets_upload_post_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request.body_upload_asset_file_assets_upload_post, False, False, "multipart", components.BodyUploadAssetFileAssetsUploadPost), + get_serialized_body=lambda: utils.serialize_request_body( + request.body_upload_asset_file_assets_upload_post, + False, + False, + "multipart", + components.BodyUploadAssetFileAssetsUploadPost, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="upload_asset_file_assets_upload_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="upload_asset_file_assets_upload_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.UploadAssetFileAssetsUploadPostResponse(asset_response=utils.unmarshal_json(http_res.text, Optional[components.AssetResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.UploadAssetFileAssetsUploadPostResponse( + asset_response=utils.unmarshal_json( + http_res.text, Optional[components.AssetResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/httpclient.py b/src/comfydeploy/httpclient.py index 36b642a..167cea4 100644 --- a/src/comfydeploy/httpclient.py +++ b/src/comfydeploy/httpclient.py @@ -41,6 +41,9 @@ def build_request( ) -> httpx.Request: pass + def close(self) -> None: + pass + @runtime_checkable class AsyncHttpClient(Protocol): @@ -76,3 +79,6 @@ def build_request( extensions: Optional[httpx._types.RequestExtensions] = None, ) -> httpx.Request: pass + + async def aclose(self) -> None: + pass diff --git a/src/comfydeploy/models/callbacks/__init__.py b/src/comfydeploy/models/callbacks/__init__.py index e8bda4e..f352063 100644 --- a/src/comfydeploy/models/callbacks/__init__.py +++ b/src/comfydeploy/models/callbacks/__init__.py @@ -1,9 +1,35 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .create_run_deployment_stream_run_deployment_stream_post import CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse, CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict -from .create_run_queue_run_queue_post import CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponse, CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict -from .create_run_stream_run_stream_post import CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponse, CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict -from .create_run_sync_run_sync_post import CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponse, CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict -from .create_run_workflow_stream_run_workflow_stream_post import CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse, CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict +from .create_run_deployment_stream_run_deployment_stream_post import ( + CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse, + CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict, +) +from .create_run_queue_run_queue_post import ( + CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponse, + CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict, +) +from .create_run_stream_run_stream_post import ( + CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponse, + CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict, +) +from .create_run_sync_run_sync_post import ( + CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponse, + CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict, +) +from .create_run_workflow_stream_run_workflow_stream_post import ( + CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse, + CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict, +) -__all__ = ["CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse", "CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict", "CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponse", "CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict", "CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponse", "CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict", "CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponse", "CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict", "CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse", "CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict"] +__all__ = [ + "CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse", + "CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict", + "CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponse", + "CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict", + "CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponse", + "CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict", + "CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponse", + "CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict", + "CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse", + "CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict", +] diff --git a/src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py b/src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py index 510b8ec..a0affdc 100644 --- a/src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py +++ b/src/comfydeploy/models/callbacks/create_run_deployment_stream_run_deployment_stream_post.py @@ -1,21 +1,34 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict -class CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): +class CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict( + TypedDict +): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - -class CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + +class CreateRunDeploymentStreamRunDeploymentStreamPostRunUpdateRequestBodyWebhookPostResponse( + BaseModel +): + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py b/src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py index c353176..cfbcc7e 100644 --- a/src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py +++ b/src/comfydeploy/models/callbacks/create_run_queue_run_queue_post.py @@ -1,21 +1,32 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict -class CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): +class CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponseTypedDict( + TypedDict +): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - + class CreateRunQueueRunQueuePostRunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py b/src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py index ed2634f..2f05844 100644 --- a/src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py +++ b/src/comfydeploy/models/callbacks/create_run_stream_run_stream_post.py @@ -1,21 +1,32 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict -class CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): +class CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict( + TypedDict +): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - + class CreateRunStreamRunStreamPostRunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py b/src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py index ba86027..0b21592 100644 --- a/src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py +++ b/src/comfydeploy/models/callbacks/create_run_sync_run_sync_post.py @@ -1,21 +1,32 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict -class CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): +class CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponseTypedDict( + TypedDict +): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - + class CreateRunSyncRunSyncPostRunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py b/src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py index d36520d..645e444 100644 --- a/src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py +++ b/src/comfydeploy/models/callbacks/create_run_workflow_stream_run_workflow_stream_post.py @@ -1,21 +1,34 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict -class CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): +class CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponseTypedDict( + TypedDict +): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - -class CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + +class CreateRunWorkflowStreamRunWorkflowStreamPostRunUpdateRequestBodyWebhookPostResponse( + BaseModel +): + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/components/__init__.py b/src/comfydeploy/models/components/__init__.py index f898026..b3b136d 100644 --- a/src/comfydeploy/models/components/__init__.py +++ b/src/comfydeploy/models/components/__init__.py @@ -2,8 +2,18 @@ from .api_routes_types_machinegpu_2 import APIRoutesTypesMachineGPU2 from .assetresponse import AssetResponse, AssetResponseTypedDict -from .body_upload_asset_file_assets_upload_post import BodyUploadAssetFileAssetsUploadPost, BodyUploadAssetFileAssetsUploadPostFile, BodyUploadAssetFileAssetsUploadPostFileTypedDict, BodyUploadAssetFileAssetsUploadPostTypedDict -from .body_upload_file_file_upload_post import BodyUploadFileFileUploadPost, BodyUploadFileFileUploadPostTypedDict, File, FileTypedDict +from .body_upload_asset_file_assets_upload_post import ( + BodyUploadAssetFileAssetsUploadPost, + BodyUploadAssetFileAssetsUploadPostFile, + BodyUploadAssetFileAssetsUploadPostFileTypedDict, + BodyUploadAssetFileAssetsUploadPostTypedDict, +) +from .body_upload_file_file_upload_post import ( + BodyUploadFileFileUploadPost, + BodyUploadFileFileUploadPostTypedDict, + File, + FileTypedDict, +) from .cancelfunctionbody import CancelFunctionBody, CancelFunctionBodyTypedDict from .createfolderrequest import CreateFolderRequest, CreateFolderRequestTypedDict from .createrunresponse import CreateRunResponse, CreateRunResponseTypedDict @@ -12,23 +22,63 @@ from .deletesessionresponse import DeleteSessionResponse, DeleteSessionResponseTypedDict from .deploymentcreate import DeploymentCreate, DeploymentCreateTypedDict from .deploymentenvironment import DeploymentEnvironment -from .deploymentmodel import DeploymentModel, DeploymentModelTypedDict, ShareOptions, ShareOptionsTypedDict, ShowcaseMedia, ShowcaseMediaTypedDict -from .deploymentrunrequest import DeploymentRunRequest, DeploymentRunRequestTypedDict, Gpu, Inputs, InputsTypedDict +from .deploymentmodel import ( + DeploymentModel, + DeploymentModelTypedDict, + ShareOptions, + ShareOptionsTypedDict, + ShowcaseMedia, + ShowcaseMediaTypedDict, +) +from .deploymentrunrequest import ( + DeploymentRunRequest, + DeploymentRunRequestTypedDict, + Gpu, + Inputs, + InputsTypedDict, +) from .eventupdate import EventUpdate, EventUpdateTypedDict -from .eventupdateevent import EventUpdateEvent, EventUpdateEventEvent, EventUpdateEventTypedDict +from .eventupdateevent import ( + EventUpdateEvent, + EventUpdateEventEvent, + EventUpdateEventTypedDict, +) from .fileuploadresponse import FileUploadResponse, FileUploadResponseTypedDict from .gpueventmodel import GPUEventModel, GPUEventModelTypedDict from .gpuprovidertype import GPUProviderType from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict from .increasetimeoutbody import IncreaseTimeoutBody, IncreaseTimeoutBodyTypedDict -from .inputmodel import DefaultValue, DefaultValueTypedDict, InputModel, InputModelTypedDict, MaxValue, MaxValueTypedDict, MinValue, MinValueTypedDict, Step, StepTypedDict +from .inputmodel import ( + DefaultValue, + DefaultValueTypedDict, + InputModel, + InputModelTypedDict, + MaxValue, + MaxValueTypedDict, + MinValue, + MinValueTypedDict, + Step, + StepTypedDict, +) from .logdatacontent import LogDataContent, LogDataContentTypedDict from .logupdateevent import Event, LogUpdateEvent, LogUpdateEventTypedDict from .machinegpu_output import MachineGPUOutput from .mediaitem import MediaItem, MediaItemTypedDict -from .modelinput import ClassType, ClassTypeTypedDict, ModelInput, ModelInputTypedDict, Two +from .modelinput import ( + ClassType, + ClassTypeTypedDict, + ModelInput, + ModelInputTypedDict, + Two, +) from .modeloutput import ModelOutput, ModelOutputClassType, ModelOutputTypedDict -from .modelrunrequest import ModelRunRequest, ModelRunRequestGpu, ModelRunRequestInputs, ModelRunRequestInputsTypedDict, ModelRunRequestTypedDict +from .modelrunrequest import ( + ModelRunRequest, + ModelRunRequestGpu, + ModelRunRequestInputs, + ModelRunRequestInputsTypedDict, + ModelRunRequestTypedDict, +) from .modelsearchquery import ModelSearchQuery, ModelSearchQueryTypedDict from .modelwithmetadata import ModelWithMetadata, ModelWithMetadataTypedDict from .outputmodel import OutputModel, OutputModelTypedDict @@ -36,15 +86,176 @@ from .searchmodelsresponse import SearchModelsResponse, SearchModelsResponseTypedDict from .security import Security, SecurityTypedDict from .session import Session, SessionTypedDict -from .validationerror import Loc, LocTypedDict, ValidationError, ValidationErrorTypedDict +from .validationerror import ( + Loc, + LocTypedDict, + ValidationError, + ValidationErrorTypedDict, +) from .workflowrunmodel import WorkflowRunModel, WorkflowRunModelTypedDict -from .workflowrunoutputmodel import Data, DataTypedDict, WorkflowRunOutputModel, WorkflowRunOutputModelTypedDict -from .workflowrunrequest import Workflow, WorkflowAPIJSON, WorkflowAPIJSONTypedDict, WorkflowRunRequest, WorkflowRunRequestGpu, WorkflowRunRequestInputs, WorkflowRunRequestInputsTypedDict, WorkflowRunRequestTypedDict, WorkflowTypedDict +from .workflowrunoutputmodel import ( + Data, + DataTypedDict, + WorkflowRunOutputModel, + WorkflowRunOutputModelTypedDict, +) +from .workflowrunrequest import ( + Workflow, + WorkflowAPIJSON, + WorkflowAPIJSONTypedDict, + WorkflowRunRequest, + WorkflowRunRequestGpu, + WorkflowRunRequestInputs, + WorkflowRunRequestInputsTypedDict, + WorkflowRunRequestTypedDict, + WorkflowTypedDict, +) from .workflowrunstatus import WorkflowRunStatus -from .workflowrunversionrequest import WorkflowRunVersionRequest, WorkflowRunVersionRequestGpu, WorkflowRunVersionRequestInputs, WorkflowRunVersionRequestInputsTypedDict, WorkflowRunVersionRequestTypedDict -from .workflowrunwebhookbody import WorkflowRunWebhookBody, WorkflowRunWebhookBodyTypedDict -from .workflowrunwebhookresponse import WorkflowRunWebhookResponse, WorkflowRunWebhookResponseTypedDict +from .workflowrunversionrequest import ( + WorkflowRunVersionRequest, + WorkflowRunVersionRequestGpu, + WorkflowRunVersionRequestInputs, + WorkflowRunVersionRequestInputsTypedDict, + WorkflowRunVersionRequestTypedDict, +) +from .workflowrunwebhookbody import ( + WorkflowRunWebhookBody, + WorkflowRunWebhookBodyTypedDict, +) +from .workflowrunwebhookresponse import ( + WorkflowRunWebhookResponse, + WorkflowRunWebhookResponseTypedDict, +) from .workflowwithname import WorkflowWithName, WorkflowWithNameTypedDict from .workspacegpu import WorkspaceGPU -__all__ = ["APIRoutesTypesMachineGPU2", "AssetResponse", "AssetResponseTypedDict", "BodyUploadAssetFileAssetsUploadPost", "BodyUploadAssetFileAssetsUploadPostFile", "BodyUploadAssetFileAssetsUploadPostFileTypedDict", "BodyUploadAssetFileAssetsUploadPostTypedDict", "BodyUploadFileFileUploadPost", "BodyUploadFileFileUploadPostTypedDict", "CancelFunctionBody", "CancelFunctionBodyTypedDict", "ClassType", "ClassTypeTypedDict", "CreateFolderRequest", "CreateFolderRequestTypedDict", "CreateRunResponse", "CreateRunResponseTypedDict", "CreateSessionBody", "CreateSessionBodyTypedDict", "CreateSessionResponse", "CreateSessionResponseTypedDict", "Data", "DataTypedDict", "DefaultValue", "DefaultValueTypedDict", "DeleteSessionResponse", "DeleteSessionResponseTypedDict", "DeploymentCreate", "DeploymentCreateTypedDict", "DeploymentEnvironment", "DeploymentModel", "DeploymentModelTypedDict", "DeploymentRunRequest", "DeploymentRunRequestTypedDict", "Event", "EventUpdate", "EventUpdateEvent", "EventUpdateEventEvent", "EventUpdateEventTypedDict", "EventUpdateTypedDict", "File", "FileTypedDict", "FileUploadResponse", "FileUploadResponseTypedDict", "GPUEventModel", "GPUEventModelTypedDict", "GPUProviderType", "Gpu", "HTTPMetadata", "HTTPMetadataTypedDict", "IncreaseTimeoutBody", "IncreaseTimeoutBodyTypedDict", "InputModel", "InputModelTypedDict", "Inputs", "InputsTypedDict", "Loc", "LocTypedDict", "LogDataContent", "LogDataContentTypedDict", "LogUpdateEvent", "LogUpdateEventTypedDict", "MachineGPUOutput", "MaxValue", "MaxValueTypedDict", "MediaItem", "MediaItemTypedDict", "MinValue", "MinValueTypedDict", "ModelInput", "ModelInputTypedDict", "ModelOutput", "ModelOutputClassType", "ModelOutputTypedDict", "ModelRunRequest", "ModelRunRequestGpu", "ModelRunRequestInputs", "ModelRunRequestInputsTypedDict", "ModelRunRequestTypedDict", "ModelSearchQuery", "ModelSearchQueryTypedDict", "ModelWithMetadata", "ModelWithMetadataTypedDict", "OutputModel", "OutputModelTypedDict", "RunStream", "RunStreamTypedDict", "SearchModelsResponse", "SearchModelsResponseTypedDict", "Security", "SecurityTypedDict", "Session", "SessionTypedDict", "ShareOptions", "ShareOptionsTypedDict", "ShowcaseMedia", "ShowcaseMediaTypedDict", "Step", "StepTypedDict", "Two", "ValidationError", "ValidationErrorTypedDict", "Workflow", "WorkflowAPIJSON", "WorkflowAPIJSONTypedDict", "WorkflowRunModel", "WorkflowRunModelTypedDict", "WorkflowRunOutputModel", "WorkflowRunOutputModelTypedDict", "WorkflowRunRequest", "WorkflowRunRequestGpu", "WorkflowRunRequestInputs", "WorkflowRunRequestInputsTypedDict", "WorkflowRunRequestTypedDict", "WorkflowRunStatus", "WorkflowRunVersionRequest", "WorkflowRunVersionRequestGpu", "WorkflowRunVersionRequestInputs", "WorkflowRunVersionRequestInputsTypedDict", "WorkflowRunVersionRequestTypedDict", "WorkflowRunWebhookBody", "WorkflowRunWebhookBodyTypedDict", "WorkflowRunWebhookResponse", "WorkflowRunWebhookResponseTypedDict", "WorkflowTypedDict", "WorkflowWithName", "WorkflowWithNameTypedDict", "WorkspaceGPU"] +__all__ = [ + "APIRoutesTypesMachineGPU2", + "AssetResponse", + "AssetResponseTypedDict", + "BodyUploadAssetFileAssetsUploadPost", + "BodyUploadAssetFileAssetsUploadPostFile", + "BodyUploadAssetFileAssetsUploadPostFileTypedDict", + "BodyUploadAssetFileAssetsUploadPostTypedDict", + "BodyUploadFileFileUploadPost", + "BodyUploadFileFileUploadPostTypedDict", + "CancelFunctionBody", + "CancelFunctionBodyTypedDict", + "ClassType", + "ClassTypeTypedDict", + "CreateFolderRequest", + "CreateFolderRequestTypedDict", + "CreateRunResponse", + "CreateRunResponseTypedDict", + "CreateSessionBody", + "CreateSessionBodyTypedDict", + "CreateSessionResponse", + "CreateSessionResponseTypedDict", + "Data", + "DataTypedDict", + "DefaultValue", + "DefaultValueTypedDict", + "DeleteSessionResponse", + "DeleteSessionResponseTypedDict", + "DeploymentCreate", + "DeploymentCreateTypedDict", + "DeploymentEnvironment", + "DeploymentModel", + "DeploymentModelTypedDict", + "DeploymentRunRequest", + "DeploymentRunRequestTypedDict", + "Event", + "EventUpdate", + "EventUpdateEvent", + "EventUpdateEventEvent", + "EventUpdateEventTypedDict", + "EventUpdateTypedDict", + "File", + "FileTypedDict", + "FileUploadResponse", + "FileUploadResponseTypedDict", + "GPUEventModel", + "GPUEventModelTypedDict", + "GPUProviderType", + "Gpu", + "HTTPMetadata", + "HTTPMetadataTypedDict", + "IncreaseTimeoutBody", + "IncreaseTimeoutBodyTypedDict", + "InputModel", + "InputModelTypedDict", + "Inputs", + "InputsTypedDict", + "Loc", + "LocTypedDict", + "LogDataContent", + "LogDataContentTypedDict", + "LogUpdateEvent", + "LogUpdateEventTypedDict", + "MachineGPUOutput", + "MaxValue", + "MaxValueTypedDict", + "MediaItem", + "MediaItemTypedDict", + "MinValue", + "MinValueTypedDict", + "ModelInput", + "ModelInputTypedDict", + "ModelOutput", + "ModelOutputClassType", + "ModelOutputTypedDict", + "ModelRunRequest", + "ModelRunRequestGpu", + "ModelRunRequestInputs", + "ModelRunRequestInputsTypedDict", + "ModelRunRequestTypedDict", + "ModelSearchQuery", + "ModelSearchQueryTypedDict", + "ModelWithMetadata", + "ModelWithMetadataTypedDict", + "OutputModel", + "OutputModelTypedDict", + "RunStream", + "RunStreamTypedDict", + "SearchModelsResponse", + "SearchModelsResponseTypedDict", + "Security", + "SecurityTypedDict", + "Session", + "SessionTypedDict", + "ShareOptions", + "ShareOptionsTypedDict", + "ShowcaseMedia", + "ShowcaseMediaTypedDict", + "Step", + "StepTypedDict", + "Two", + "ValidationError", + "ValidationErrorTypedDict", + "Workflow", + "WorkflowAPIJSON", + "WorkflowAPIJSONTypedDict", + "WorkflowRunModel", + "WorkflowRunModelTypedDict", + "WorkflowRunOutputModel", + "WorkflowRunOutputModelTypedDict", + "WorkflowRunRequest", + "WorkflowRunRequestGpu", + "WorkflowRunRequestInputs", + "WorkflowRunRequestInputsTypedDict", + "WorkflowRunRequestTypedDict", + "WorkflowRunStatus", + "WorkflowRunVersionRequest", + "WorkflowRunVersionRequestGpu", + "WorkflowRunVersionRequestInputs", + "WorkflowRunVersionRequestInputsTypedDict", + "WorkflowRunVersionRequestTypedDict", + "WorkflowRunWebhookBody", + "WorkflowRunWebhookBodyTypedDict", + "WorkflowRunWebhookResponse", + "WorkflowRunWebhookResponseTypedDict", + "WorkflowTypedDict", + "WorkflowWithName", + "WorkflowWithNameTypedDict", + "WorkspaceGPU", +] diff --git a/src/comfydeploy/models/components/assetresponse.py b/src/comfydeploy/models/components/assetresponse.py index d161ef7..5282796 100644 --- a/src/comfydeploy/models/components/assetresponse.py +++ b/src/comfydeploy/models/components/assetresponse.py @@ -1,11 +1,16 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from datetime import datetime from pydantic import model_serializer -from typing import TypedDict -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict class AssetResponseTypedDict(TypedDict): @@ -21,26 +26,51 @@ class AssetResponseTypedDict(TypedDict): url: NotRequired[Nullable[str]] mime_type: NotRequired[Nullable[str]] deleted: NotRequired[Nullable[bool]] - + class AssetResponse(BaseModel): id: str + name: str + is_folder: bool + path: str + created_at: datetime + updated_at: datetime + user_id: OptionalNullable[str] = UNSET + org_id: OptionalNullable[str] = UNSET + file_size: OptionalNullable[int] = UNSET + url: OptionalNullable[str] = UNSET + mime_type: OptionalNullable[str] = UNSET + deleted: OptionalNullable[bool] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["user_id", "org_id", "file_size", "url", "mime_type", "deleted"] - nullable_fields = ["user_id", "org_id", "file_size", "url", "mime_type", "deleted"] + optional_fields = [ + "user_id", + "org_id", + "file_size", + "url", + "mime_type", + "deleted", + ] + nullable_fields = [ + "user_id", + "org_id", + "file_size", + "url", + "mime_type", + "deleted", + ] null_default_fields = [] serialized = handler(self) @@ -50,9 +80,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -62,4 +96,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py b/src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py index d20a6b0..063e347 100644 --- a/src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py +++ b/src/comfydeploy/models/components/body_upload_asset_file_assets_upload_post.py @@ -5,26 +5,40 @@ from comfydeploy.utils import FieldMetadata, MultipartFormMetadata import io import pydantic -from typing import IO, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import IO, Optional, Union +from typing_extensions import Annotated, NotRequired, TypedDict class BodyUploadAssetFileAssetsUploadPostFileTypedDict(TypedDict): file_name: str content: Union[bytes, IO[bytes], io.BufferedReader] content_type: NotRequired[str] - + class BodyUploadAssetFileAssetsUploadPostFile(BaseModel): - file_name: Annotated[str, pydantic.Field(alias="file"), FieldMetadata(multipart=True)] - content: Annotated[Union[bytes, IO[bytes], io.BufferedReader], pydantic.Field(alias=""), FieldMetadata(multipart=MultipartFormMetadata(content=True))] - content_type: Annotated[Optional[str], pydantic.Field(alias="Content-Type"), FieldMetadata(multipart=True)] = None - + file_name: Annotated[ + str, pydantic.Field(alias="fileName"), FieldMetadata(multipart=True) + ] + + content: Annotated[ + Union[bytes, IO[bytes], io.BufferedReader], + pydantic.Field(alias=""), + FieldMetadata(multipart=MultipartFormMetadata(content=True)), + ] + + content_type: Annotated[ + Optional[str], + pydantic.Field(alias="Content-Type"), + FieldMetadata(multipart=True), + ] = None + class BodyUploadAssetFileAssetsUploadPostTypedDict(TypedDict): file: BodyUploadAssetFileAssetsUploadPostFileTypedDict - + class BodyUploadAssetFileAssetsUploadPost(BaseModel): - file: Annotated[BodyUploadAssetFileAssetsUploadPostFile, pydantic.Field(alias=""), FieldMetadata(multipart=MultipartFormMetadata(file=True))] - + file: Annotated[ + BodyUploadAssetFileAssetsUploadPostFile, + FieldMetadata(multipart=MultipartFormMetadata(file=True)), + ] diff --git a/src/comfydeploy/models/components/body_upload_file_file_upload_post.py b/src/comfydeploy/models/components/body_upload_file_file_upload_post.py index 9f008eb..2d214d7 100644 --- a/src/comfydeploy/models/components/body_upload_file_file_upload_post.py +++ b/src/comfydeploy/models/components/body_upload_file_file_upload_post.py @@ -5,26 +5,37 @@ from comfydeploy.utils import FieldMetadata, MultipartFormMetadata import io import pydantic -from typing import IO, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import IO, Optional, Union +from typing_extensions import Annotated, NotRequired, TypedDict class FileTypedDict(TypedDict): file_name: str content: Union[bytes, IO[bytes], io.BufferedReader] content_type: NotRequired[str] - + class File(BaseModel): - file_name: Annotated[str, pydantic.Field(alias="file"), FieldMetadata(multipart=True)] - content: Annotated[Union[bytes, IO[bytes], io.BufferedReader], pydantic.Field(alias=""), FieldMetadata(multipart=MultipartFormMetadata(content=True))] - content_type: Annotated[Optional[str], pydantic.Field(alias="Content-Type"), FieldMetadata(multipart=True)] = None - + file_name: Annotated[ + str, pydantic.Field(alias="fileName"), FieldMetadata(multipart=True) + ] + + content: Annotated[ + Union[bytes, IO[bytes], io.BufferedReader], + pydantic.Field(alias=""), + FieldMetadata(multipart=MultipartFormMetadata(content=True)), + ] + + content_type: Annotated[ + Optional[str], + pydantic.Field(alias="Content-Type"), + FieldMetadata(multipart=True), + ] = None + class BodyUploadFileFileUploadPostTypedDict(TypedDict): file: FileTypedDict - + class BodyUploadFileFileUploadPost(BaseModel): - file: Annotated[File, pydantic.Field(alias=""), FieldMetadata(multipart=MultipartFormMetadata(file=True))] - + file: Annotated[File, FieldMetadata(multipart=MultipartFormMetadata(file=True))] diff --git a/src/comfydeploy/models/components/cancelfunctionbody.py b/src/comfydeploy/models/components/cancelfunctionbody.py index d7b7b62..72f995c 100644 --- a/src/comfydeploy/models/components/cancelfunctionbody.py +++ b/src/comfydeploy/models/components/cancelfunctionbody.py @@ -2,13 +2,12 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class CancelFunctionBodyTypedDict(TypedDict): function_id: str - + class CancelFunctionBody(BaseModel): function_id: str - diff --git a/src/comfydeploy/models/components/createfolderrequest.py b/src/comfydeploy/models/components/createfolderrequest.py index 9377d64..21b035c 100644 --- a/src/comfydeploy/models/components/createfolderrequest.py +++ b/src/comfydeploy/models/components/createfolderrequest.py @@ -1,10 +1,15 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import TypedDict -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict class CreateFolderRequestTypedDict(TypedDict): @@ -12,14 +17,15 @@ class CreateFolderRequestTypedDict(TypedDict): r"""Folder name""" parent_path: NotRequired[Nullable[str]] r"""Parent folder path""" - + class CreateFolderRequest(BaseModel): name: str r"""Folder name""" + parent_path: OptionalNullable[str] = UNSET r"""Parent folder path""" - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["parent_path"] @@ -33,9 +39,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -45,4 +55,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/createrunresponse.py b/src/comfydeploy/models/components/createrunresponse.py index 60b6f6b..9b36f5d 100644 --- a/src/comfydeploy/models/components/createrunresponse.py +++ b/src/comfydeploy/models/components/createrunresponse.py @@ -2,15 +2,14 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class CreateRunResponseTypedDict(TypedDict): run_id: str r"""The ID of the run, use this to get the run status and outputs""" - + class CreateRunResponse(BaseModel): run_id: str r"""The ID of the run, use this to get the run status and outputs""" - diff --git a/src/comfydeploy/models/components/createsessionbody.py b/src/comfydeploy/models/components/createsessionbody.py index f822279..db57b70 100644 --- a/src/comfydeploy/models/components/createsessionbody.py +++ b/src/comfydeploy/models/components/createsessionbody.py @@ -2,10 +2,16 @@ from __future__ import annotations from .api_routes_types_machinegpu_2 import APIRoutesTypesMachineGPU2 -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import Optional, TypedDict -from typing_extensions import NotRequired +from typing import Optional +from typing_extensions import NotRequired, TypedDict class CreateSessionBodyTypedDict(TypedDict): @@ -16,17 +22,20 @@ class CreateSessionBodyTypedDict(TypedDict): r"""The timeout in minutes""" wait_for_server: NotRequired[bool] r"""Whether to create the session asynchronously""" - + class CreateSessionBody(BaseModel): machine_id: str + gpu: OptionalNullable[APIRoutesTypesMachineGPU2] = UNSET r"""The GPU to use""" + timeout: OptionalNullable[int] = UNSET r"""The timeout in minutes""" + wait_for_server: Optional[bool] = False r"""Whether to create the session asynchronously""" - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["gpu", "timeout", "wait_for_server"] @@ -40,9 +49,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -52,4 +65,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/createsessionresponse.py b/src/comfydeploy/models/components/createsessionresponse.py index c3b34d8..1813d38 100644 --- a/src/comfydeploy/models/components/createsessionresponse.py +++ b/src/comfydeploy/models/components/createsessionresponse.py @@ -1,21 +1,27 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import TypedDict -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict class CreateSessionResponseTypedDict(TypedDict): session_id: str url: NotRequired[Nullable[str]] - + class CreateSessionResponse(BaseModel): session_id: str + url: OptionalNullable[str] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["url"] @@ -29,9 +35,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -41,4 +51,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/deletesessionresponse.py b/src/comfydeploy/models/components/deletesessionresponse.py index f882bc5..bf8014c 100644 --- a/src/comfydeploy/models/components/deletesessionresponse.py +++ b/src/comfydeploy/models/components/deletesessionresponse.py @@ -2,13 +2,12 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class DeleteSessionResponseTypedDict(TypedDict): success: bool - + class DeleteSessionResponse(BaseModel): success: bool - diff --git a/src/comfydeploy/models/components/deploymentcreate.py b/src/comfydeploy/models/components/deploymentcreate.py index 2090c3b..02b708b 100644 --- a/src/comfydeploy/models/components/deploymentcreate.py +++ b/src/comfydeploy/models/components/deploymentcreate.py @@ -2,7 +2,7 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class DeploymentCreateTypedDict(TypedDict): @@ -10,11 +10,13 @@ class DeploymentCreateTypedDict(TypedDict): workflow_id: str machine_id: str environment: str - + class DeploymentCreate(BaseModel): workflow_version_id: str + workflow_id: str + machine_id: str + environment: str - diff --git a/src/comfydeploy/models/components/deploymentmodel.py b/src/comfydeploy/models/components/deploymentmodel.py index 5e4eaee..e2317d8 100644 --- a/src/comfydeploy/models/components/deploymentmodel.py +++ b/src/comfydeploy/models/components/deploymentmodel.py @@ -5,28 +5,34 @@ from .inputmodel import InputModel, InputModelTypedDict from .outputmodel import OutputModel, OutputModelTypedDict from .workflowwithname import WorkflowWithName, WorkflowWithNameTypedDict -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from datetime import datetime from pydantic import model_serializer -from typing import List, TypedDict -from typing_extensions import NotRequired +from typing import List +from typing_extensions import NotRequired, TypedDict class ShareOptionsTypedDict(TypedDict): pass - + class ShareOptions(BaseModel): pass - + class ShowcaseMediaTypedDict(TypedDict): pass - + class ShowcaseMedia(BaseModel): pass - + class DeploymentModelTypedDict(TypedDict): id: str @@ -45,30 +51,54 @@ class DeploymentModelTypedDict(TypedDict): workflow: NotRequired[Nullable[WorkflowWithNameTypedDict]] input_types: NotRequired[Nullable[List[InputModelTypedDict]]] output_types: NotRequired[Nullable[List[OutputModelTypedDict]]] - + class DeploymentModel(BaseModel): id: str + user_id: str + org_id: Nullable[str] + workflow_version_id: str + workflow_id: str + machine_id: str + share_slug: Nullable[str] + description: Nullable[str] + share_options: Nullable[ShareOptions] + showcase_media: Nullable[List[ShowcaseMedia]] + environment: DeploymentEnvironment + created_at: datetime + updated_at: datetime + workflow: OptionalNullable[WorkflowWithName] = UNSET + input_types: OptionalNullable[List[InputModel]] = UNSET + output_types: OptionalNullable[List[OutputModel]] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["workflow", "input_types", "output_types"] - nullable_fields = ["org_id", "share_slug", "description", "share_options", "showcase_media", "workflow", "input_types", "output_types"] + nullable_fields = [ + "org_id", + "share_slug", + "description", + "share_options", + "showcase_media", + "workflow", + "input_types", + "output_types", + ] null_default_fields = [] serialized = handler(self) @@ -78,9 +108,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -90,4 +124,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/deploymentrunrequest.py b/src/comfydeploy/models/components/deploymentrunrequest.py index 8d6d48a..bce8d72 100644 --- a/src/comfydeploy/models/components/deploymentrunrequest.py +++ b/src/comfydeploy/models/components/deploymentrunrequest.py @@ -3,18 +3,21 @@ from __future__ import annotations from comfydeploy.types import BaseModel from enum import Enum -from typing import Any, Dict, List, Optional, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, Dict, List, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -InputsTypedDict = Union[str, int, float, bool, List[Any]] +InputsTypedDict = TypeAliasType( + "InputsTypedDict", Union[str, int, float, bool, List[Any]] +) -Inputs = Union[str, int, float, bool, List[Any]] +Inputs = TypeAliasType("Inputs", Union[str, int, float, bool, List[Any]]) class Gpu(str, Enum): r"""The GPU to override the machine's default GPU""" + T4 = "T4" L4 = "L4" A10_G = "A10G" @@ -22,6 +25,7 @@ class Gpu(str, Enum): A100_80_GB = "A100-80GB" H100 = "H100" + class DeploymentRunRequestTypedDict(TypedDict): deployment_id: str inputs: NotRequired[Dict[str, InputsTypedDict]] @@ -30,14 +34,17 @@ class DeploymentRunRequestTypedDict(TypedDict): webhook_intermediate_status: NotRequired[bool] gpu: NotRequired[Gpu] r"""The GPU to override the machine's default GPU""" - + class DeploymentRunRequest(BaseModel): deployment_id: str + inputs: Optional[Dict[str, Inputs]] = None r"""The inputs to the workflow""" + webhook: Optional[str] = None + webhook_intermediate_status: Optional[bool] = False + gpu: Optional[Gpu] = None r"""The GPU to override the machine's default GPU""" - diff --git a/src/comfydeploy/models/components/eventupdate.py b/src/comfydeploy/models/components/eventupdate.py index 018ef09..42644eb 100644 --- a/src/comfydeploy/models/components/eventupdate.py +++ b/src/comfydeploy/models/components/eventupdate.py @@ -1,21 +1,28 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import Any, TypedDict -from typing_extensions import NotRequired +from typing import Any +from typing_extensions import NotRequired, TypedDict class EventUpdateTypedDict(TypedDict): event: NotRequired[Nullable[str]] data: NotRequired[Nullable[Any]] - + class EventUpdate(BaseModel): event: OptionalNullable[str] = UNSET + data: OptionalNullable[Any] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["event", "data"] @@ -29,9 +36,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -41,4 +52,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/eventupdateevent.py b/src/comfydeploy/models/components/eventupdateevent.py index 7fb5e0f..d5563a9 100644 --- a/src/comfydeploy/models/components/eventupdateevent.py +++ b/src/comfydeploy/models/components/eventupdateevent.py @@ -3,20 +3,30 @@ from __future__ import annotations from .eventupdate import EventUpdate, EventUpdateTypedDict from comfydeploy.types import BaseModel +from comfydeploy.utils import validate_const from enum import Enum import pydantic -from typing import Final, Optional, TypedDict -from typing_extensions import Annotated +from pydantic.functional_validators import AfterValidator +from typing import Optional +from typing_extensions import Annotated, TypedDict class EventUpdateEventEvent(str, Enum): EVENT_UPDATE = "event_update" + class EventUpdateEventTypedDict(TypedDict): data: EventUpdateTypedDict - + event: EventUpdateEventEvent + class EventUpdateEvent(BaseModel): data: EventUpdate - EVENT: Annotated[Final[Optional[EventUpdateEventEvent]], pydantic.Field(alias="event")] = EventUpdateEventEvent.EVENT_UPDATE # type: ignore - + + EVENT: Annotated[ + Annotated[ + Optional[EventUpdateEventEvent], + AfterValidator(validate_const(EventUpdateEventEvent.EVENT_UPDATE)), + ], + pydantic.Field(alias="event"), + ] = EventUpdateEventEvent.EVENT_UPDATE diff --git a/src/comfydeploy/models/components/fileuploadresponse.py b/src/comfydeploy/models/components/fileuploadresponse.py index 1c6f4ab..08ea92f 100644 --- a/src/comfydeploy/models/components/fileuploadresponse.py +++ b/src/comfydeploy/models/components/fileuploadresponse.py @@ -2,7 +2,7 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class FileUploadResponseTypedDict(TypedDict): @@ -14,15 +14,17 @@ class FileUploadResponseTypedDict(TypedDict): r"""The original name of the uploaded file""" file_url: str r"""The URL where the uploaded file can be accessed""" - + class FileUploadResponse(BaseModel): message: str r"""A message indicating the result of the file upload""" + file_id: str r"""The unique identifier for the uploaded file""" + file_name: str r"""The original name of the uploaded file""" + file_url: str r"""The URL where the uploaded file can be accessed""" - diff --git a/src/comfydeploy/models/components/gpueventmodel.py b/src/comfydeploy/models/components/gpueventmodel.py index a5042ba..c13ad80 100644 --- a/src/comfydeploy/models/components/gpueventmodel.py +++ b/src/comfydeploy/models/components/gpueventmodel.py @@ -4,12 +4,20 @@ from .gpuprovidertype import GPUProviderType from .machinegpu_output import MachineGPUOutput from .workspacegpu import WorkspaceGPU -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from comfydeploy.utils import validate_const from datetime import datetime import pydantic from pydantic import model_serializer -from typing import Final, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from pydantic.functional_validators import AfterValidator +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GPUEventModelTypedDict(TypedDict): @@ -21,6 +29,7 @@ class GPUEventModelTypedDict(TypedDict): end_time: Nullable[datetime] gpu: Nullable[MachineGPUOutput] gpu_provider: GPUProviderType + ws_gpu: Nullable[WorkspaceGPU] created_at: NotRequired[datetime] updated_at: NotRequired[datetime] session_timeout: NotRequired[Nullable[int]] @@ -29,31 +38,75 @@ class GPUEventModelTypedDict(TypedDict): tunnel_url: NotRequired[Nullable[str]] cost_item_title: NotRequired[Nullable[str]] cost: NotRequired[Nullable[float]] - + class GPUEventModel(BaseModel): id: str + user_id: str + org_id: Nullable[str] + machine_id: Nullable[str] + start_time: Nullable[datetime] + end_time: Nullable[datetime] + gpu: Nullable[MachineGPUOutput] + gpu_provider: GPUProviderType - WS_GPU: Annotated[Final[Nullable[WorkspaceGPU]], pydantic.Field(alias="ws_gpu")] = WorkspaceGPU.FOUR_THOUSAND_AND_NINETY # type: ignore + + WS_GPU: Annotated[ + Annotated[ + Nullable[WorkspaceGPU], + AfterValidator(validate_const(WorkspaceGPU.FOUR_THOUSAND_AND_NINETY)), + ], + pydantic.Field(alias="ws_gpu"), + ] = WorkspaceGPU.FOUR_THOUSAND_AND_NINETY + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + session_timeout: OptionalNullable[int] = UNSET + session_id: OptionalNullable[str] = UNSET + modal_function_id: OptionalNullable[str] = UNSET + tunnel_url: OptionalNullable[str] = UNSET + cost_item_title: OptionalNullable[str] = UNSET + cost: OptionalNullable[float] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["created_at", "updated_at", "session_timeout", "session_id", "modal_function_id", "tunnel_url", "cost_item_title", "cost"] - nullable_fields = ["org_id", "machine_id", "start_time", "end_time", "gpu", "ws_gpu", "session_timeout", "session_id", "modal_function_id", "tunnel_url", "cost_item_title", "cost"] + optional_fields = [ + "created_at", + "updated_at", + "session_timeout", + "session_id", + "modal_function_id", + "tunnel_url", + "cost_item_title", + "cost", + ] + nullable_fields = [ + "org_id", + "machine_id", + "start_time", + "end_time", + "gpu", + "ws_gpu", + "session_timeout", + "session_id", + "modal_function_id", + "tunnel_url", + "cost_item_title", + "cost", + ] null_default_fields = [] serialized = handler(self) @@ -63,9 +116,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -75,4 +132,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/httpmetadata.py b/src/comfydeploy/models/components/httpmetadata.py index 22e30e0..00ac558 100644 --- a/src/comfydeploy/models/components/httpmetadata.py +++ b/src/comfydeploy/models/components/httpmetadata.py @@ -4,8 +4,8 @@ from comfydeploy.types import BaseModel import httpx import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated +from typing import Optional +from typing_extensions import Annotated, TypedDict class HTTPMetadataTypedDict(TypedDict): @@ -13,11 +13,11 @@ class HTTPMetadataTypedDict(TypedDict): r"""Raw HTTP response; suitable for custom response parsing""" request: httpx.Request r"""Raw HTTP request; suitable for debugging""" - + class HTTPMetadata(BaseModel): response: Annotated[Optional[httpx.Response], pydantic.Field(exclude=True)] = None r"""Raw HTTP response; suitable for custom response parsing""" + request: Annotated[Optional[httpx.Request], pydantic.Field(exclude=True)] = None r"""Raw HTTP request; suitable for debugging""" - diff --git a/src/comfydeploy/models/components/increasetimeoutbody.py b/src/comfydeploy/models/components/increasetimeoutbody.py index 25ae578..d68d7a6 100644 --- a/src/comfydeploy/models/components/increasetimeoutbody.py +++ b/src/comfydeploy/models/components/increasetimeoutbody.py @@ -2,7 +2,7 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class IncreaseTimeoutBodyTypedDict(TypedDict): @@ -10,11 +10,13 @@ class IncreaseTimeoutBodyTypedDict(TypedDict): session_id: str timeout: int gpu: str - + class IncreaseTimeoutBody(BaseModel): machine_id: str + session_id: str + timeout: int + gpu: str - diff --git a/src/comfydeploy/models/components/inputmodel.py b/src/comfydeploy/models/components/inputmodel.py index 6771b56..dc24f2d 100644 --- a/src/comfydeploy/models/components/inputmodel.py +++ b/src/comfydeploy/models/components/inputmodel.py @@ -1,35 +1,43 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import Any, List, Optional, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, List, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -DefaultValueTypedDict = Union[str, int, float, bool, List[Any]] +DefaultValueTypedDict = TypeAliasType( + "DefaultValueTypedDict", Union[str, int, float, bool, List[Any]] +) -DefaultValue = Union[str, int, float, bool, List[Any]] +DefaultValue = TypeAliasType("DefaultValue", Union[str, int, float, bool, List[Any]]) -MinValueTypedDict = Union[int, float] +MinValueTypedDict = TypeAliasType("MinValueTypedDict", Union[int, float]) -MinValue = Union[int, float] +MinValue = TypeAliasType("MinValue", Union[int, float]) -MaxValueTypedDict = Union[int, float] +MaxValueTypedDict = TypeAliasType("MaxValueTypedDict", Union[int, float]) -MaxValue = Union[int, float] +MaxValue = TypeAliasType("MaxValue", Union[int, float]) -StepTypedDict = Union[int, float] +StepTypedDict = TypeAliasType("StepTypedDict", Union[int, float]) r"""Step for number slider input types""" -Step = Union[int, float] +Step = TypeAliasType("Step", Union[int, float]) r"""Step for number slider input types""" @@ -46,26 +54,49 @@ class InputModelTypedDict(TypedDict): r"""Options for enum input type""" step: NotRequired[Nullable[StepTypedDict]] r"""Step for number slider input types""" - + class InputModel(BaseModel): type: str + class_type: str + input_id: str + default_value: OptionalNullable[DefaultValue] = UNSET + min_value: OptionalNullable[MinValue] = UNSET + max_value: OptionalNullable[MaxValue] = UNSET + display_name: Optional[str] = "" + description: Optional[str] = "" + enum_options: OptionalNullable[List[str]] = UNSET r"""Options for enum input type""" + step: OptionalNullable[Step] = UNSET r"""Step for number slider input types""" - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["default_value", "min_value", "max_value", "display_name", "description", "enum_options", "step"] - nullable_fields = ["default_value", "min_value", "max_value", "enum_options", "step"] + optional_fields = [ + "default_value", + "min_value", + "max_value", + "display_name", + "description", + "enum_options", + "step", + ] + nullable_fields = [ + "default_value", + "min_value", + "max_value", + "enum_options", + "step", + ] null_default_fields = [] serialized = handler(self) @@ -75,9 +106,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -87,4 +122,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/logdatacontent.py b/src/comfydeploy/models/components/logdatacontent.py index 8b7ce39..9682b49 100644 --- a/src/comfydeploy/models/components/logdatacontent.py +++ b/src/comfydeploy/models/components/logdatacontent.py @@ -3,17 +3,17 @@ from __future__ import annotations from comfydeploy.types import BaseModel from datetime import datetime -from typing import TypedDict +from typing_extensions import TypedDict class LogDataContentTypedDict(TypedDict): logs: str timestamp: datetime r"""Timestamp in UTC""" - + class LogDataContent(BaseModel): logs: str + timestamp: datetime r"""Timestamp in UTC""" - diff --git a/src/comfydeploy/models/components/logupdateevent.py b/src/comfydeploy/models/components/logupdateevent.py index bdd2616..40bc8fc 100644 --- a/src/comfydeploy/models/components/logupdateevent.py +++ b/src/comfydeploy/models/components/logupdateevent.py @@ -3,20 +3,27 @@ from __future__ import annotations from .logdatacontent import LogDataContent, LogDataContentTypedDict from comfydeploy.types import BaseModel +from comfydeploy.utils import validate_const from enum import Enum import pydantic -from typing import Final, Optional, TypedDict -from typing_extensions import Annotated +from pydantic.functional_validators import AfterValidator +from typing import Optional +from typing_extensions import Annotated, TypedDict class Event(str, Enum): LOG_UPDATE = "log_update" + class LogUpdateEventTypedDict(TypedDict): data: LogDataContentTypedDict - + event: Event + class LogUpdateEvent(BaseModel): data: LogDataContent - EVENT: Annotated[Final[Optional[Event]], pydantic.Field(alias="event")] = Event.LOG_UPDATE # type: ignore - + + EVENT: Annotated[ + Annotated[Optional[Event], AfterValidator(validate_const(Event.LOG_UPDATE))], + pydantic.Field(alias="event"), + ] = Event.LOG_UPDATE diff --git a/src/comfydeploy/models/components/mediaitem.py b/src/comfydeploy/models/components/mediaitem.py index b85e2aa..21ef41e 100644 --- a/src/comfydeploy/models/components/mediaitem.py +++ b/src/comfydeploy/models/components/mediaitem.py @@ -1,10 +1,15 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import TypedDict -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict class MediaItemTypedDict(TypedDict): @@ -14,16 +19,21 @@ class MediaItemTypedDict(TypedDict): is_public: NotRequired[Nullable[bool]] subfolder: NotRequired[Nullable[str]] upload_duration: NotRequired[Nullable[float]] - + class MediaItem(BaseModel): url: str + type: str + filename: str + is_public: OptionalNullable[bool] = UNSET + subfolder: OptionalNullable[str] = UNSET + upload_duration: OptionalNullable[float] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["is_public", "subfolder", "upload_duration"] @@ -37,9 +47,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -49,4 +63,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/modelinput.py b/src/comfydeploy/models/components/modelinput.py index 9746cf8..55a4511 100644 --- a/src/comfydeploy/models/components/modelinput.py +++ b/src/comfydeploy/models/components/modelinput.py @@ -1,11 +1,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from enum import Enum from pydantic import model_serializer -from typing import Any, List, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, List, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict class Two(str, Enum): @@ -26,10 +32,11 @@ class Two(str, Enum): COMFY_UI_DEPLOY_EXTERNAL_NUMBER_SLIDER_INT = "ComfyUIDeployExternalNumberSliderInt" COMFY_UI_DEPLOY_EXTERNAL_ENUM = "ComfyUIDeployExternalEnum" -ClassTypeTypedDict = Union[str, Two] +ClassTypeTypedDict = TypeAliasType("ClassTypeTypedDict", Union[str, Two]) -ClassType = Union[str, Two] + +ClassType = TypeAliasType("ClassType", Union[str, Two]) class ModelInputTypedDict(TypedDict): @@ -42,23 +49,45 @@ class ModelInputTypedDict(TypedDict): display_name: NotRequired[Nullable[str]] description: NotRequired[Nullable[str]] enum_values: NotRequired[Nullable[List[str]]] - + class ModelInput(BaseModel): input_id: str + class_type: ClassType + required: bool + default_value: OptionalNullable[Any] = UNSET + min_value: OptionalNullable[Any] = UNSET + max_value: OptionalNullable[Any] = UNSET + display_name: OptionalNullable[str] = UNSET + description: OptionalNullable[str] = UNSET + enum_values: OptionalNullable[List[str]] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["default_value", "min_value", "max_value", "display_name", "description", "enum_values"] - nullable_fields = ["default_value", "min_value", "max_value", "display_name", "description", "enum_values"] + optional_fields = [ + "default_value", + "min_value", + "max_value", + "display_name", + "description", + "enum_values", + ] + nullable_fields = [ + "default_value", + "min_value", + "max_value", + "display_name", + "description", + "enum_values", + ] null_default_fields = [] serialized = handler(self) @@ -68,9 +97,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -80,4 +113,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/modeloutput.py b/src/comfydeploy/models/components/modeloutput.py index 32cdbf6..4509288 100644 --- a/src/comfydeploy/models/components/modeloutput.py +++ b/src/comfydeploy/models/components/modeloutput.py @@ -3,19 +3,20 @@ from __future__ import annotations from comfydeploy.types import BaseModel from enum import Enum -from typing import TypedDict +from typing_extensions import TypedDict class ModelOutputClassType(str, Enum): COMFY_DEPLOY_STD_OUTPUT_IMAGE = "ComfyDeployStdOutputImage" COMFY_DEPLOY_STD_OUTPUT_ANY = "ComfyDeployStdOutputAny" + class ModelOutputTypedDict(TypedDict): class_type: ModelOutputClassType output_id: str - + class ModelOutput(BaseModel): class_type: ModelOutputClassType + output_id: str - diff --git a/src/comfydeploy/models/components/modelrunrequest.py b/src/comfydeploy/models/components/modelrunrequest.py index 5c76ab8..176673e 100644 --- a/src/comfydeploy/models/components/modelrunrequest.py +++ b/src/comfydeploy/models/components/modelrunrequest.py @@ -3,18 +3,23 @@ from __future__ import annotations from comfydeploy.types import BaseModel from enum import Enum -from typing import Any, Dict, List, Optional, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, Dict, List, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -ModelRunRequestInputsTypedDict = Union[str, int, float, bool, List[Any]] +ModelRunRequestInputsTypedDict = TypeAliasType( + "ModelRunRequestInputsTypedDict", Union[str, int, float, bool, List[Any]] +) -ModelRunRequestInputs = Union[str, int, float, bool, List[Any]] +ModelRunRequestInputs = TypeAliasType( + "ModelRunRequestInputs", Union[str, int, float, bool, List[Any]] +) class ModelRunRequestGpu(str, Enum): r"""The GPU to override the machine's default GPU""" + T4 = "T4" L4 = "L4" A10_G = "A10G" @@ -22,6 +27,7 @@ class ModelRunRequestGpu(str, Enum): A100_80_GB = "A100-80GB" H100 = "H100" + class ModelRunRequestTypedDict(TypedDict): model_id: str inputs: NotRequired[Dict[str, ModelRunRequestInputsTypedDict]] @@ -30,14 +36,17 @@ class ModelRunRequestTypedDict(TypedDict): webhook_intermediate_status: NotRequired[bool] gpu: NotRequired[ModelRunRequestGpu] r"""The GPU to override the machine's default GPU""" - + class ModelRunRequest(BaseModel): model_id: str + inputs: Optional[Dict[str, ModelRunRequestInputs]] = None r"""The inputs to the workflow""" + webhook: Optional[str] = None + webhook_intermediate_status: Optional[bool] = False + gpu: Optional[ModelRunRequestGpu] = None r"""The GPU to override the machine's default GPU""" - diff --git a/src/comfydeploy/models/components/modelsearchquery.py b/src/comfydeploy/models/components/modelsearchquery.py index 0fe4fa5..54ed4cf 100644 --- a/src/comfydeploy/models/components/modelsearchquery.py +++ b/src/comfydeploy/models/components/modelsearchquery.py @@ -1,10 +1,16 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import Optional, TypedDict -from typing_extensions import NotRequired +from typing import Optional +from typing_extensions import NotRequired, TypedDict class ModelSearchQueryTypedDict(TypedDict): @@ -16,21 +22,37 @@ class ModelSearchQueryTypedDict(TypedDict): size: NotRequired[Nullable[int]] download_url: NotRequired[str] reference_url: NotRequired[str] - + class ModelSearchQuery(BaseModel): name: Optional[str] = None + type: OptionalNullable[str] = UNSET + provider: Optional[str] = None + filename: Optional[str] = None + save_path: Optional[str] = None + size: OptionalNullable[int] = UNSET + download_url: Optional[str] = None + reference_url: Optional[str] = None - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["name", "type", "provider", "filename", "save_path", "size", "download_url", "reference_url"] + optional_fields = [ + "name", + "type", + "provider", + "filename", + "save_path", + "size", + "download_url", + "reference_url", + ] nullable_fields = ["type", "size"] null_default_fields = [] @@ -41,9 +63,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -53,4 +79,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/modelwithmetadata.py b/src/comfydeploy/models/components/modelwithmetadata.py index c2efd43..cb5325a 100644 --- a/src/comfydeploy/models/components/modelwithmetadata.py +++ b/src/comfydeploy/models/components/modelwithmetadata.py @@ -3,10 +3,16 @@ from __future__ import annotations from .modelinput import ModelInput, ModelInputTypedDict from .modeloutput import ModelOutput, ModelOutputTypedDict -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import List, Optional, TypedDict -from typing_extensions import NotRequired +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict class ModelWithMetadataTypedDict(TypedDict): @@ -19,22 +25,36 @@ class ModelWithMetadataTypedDict(TypedDict): tags: NotRequired[List[str]] fal_id: NotRequired[Nullable[str]] cost_per_megapixel: NotRequired[Nullable[float]] - + class ModelWithMetadata(BaseModel): id: str + name: str + inputs: List[ModelInput] + outputs: List[ModelOutput] + is_comfyui: Optional[bool] = False + preview_image: OptionalNullable[str] = UNSET + tags: Optional[List[str]] = None + fal_id: OptionalNullable[str] = UNSET + cost_per_megapixel: OptionalNullable[float] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["is_comfyui", "preview_image", "tags", "fal_id", "cost_per_megapixel"] + optional_fields = [ + "is_comfyui", + "preview_image", + "tags", + "fal_id", + "cost_per_megapixel", + ] nullable_fields = ["preview_image", "fal_id", "cost_per_megapixel"] null_default_fields = [] @@ -45,9 +65,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -57,4 +81,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/outputmodel.py b/src/comfydeploy/models/components/outputmodel.py index a870851..20c609b 100644 --- a/src/comfydeploy/models/components/outputmodel.py +++ b/src/comfydeploy/models/components/outputmodel.py @@ -2,15 +2,15 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class OutputModelTypedDict(TypedDict): class_type: str output_id: str - + class OutputModel(BaseModel): class_type: str + output_id: str - diff --git a/src/comfydeploy/models/components/runstream.py b/src/comfydeploy/models/components/runstream.py index e67b67d..23b9a12 100644 --- a/src/comfydeploy/models/components/runstream.py +++ b/src/comfydeploy/models/components/runstream.py @@ -6,11 +6,18 @@ from comfydeploy.utils import get_discriminator from pydantic import Discriminator, Tag from typing import Union -from typing_extensions import Annotated +from typing_extensions import Annotated, TypeAliasType -RunStreamTypedDict = Union[LogUpdateEventTypedDict, EventUpdateEventTypedDict] +RunStreamTypedDict = TypeAliasType( + "RunStreamTypedDict", Union[LogUpdateEventTypedDict, EventUpdateEventTypedDict] +) -RunStream = Annotated[Union[Annotated[EventUpdateEvent, Tag("event_update")], Annotated[LogUpdateEvent, Tag("log_update")]], Discriminator(lambda m: get_discriminator(m, "event", "event"))] - +RunStream = Annotated[ + Union[ + Annotated[EventUpdateEvent, Tag("event_update")], + Annotated[LogUpdateEvent, Tag("log_update")], + ], + Discriminator(lambda m: get_discriminator(m, "event", "event")), +] diff --git a/src/comfydeploy/models/components/searchmodelsresponse.py b/src/comfydeploy/models/components/searchmodelsresponse.py index ef05f97..91ae4e2 100644 --- a/src/comfydeploy/models/components/searchmodelsresponse.py +++ b/src/comfydeploy/models/components/searchmodelsresponse.py @@ -3,13 +3,13 @@ from __future__ import annotations from .modelsearchquery import ModelSearchQuery, ModelSearchQueryTypedDict from comfydeploy.types import BaseModel -from typing import List, TypedDict +from typing import List +from typing_extensions import TypedDict class SearchModelsResponseTypedDict(TypedDict): models: List[ModelSearchQueryTypedDict] - + class SearchModelsResponse(BaseModel): models: List[ModelSearchQuery] - diff --git a/src/comfydeploy/models/components/security.py b/src/comfydeploy/models/components/security.py index 9b658a6..dac95b4 100644 --- a/src/comfydeploy/models/components/security.py +++ b/src/comfydeploy/models/components/security.py @@ -3,14 +3,22 @@ from __future__ import annotations from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, SecurityMetadata -from typing import TypedDict -from typing_extensions import Annotated +from typing_extensions import Annotated, TypedDict class SecurityTypedDict(TypedDict): bearer: str - + class Security(BaseModel): - bearer: Annotated[str, FieldMetadata(security=SecurityMetadata(scheme=True, scheme_type="http", sub_type="bearer", field_name="Authorization"))] - + bearer: Annotated[ + str, + FieldMetadata( + security=SecurityMetadata( + scheme=True, + scheme_type="http", + sub_type="bearer", + field_name="Authorization", + ) + ), + ] diff --git a/src/comfydeploy/models/components/session.py b/src/comfydeploy/models/components/session.py index 2d67388..808e3dd 100644 --- a/src/comfydeploy/models/components/session.py +++ b/src/comfydeploy/models/components/session.py @@ -3,7 +3,7 @@ from __future__ import annotations from comfydeploy.types import BaseModel from datetime import datetime -from typing import TypedDict +from typing_extensions import TypedDict class SessionTypedDict(TypedDict): @@ -14,14 +14,19 @@ class SessionTypedDict(TypedDict): created_at: datetime timeout: int machine_id: str - + class Session(BaseModel): session_id: str + gpu_event_id: str + url: str + gpu: str + created_at: datetime + timeout: int + machine_id: str - diff --git a/src/comfydeploy/models/components/validationerror.py b/src/comfydeploy/models/components/validationerror.py index d1ea895..4d1e9dd 100644 --- a/src/comfydeploy/models/components/validationerror.py +++ b/src/comfydeploy/models/components/validationerror.py @@ -2,23 +2,25 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import List, TypedDict, Union +from typing import List, Union +from typing_extensions import TypeAliasType, TypedDict -LocTypedDict = Union[str, int] +LocTypedDict = TypeAliasType("LocTypedDict", Union[str, int]) -Loc = Union[str, int] +Loc = TypeAliasType("Loc", Union[str, int]) class ValidationErrorTypedDict(TypedDict): loc: List[LocTypedDict] msg: str type: str - + class ValidationError(BaseModel): loc: List[Loc] + msg: str + type: str - diff --git a/src/comfydeploy/models/components/workflowrunmodel.py b/src/comfydeploy/models/components/workflowrunmodel.py index ca8d19b..17b6d68 100644 --- a/src/comfydeploy/models/components/workflowrunmodel.py +++ b/src/comfydeploy/models/components/workflowrunmodel.py @@ -1,12 +1,21 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .workflowrunoutputmodel import WorkflowRunOutputModel, WorkflowRunOutputModelTypedDict -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from .workflowrunoutputmodel import ( + WorkflowRunOutputModel, + WorkflowRunOutputModelTypedDict, +) +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from datetime import datetime from pydantic import model_serializer -from typing import Any, List, Optional, TypedDict -from typing_extensions import NotRequired +from typing import Any, List, Optional +from typing_extensions import NotRequired, TypedDict class WorkflowRunModelTypedDict(TypedDict): @@ -42,46 +51,107 @@ class WorkflowRunModelTypedDict(TypedDict): is_realtime: NotRequired[bool] webhook_intermediate_status: NotRequired[bool] outputs: NotRequired[List[WorkflowRunOutputModelTypedDict]] - + class WorkflowRunModel(BaseModel): id: str + workflow_version_id: Nullable[str] + workflow_inputs: Nullable[Any] + workflow_id: str + workflow_api: Nullable[Any] + machine_id: Nullable[str] + origin: str + status: str + created_at: datetime + updated_at: datetime + gpu_event_id: Nullable[str] + gpu: Nullable[str] + machine_version: Nullable[str] + machine_type: Nullable[str] + modal_function_call_id: Nullable[str] + user_id: Nullable[str] + org_id: Nullable[str] + live_status: Nullable[str] + webhook: Nullable[str] + webhook_status: Nullable[str] + number: int + duration: Nullable[float] + cold_start_duration: Nullable[float] + cold_start_duration_total: Nullable[float] + run_duration: Nullable[float] + ended_at: OptionalNullable[datetime] = UNSET + queued_at: OptionalNullable[datetime] = UNSET + started_at: OptionalNullable[datetime] = UNSET + progress: Optional[float] = 0 + is_realtime: Optional[bool] = False + webhook_intermediate_status: Optional[bool] = False + outputs: Optional[List[WorkflowRunOutputModel]] = None - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["ended_at", "queued_at", "started_at", "progress", "is_realtime", "webhook_intermediate_status", "outputs"] - nullable_fields = ["workflow_version_id", "workflow_inputs", "workflow_api", "machine_id", "gpu_event_id", "gpu", "machine_version", "machine_type", "modal_function_call_id", "user_id", "org_id", "live_status", "webhook", "webhook_status", "duration", "cold_start_duration", "cold_start_duration_total", "run_duration", "ended_at", "queued_at", "started_at"] + optional_fields = [ + "ended_at", + "queued_at", + "started_at", + "progress", + "is_realtime", + "webhook_intermediate_status", + "outputs", + ] + nullable_fields = [ + "workflow_version_id", + "workflow_inputs", + "workflow_api", + "machine_id", + "gpu_event_id", + "gpu", + "machine_version", + "machine_type", + "modal_function_call_id", + "user_id", + "org_id", + "live_status", + "webhook", + "webhook_status", + "duration", + "cold_start_duration", + "cold_start_duration_total", + "run_duration", + "ended_at", + "queued_at", + "started_at", + ] null_default_fields = [] serialized = handler(self) @@ -91,9 +161,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -103,4 +177,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/workflowrunoutputmodel.py b/src/comfydeploy/models/components/workflowrunoutputmodel.py index d4541c5..be2a76e 100644 --- a/src/comfydeploy/models/components/workflowrunoutputmodel.py +++ b/src/comfydeploy/models/components/workflowrunoutputmodel.py @@ -2,17 +2,23 @@ from __future__ import annotations from .mediaitem import MediaItem, MediaItemTypedDict -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from datetime import datetime from pydantic import model_serializer -from typing import Any, Dict, List, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, Dict, List, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -DataTypedDict = Union[MediaItemTypedDict, str] +DataTypedDict = TypeAliasType("DataTypedDict", Union[MediaItemTypedDict, str]) -Data = Union[MediaItem, str] +Data = TypeAliasType("Data", Union[MediaItem, str]) class WorkflowRunOutputModelTypedDict(TypedDict): @@ -24,18 +30,25 @@ class WorkflowRunOutputModelTypedDict(TypedDict): updated_at: datetime type: NotRequired[Nullable[str]] node_id: NotRequired[Nullable[str]] - + class WorkflowRunOutputModel(BaseModel): id: str + run_id: str + data: Dict[str, List[Data]] + node_meta: Nullable[Any] + created_at: datetime + updated_at: datetime + type: OptionalNullable[str] = UNSET + node_id: OptionalNullable[str] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["type", "node_id"] @@ -49,9 +62,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -61,4 +78,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/workflowrunrequest.py b/src/comfydeploy/models/components/workflowrunrequest.py index 7fb69d3..fbe8aa1 100644 --- a/src/comfydeploy/models/components/workflowrunrequest.py +++ b/src/comfydeploy/models/components/workflowrunrequest.py @@ -3,18 +3,23 @@ from __future__ import annotations from comfydeploy.types import BaseModel from enum import Enum -from typing import Any, Dict, List, Optional, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, Dict, List, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -WorkflowRunRequestInputsTypedDict = Union[str, int, float, bool, List[Any]] +WorkflowRunRequestInputsTypedDict = TypeAliasType( + "WorkflowRunRequestInputsTypedDict", Union[str, int, float, bool, List[Any]] +) -WorkflowRunRequestInputs = Union[str, int, float, bool, List[Any]] +WorkflowRunRequestInputs = TypeAliasType( + "WorkflowRunRequestInputs", Union[str, int, float, bool, List[Any]] +) class WorkflowRunRequestGpu(str, Enum): r"""The GPU to override the machine's default GPU""" + T4 = "T4" L4 = "L4" A10_G = "A10G" @@ -22,21 +27,22 @@ class WorkflowRunRequestGpu(str, Enum): A100_80_GB = "A100-80GB" H100 = "H100" + class WorkflowAPIJSONTypedDict(TypedDict): pass - + class WorkflowAPIJSON(BaseModel): pass - + class WorkflowTypedDict(TypedDict): pass - + class Workflow(BaseModel): pass - + class WorkflowRunRequestTypedDict(TypedDict): workflow_id: str @@ -49,17 +55,23 @@ class WorkflowRunRequestTypedDict(TypedDict): r"""The GPU to override the machine's default GPU""" workflow: NotRequired[WorkflowTypedDict] machine_id: NotRequired[str] - + class WorkflowRunRequest(BaseModel): workflow_id: str + workflow_api_json: WorkflowAPIJSON + inputs: Optional[Dict[str, WorkflowRunRequestInputs]] = None r"""The inputs to the workflow""" + webhook: Optional[str] = None + webhook_intermediate_status: Optional[bool] = False + gpu: Optional[WorkflowRunRequestGpu] = None r"""The GPU to override the machine's default GPU""" + workflow: Optional[Workflow] = None + machine_id: Optional[str] = None - diff --git a/src/comfydeploy/models/components/workflowrunversionrequest.py b/src/comfydeploy/models/components/workflowrunversionrequest.py index f3d5294..e905575 100644 --- a/src/comfydeploy/models/components/workflowrunversionrequest.py +++ b/src/comfydeploy/models/components/workflowrunversionrequest.py @@ -1,21 +1,32 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from enum import Enum from pydantic import model_serializer -from typing import Any, Dict, List, Optional, TypedDict, Union -from typing_extensions import NotRequired +from typing import Any, Dict, List, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict -WorkflowRunVersionRequestInputsTypedDict = Union[str, int, float, bool, List[Any]] +WorkflowRunVersionRequestInputsTypedDict = TypeAliasType( + "WorkflowRunVersionRequestInputsTypedDict", Union[str, int, float, bool, List[Any]] +) -WorkflowRunVersionRequestInputs = Union[str, int, float, bool, List[Any]] +WorkflowRunVersionRequestInputs = TypeAliasType( + "WorkflowRunVersionRequestInputs", Union[str, int, float, bool, List[Any]] +) class WorkflowRunVersionRequestGpu(str, Enum): r"""The GPU to override the machine's default GPU""" + T4 = "T4" L4 = "L4" A10_G = "A10G" @@ -23,6 +34,7 @@ class WorkflowRunVersionRequestGpu(str, Enum): A100_80_GB = "A100-80GB" H100 = "H100" + class WorkflowRunVersionRequestTypedDict(TypedDict): workflow_version_id: str inputs: NotRequired[Dict[str, WorkflowRunVersionRequestInputsTypedDict]] @@ -32,21 +44,32 @@ class WorkflowRunVersionRequestTypedDict(TypedDict): gpu: NotRequired[WorkflowRunVersionRequestGpu] r"""The GPU to override the machine's default GPU""" machine_id: NotRequired[Nullable[str]] - + class WorkflowRunVersionRequest(BaseModel): workflow_version_id: str + inputs: Optional[Dict[str, WorkflowRunVersionRequestInputs]] = None r"""The inputs to the workflow""" + webhook: Optional[str] = None + webhook_intermediate_status: Optional[bool] = False + gpu: Optional[WorkflowRunVersionRequestGpu] = None r"""The GPU to override the machine's default GPU""" + machine_id: OptionalNullable[str] = UNSET - + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = ["inputs", "webhook", "webhook_intermediate_status", "gpu", "machine_id"] + optional_fields = [ + "inputs", + "webhook", + "webhook_intermediate_status", + "gpu", + "machine_id", + ] nullable_fields = ["machine_id"] null_default_fields = [] @@ -57,9 +80,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -69,4 +96,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/workflowrunwebhookbody.py b/src/comfydeploy/models/components/workflowrunwebhookbody.py index a2f6454..460c808 100644 --- a/src/comfydeploy/models/components/workflowrunwebhookbody.py +++ b/src/comfydeploy/models/components/workflowrunwebhookbody.py @@ -1,12 +1,15 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .workflowrunoutputmodel import WorkflowRunOutputModel, WorkflowRunOutputModelTypedDict +from .workflowrunoutputmodel import ( + WorkflowRunOutputModel, + WorkflowRunOutputModelTypedDict, +) from .workflowrunstatus import WorkflowRunStatus from comfydeploy.types import BaseModel, Nullable, UNSET_SENTINEL from pydantic import model_serializer -from typing import List, Optional, TypedDict -from typing_extensions import NotRequired +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict class WorkflowRunWebhookBodyTypedDict(TypedDict): @@ -15,15 +18,19 @@ class WorkflowRunWebhookBodyTypedDict(TypedDict): live_status: Nullable[str] progress: NotRequired[float] outputs: NotRequired[List[WorkflowRunOutputModelTypedDict]] - + class WorkflowRunWebhookBody(BaseModel): run_id: str + status: WorkflowRunStatus + live_status: Nullable[str] + progress: Optional[float] = 0 + outputs: Optional[List[WorkflowRunOutputModel]] = None - + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["progress", "outputs"] @@ -37,9 +44,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -49,4 +60,3 @@ def serialize_model(self, handler): m[k] = val return m - diff --git a/src/comfydeploy/models/components/workflowrunwebhookresponse.py b/src/comfydeploy/models/components/workflowrunwebhookresponse.py index 7e1e620..1e7172b 100644 --- a/src/comfydeploy/models/components/workflowrunwebhookresponse.py +++ b/src/comfydeploy/models/components/workflowrunwebhookresponse.py @@ -2,13 +2,12 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class WorkflowRunWebhookResponseTypedDict(TypedDict): status: str - + class WorkflowRunWebhookResponse(BaseModel): status: str - diff --git a/src/comfydeploy/models/components/workflowwithname.py b/src/comfydeploy/models/components/workflowwithname.py index 8f248e6..7dfb1bb 100644 --- a/src/comfydeploy/models/components/workflowwithname.py +++ b/src/comfydeploy/models/components/workflowwithname.py @@ -2,15 +2,15 @@ from __future__ import annotations from comfydeploy.types import BaseModel -from typing import TypedDict +from typing_extensions import TypedDict class WorkflowWithNameTypedDict(TypedDict): id: str name: str - + class WorkflowWithName(BaseModel): id: str + name: str - diff --git a/src/comfydeploy/models/errors/httpvalidationerror.py b/src/comfydeploy/models/errors/httpvalidationerror.py index 8be3857..7b38ba1 100644 --- a/src/comfydeploy/models/errors/httpvalidationerror.py +++ b/src/comfydeploy/models/errors/httpvalidationerror.py @@ -6,13 +6,12 @@ from comfydeploy.types import BaseModel from typing import List, Optional + class HTTPValidationErrorData(BaseModel): detail: Optional[List[components_validationerror.ValidationError]] = None - class HTTPValidationError(Exception): - r"""Validation Error""" data: HTTPValidationErrorData def __init__(self, data: HTTPValidationErrorData): @@ -20,4 +19,3 @@ def __init__(self, data: HTTPValidationErrorData): def __str__(self) -> str: return utils.marshal_json(self.data, HTTPValidationErrorData) - diff --git a/src/comfydeploy/models/operations/__init__.py b/src/comfydeploy/models/operations/__init__.py index d538af0..342e41f 100644 --- a/src/comfydeploy/models/operations/__init__.py +++ b/src/comfydeploy/models/operations/__init__.py @@ -1,30 +1,217 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .cancel_run_run_run_id_cancel_post import CancelRunRunRunIDCancelPostRequest, CancelRunRunRunIDCancelPostRequestTypedDict, CancelRunRunRunIDCancelPostResponse, CancelRunRunRunIDCancelPostResponseTypedDict -from .create_deployment_deployment_post import CreateDeploymentDeploymentPostResponse, CreateDeploymentDeploymentPostResponseTypedDict -from .create_folder_assets_folder_post import CreateFolderAssetsFolderPostResponse, CreateFolderAssetsFolderPostResponseTypedDict -from .create_run_deployment_stream_run_deployment_stream_post import CreateRunDeploymentStreamRunDeploymentStreamPostResponse, CreateRunDeploymentStreamRunDeploymentStreamPostResponseTypedDict -from .create_run_queue_run_queue_post import CreateRunQueueRunQueuePostData, CreateRunQueueRunQueuePostDataTypedDict, CreateRunQueueRunQueuePostResponse, CreateRunQueueRunQueuePostResponseTypedDict -from .create_run_stream_run_stream_post import CreateRunStreamRunStreamPostData, CreateRunStreamRunStreamPostDataTypedDict, CreateRunStreamRunStreamPostResponse, CreateRunStreamRunStreamPostResponseTypedDict -from .create_run_sync_run_sync_post import CreateRunSyncRunSyncPostData, CreateRunSyncRunSyncPostDataTypedDict, CreateRunSyncRunSyncPostResponse, CreateRunSyncRunSyncPostResponseTypedDict -from .create_run_workflow_stream_run_workflow_stream_post import CreateRunWorkflowStreamRunWorkflowStreamPostResponse, CreateRunWorkflowStreamRunWorkflowStreamPostResponseTypedDict -from .create_session_session_post import CreateSessionSessionPostResponse, CreateSessionSessionPostResponseTypedDict -from .delete_asset_assets_asset_id_delete import DeleteAssetAssetsAssetIDDeleteRequest, DeleteAssetAssetsAssetIDDeleteRequestTypedDict, DeleteAssetAssetsAssetIDDeleteResponse, DeleteAssetAssetsAssetIDDeleteResponseTypedDict -from .delete_session_session_session_id_delete import DeleteSessionSessionSessionIDDeleteRequest, DeleteSessionSessionSessionIDDeleteRequestTypedDict, DeleteSessionSessionSessionIDDeleteResponse, DeleteSessionSessionSessionIDDeleteResponseTypedDict -from .get_asset_assets_asset_id_get import GetAssetAssetsAssetIDGetRequest, GetAssetAssetsAssetIDGetRequestTypedDict, GetAssetAssetsAssetIDGetResponse, GetAssetAssetsAssetIDGetResponseTypedDict -from .get_deployments_deployments_get import GetDeploymentsDeploymentsGetRequest, GetDeploymentsDeploymentsGetRequestTypedDict, GetDeploymentsDeploymentsGetResponse, GetDeploymentsDeploymentsGetResponseTypedDict -from .get_machine_sessions_sessions_get import GetMachineSessionsSessionsGetRequest, GetMachineSessionsSessionsGetRequestTypedDict, GetMachineSessionsSessionsGetResponse, GetMachineSessionsSessionsGetResponseTypedDict -from .get_run_run_run_id_get import GetRunRunRunIDGetRequest, GetRunRunRunIDGetRequestTypedDict, GetRunRunRunIDGetResponse, GetRunRunRunIDGetResponseTypedDict -from .get_session_session_session_id_get import GetSessionSessionSessionIDGetRequest, GetSessionSessionSessionIDGetRequestTypedDict, GetSessionSessionSessionIDGetResponse, GetSessionSessionSessionIDGetResponseTypedDict -from .increase_timeout_session_increase_timeout_post import IncreaseTimeoutSessionIncreaseTimeoutPostResponse, IncreaseTimeoutSessionIncreaseTimeoutPostResponseTypedDict -from .list_assets_assets_get import ListAssetsAssetsGetRequest, ListAssetsAssetsGetRequestTypedDict, ListAssetsAssetsGetResponse, ListAssetsAssetsGetResponseTypedDict -from .public_models_models_get import PublicModelsModelsGetResponse, PublicModelsModelsGetResponseTypedDict -from .queue_deployment_run_run_deployment_queue_post import QueueDeploymentRunRunDeploymentQueuePostResponse, QueueDeploymentRunRunDeploymentQueuePostResponseTypedDict -from .queue_workflow_run_run_workflow_queue_post import QueueWorkflowRunRunWorkflowQueuePostResponse, QueueWorkflowRunRunWorkflowQueuePostResponseTypedDict -from .search_search_model_get import SearchSearchModelGetRequest, SearchSearchModelGetRequestTypedDict, SearchSearchModelGetResponse, SearchSearchModelGetResponseTypedDict -from .sync_deployment_run_run_deployment_sync_post import SyncDeploymentRunRunDeploymentSyncPostResponse, SyncDeploymentRunRunDeploymentSyncPostResponseTypedDict -from .sync_workflow_run_run_workflow_sync_post import SyncWorkflowRunRunWorkflowSyncPostResponse, SyncWorkflowRunRunWorkflowSyncPostResponseTypedDict -from .upload_asset_file_assets_upload_post import UploadAssetFileAssetsUploadPostRequest, UploadAssetFileAssetsUploadPostRequestTypedDict, UploadAssetFileAssetsUploadPostResponse, UploadAssetFileAssetsUploadPostResponseTypedDict -from .upload_file_file_upload_post import UploadFileFileUploadPostResponse, UploadFileFileUploadPostResponseTypedDict +from .cancel_run_run_run_id_cancel_post import ( + CancelRunRunRunIDCancelPostRequest, + CancelRunRunRunIDCancelPostRequestTypedDict, + CancelRunRunRunIDCancelPostResponse, + CancelRunRunRunIDCancelPostResponseTypedDict, +) +from .create_deployment_deployment_post import ( + CreateDeploymentDeploymentPostResponse, + CreateDeploymentDeploymentPostResponseTypedDict, +) +from .create_folder_assets_folder_post import ( + CreateFolderAssetsFolderPostResponse, + CreateFolderAssetsFolderPostResponseTypedDict, +) +from .create_run_deployment_stream_run_deployment_stream_post import ( + CreateRunDeploymentStreamRunDeploymentStreamPostResponse, + CreateRunDeploymentStreamRunDeploymentStreamPostResponseTypedDict, +) +from .create_run_queue_run_queue_post import ( + CreateRunQueueRunQueuePostData, + CreateRunQueueRunQueuePostDataTypedDict, + CreateRunQueueRunQueuePostResponse, + CreateRunQueueRunQueuePostResponseTypedDict, +) +from .create_run_stream_run_stream_post import ( + CreateRunStreamRunStreamPostData, + CreateRunStreamRunStreamPostDataTypedDict, + CreateRunStreamRunStreamPostResponse, + CreateRunStreamRunStreamPostResponseTypedDict, +) +from .create_run_sync_run_sync_post import ( + CreateRunSyncRunSyncPostData, + CreateRunSyncRunSyncPostDataTypedDict, + CreateRunSyncRunSyncPostResponse, + CreateRunSyncRunSyncPostResponseTypedDict, +) +from .create_run_workflow_stream_run_workflow_stream_post import ( + CreateRunWorkflowStreamRunWorkflowStreamPostResponse, + CreateRunWorkflowStreamRunWorkflowStreamPostResponseTypedDict, +) +from .create_session_session_post import ( + CreateSessionSessionPostResponse, + CreateSessionSessionPostResponseTypedDict, +) +from .delete_asset_assets_asset_id_delete import ( + DeleteAssetAssetsAssetIDDeleteRequest, + DeleteAssetAssetsAssetIDDeleteRequestTypedDict, + DeleteAssetAssetsAssetIDDeleteResponse, + DeleteAssetAssetsAssetIDDeleteResponseTypedDict, +) +from .delete_session_session_session_id_delete import ( + DeleteSessionSessionSessionIDDeleteRequest, + DeleteSessionSessionSessionIDDeleteRequestTypedDict, + DeleteSessionSessionSessionIDDeleteResponse, + DeleteSessionSessionSessionIDDeleteResponseTypedDict, +) +from .get_asset_assets_asset_id_get import ( + GetAssetAssetsAssetIDGetRequest, + GetAssetAssetsAssetIDGetRequestTypedDict, + GetAssetAssetsAssetIDGetResponse, + GetAssetAssetsAssetIDGetResponseTypedDict, +) +from .get_deployments_deployments_get import ( + GetDeploymentsDeploymentsGetRequest, + GetDeploymentsDeploymentsGetRequestTypedDict, + GetDeploymentsDeploymentsGetResponse, + GetDeploymentsDeploymentsGetResponseTypedDict, +) +from .get_machine_sessions_sessions_get import ( + GetMachineSessionsSessionsGetRequest, + GetMachineSessionsSessionsGetRequestTypedDict, + GetMachineSessionsSessionsGetResponse, + GetMachineSessionsSessionsGetResponseTypedDict, +) +from .get_run_run_run_id_get import ( + GetRunRunRunIDGetRequest, + GetRunRunRunIDGetRequestTypedDict, + GetRunRunRunIDGetResponse, + GetRunRunRunIDGetResponseTypedDict, +) +from .get_session_session_session_id_get import ( + GetSessionSessionSessionIDGetRequest, + GetSessionSessionSessionIDGetRequestTypedDict, + GetSessionSessionSessionIDGetResponse, + GetSessionSessionSessionIDGetResponseTypedDict, +) +from .increase_timeout_session_increase_timeout_post import ( + IncreaseTimeoutSessionIncreaseTimeoutPostResponse, + IncreaseTimeoutSessionIncreaseTimeoutPostResponseTypedDict, +) +from .list_assets_assets_get import ( + ListAssetsAssetsGetRequest, + ListAssetsAssetsGetRequestTypedDict, + ListAssetsAssetsGetResponse, + ListAssetsAssetsGetResponseTypedDict, +) +from .public_models_models_get import ( + PublicModelsModelsGetResponse, + PublicModelsModelsGetResponseTypedDict, +) +from .queue_deployment_run_run_deployment_queue_post import ( + QueueDeploymentRunRunDeploymentQueuePostResponse, + QueueDeploymentRunRunDeploymentQueuePostResponseTypedDict, +) +from .queue_workflow_run_run_workflow_queue_post import ( + QueueWorkflowRunRunWorkflowQueuePostResponse, + QueueWorkflowRunRunWorkflowQueuePostResponseTypedDict, +) +from .search_search_model_get import ( + SearchSearchModelGetRequest, + SearchSearchModelGetRequestTypedDict, + SearchSearchModelGetResponse, + SearchSearchModelGetResponseTypedDict, +) +from .sync_deployment_run_run_deployment_sync_post import ( + SyncDeploymentRunRunDeploymentSyncPostResponse, + SyncDeploymentRunRunDeploymentSyncPostResponseTypedDict, +) +from .sync_workflow_run_run_workflow_sync_post import ( + SyncWorkflowRunRunWorkflowSyncPostResponse, + SyncWorkflowRunRunWorkflowSyncPostResponseTypedDict, +) +from .upload_asset_file_assets_upload_post import ( + UploadAssetFileAssetsUploadPostRequest, + UploadAssetFileAssetsUploadPostRequestTypedDict, + UploadAssetFileAssetsUploadPostResponse, + UploadAssetFileAssetsUploadPostResponseTypedDict, +) +from .upload_file_file_upload_post import ( + UploadFileFileUploadPostResponse, + UploadFileFileUploadPostResponseTypedDict, +) -__all__ = ["CancelRunRunRunIDCancelPostRequest", "CancelRunRunRunIDCancelPostRequestTypedDict", "CancelRunRunRunIDCancelPostResponse", "CancelRunRunRunIDCancelPostResponseTypedDict", "CreateDeploymentDeploymentPostResponse", "CreateDeploymentDeploymentPostResponseTypedDict", "CreateFolderAssetsFolderPostResponse", "CreateFolderAssetsFolderPostResponseTypedDict", "CreateRunDeploymentStreamRunDeploymentStreamPostResponse", "CreateRunDeploymentStreamRunDeploymentStreamPostResponseTypedDict", "CreateRunQueueRunQueuePostData", "CreateRunQueueRunQueuePostDataTypedDict", "CreateRunQueueRunQueuePostResponse", "CreateRunQueueRunQueuePostResponseTypedDict", "CreateRunStreamRunStreamPostData", "CreateRunStreamRunStreamPostDataTypedDict", "CreateRunStreamRunStreamPostResponse", "CreateRunStreamRunStreamPostResponseTypedDict", "CreateRunSyncRunSyncPostData", "CreateRunSyncRunSyncPostDataTypedDict", "CreateRunSyncRunSyncPostResponse", "CreateRunSyncRunSyncPostResponseTypedDict", "CreateRunWorkflowStreamRunWorkflowStreamPostResponse", "CreateRunWorkflowStreamRunWorkflowStreamPostResponseTypedDict", "CreateSessionSessionPostResponse", "CreateSessionSessionPostResponseTypedDict", "DeleteAssetAssetsAssetIDDeleteRequest", "DeleteAssetAssetsAssetIDDeleteRequestTypedDict", "DeleteAssetAssetsAssetIDDeleteResponse", "DeleteAssetAssetsAssetIDDeleteResponseTypedDict", "DeleteSessionSessionSessionIDDeleteRequest", "DeleteSessionSessionSessionIDDeleteRequestTypedDict", "DeleteSessionSessionSessionIDDeleteResponse", "DeleteSessionSessionSessionIDDeleteResponseTypedDict", "GetAssetAssetsAssetIDGetRequest", "GetAssetAssetsAssetIDGetRequestTypedDict", "GetAssetAssetsAssetIDGetResponse", "GetAssetAssetsAssetIDGetResponseTypedDict", "GetDeploymentsDeploymentsGetRequest", "GetDeploymentsDeploymentsGetRequestTypedDict", "GetDeploymentsDeploymentsGetResponse", "GetDeploymentsDeploymentsGetResponseTypedDict", "GetMachineSessionsSessionsGetRequest", "GetMachineSessionsSessionsGetRequestTypedDict", "GetMachineSessionsSessionsGetResponse", "GetMachineSessionsSessionsGetResponseTypedDict", "GetRunRunRunIDGetRequest", "GetRunRunRunIDGetRequestTypedDict", "GetRunRunRunIDGetResponse", "GetRunRunRunIDGetResponseTypedDict", "GetSessionSessionSessionIDGetRequest", "GetSessionSessionSessionIDGetRequestTypedDict", "GetSessionSessionSessionIDGetResponse", "GetSessionSessionSessionIDGetResponseTypedDict", "IncreaseTimeoutSessionIncreaseTimeoutPostResponse", "IncreaseTimeoutSessionIncreaseTimeoutPostResponseTypedDict", "ListAssetsAssetsGetRequest", "ListAssetsAssetsGetRequestTypedDict", "ListAssetsAssetsGetResponse", "ListAssetsAssetsGetResponseTypedDict", "PublicModelsModelsGetResponse", "PublicModelsModelsGetResponseTypedDict", "QueueDeploymentRunRunDeploymentQueuePostResponse", "QueueDeploymentRunRunDeploymentQueuePostResponseTypedDict", "QueueWorkflowRunRunWorkflowQueuePostResponse", "QueueWorkflowRunRunWorkflowQueuePostResponseTypedDict", "SearchSearchModelGetRequest", "SearchSearchModelGetRequestTypedDict", "SearchSearchModelGetResponse", "SearchSearchModelGetResponseTypedDict", "SyncDeploymentRunRunDeploymentSyncPostResponse", "SyncDeploymentRunRunDeploymentSyncPostResponseTypedDict", "SyncWorkflowRunRunWorkflowSyncPostResponse", "SyncWorkflowRunRunWorkflowSyncPostResponseTypedDict", "UploadAssetFileAssetsUploadPostRequest", "UploadAssetFileAssetsUploadPostRequestTypedDict", "UploadAssetFileAssetsUploadPostResponse", "UploadAssetFileAssetsUploadPostResponseTypedDict", "UploadFileFileUploadPostResponse", "UploadFileFileUploadPostResponseTypedDict"] +__all__ = [ + "CancelRunRunRunIDCancelPostRequest", + "CancelRunRunRunIDCancelPostRequestTypedDict", + "CancelRunRunRunIDCancelPostResponse", + "CancelRunRunRunIDCancelPostResponseTypedDict", + "CreateDeploymentDeploymentPostResponse", + "CreateDeploymentDeploymentPostResponseTypedDict", + "CreateFolderAssetsFolderPostResponse", + "CreateFolderAssetsFolderPostResponseTypedDict", + "CreateRunDeploymentStreamRunDeploymentStreamPostResponse", + "CreateRunDeploymentStreamRunDeploymentStreamPostResponseTypedDict", + "CreateRunQueueRunQueuePostData", + "CreateRunQueueRunQueuePostDataTypedDict", + "CreateRunQueueRunQueuePostResponse", + "CreateRunQueueRunQueuePostResponseTypedDict", + "CreateRunStreamRunStreamPostData", + "CreateRunStreamRunStreamPostDataTypedDict", + "CreateRunStreamRunStreamPostResponse", + "CreateRunStreamRunStreamPostResponseTypedDict", + "CreateRunSyncRunSyncPostData", + "CreateRunSyncRunSyncPostDataTypedDict", + "CreateRunSyncRunSyncPostResponse", + "CreateRunSyncRunSyncPostResponseTypedDict", + "CreateRunWorkflowStreamRunWorkflowStreamPostResponse", + "CreateRunWorkflowStreamRunWorkflowStreamPostResponseTypedDict", + "CreateSessionSessionPostResponse", + "CreateSessionSessionPostResponseTypedDict", + "DeleteAssetAssetsAssetIDDeleteRequest", + "DeleteAssetAssetsAssetIDDeleteRequestTypedDict", + "DeleteAssetAssetsAssetIDDeleteResponse", + "DeleteAssetAssetsAssetIDDeleteResponseTypedDict", + "DeleteSessionSessionSessionIDDeleteRequest", + "DeleteSessionSessionSessionIDDeleteRequestTypedDict", + "DeleteSessionSessionSessionIDDeleteResponse", + "DeleteSessionSessionSessionIDDeleteResponseTypedDict", + "GetAssetAssetsAssetIDGetRequest", + "GetAssetAssetsAssetIDGetRequestTypedDict", + "GetAssetAssetsAssetIDGetResponse", + "GetAssetAssetsAssetIDGetResponseTypedDict", + "GetDeploymentsDeploymentsGetRequest", + "GetDeploymentsDeploymentsGetRequestTypedDict", + "GetDeploymentsDeploymentsGetResponse", + "GetDeploymentsDeploymentsGetResponseTypedDict", + "GetMachineSessionsSessionsGetRequest", + "GetMachineSessionsSessionsGetRequestTypedDict", + "GetMachineSessionsSessionsGetResponse", + "GetMachineSessionsSessionsGetResponseTypedDict", + "GetRunRunRunIDGetRequest", + "GetRunRunRunIDGetRequestTypedDict", + "GetRunRunRunIDGetResponse", + "GetRunRunRunIDGetResponseTypedDict", + "GetSessionSessionSessionIDGetRequest", + "GetSessionSessionSessionIDGetRequestTypedDict", + "GetSessionSessionSessionIDGetResponse", + "GetSessionSessionSessionIDGetResponseTypedDict", + "IncreaseTimeoutSessionIncreaseTimeoutPostResponse", + "IncreaseTimeoutSessionIncreaseTimeoutPostResponseTypedDict", + "ListAssetsAssetsGetRequest", + "ListAssetsAssetsGetRequestTypedDict", + "ListAssetsAssetsGetResponse", + "ListAssetsAssetsGetResponseTypedDict", + "PublicModelsModelsGetResponse", + "PublicModelsModelsGetResponseTypedDict", + "QueueDeploymentRunRunDeploymentQueuePostResponse", + "QueueDeploymentRunRunDeploymentQueuePostResponseTypedDict", + "QueueWorkflowRunRunWorkflowQueuePostResponse", + "QueueWorkflowRunRunWorkflowQueuePostResponseTypedDict", + "SearchSearchModelGetRequest", + "SearchSearchModelGetRequestTypedDict", + "SearchSearchModelGetResponse", + "SearchSearchModelGetResponseTypedDict", + "SyncDeploymentRunRunDeploymentSyncPostResponse", + "SyncDeploymentRunRunDeploymentSyncPostResponseTypedDict", + "SyncWorkflowRunRunWorkflowSyncPostResponse", + "SyncWorkflowRunRunWorkflowSyncPostResponseTypedDict", + "UploadAssetFileAssetsUploadPostRequest", + "UploadAssetFileAssetsUploadPostRequestTypedDict", + "UploadAssetFileAssetsUploadPostResponse", + "UploadAssetFileAssetsUploadPostResponseTypedDict", + "UploadFileFileUploadPostResponse", + "UploadFileFileUploadPostResponseTypedDict", +] diff --git a/src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py b/src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py index 172c007..ae31d86 100644 --- a/src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py +++ b/src/comfydeploy/models/operations/cancel_run_run_run_id_cancel_post.py @@ -1,32 +1,43 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import cancelfunctionbody as components_cancelfunctionbody, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + cancelfunctionbody as components_cancelfunctionbody, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata, RequestMetadata import pydantic -from typing import Any, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Any, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class CancelRunRunRunIDCancelPostRequestTypedDict(TypedDict): run_id: str cancel_function_body: components_cancelfunctionbody.CancelFunctionBodyTypedDict - + class CancelRunRunRunIDCancelPostRequest(BaseModel): - run_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - cancel_function_body: Annotated[components_cancelfunctionbody.CancelFunctionBody, FieldMetadata(request=RequestMetadata(media_type="application/json"))] - + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + cancel_function_body: Annotated[ + components_cancelfunctionbody.CancelFunctionBody, + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] + class CancelRunRunRunIDCancelPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict any: NotRequired[Any] r"""Successful Response""" - + class CancelRunRunRunIDCancelPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + any: Optional[Any] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/create_deployment_deployment_post.py b/src/comfydeploy/models/operations/create_deployment_deployment_post.py index 04d21b8..c92a401 100644 --- a/src/comfydeploy/models/operations/create_deployment_deployment_post.py +++ b/src/comfydeploy/models/operations/create_deployment_deployment_post.py @@ -1,21 +1,26 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import deploymentmodel as components_deploymentmodel, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + deploymentmodel as components_deploymentmodel, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class CreateDeploymentDeploymentPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict deployment_model: NotRequired[components_deploymentmodel.DeploymentModelTypedDict] r"""Successful Response""" - + class CreateDeploymentDeploymentPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + deployment_model: Optional[components_deploymentmodel.DeploymentModel] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/create_folder_assets_folder_post.py b/src/comfydeploy/models/operations/create_folder_assets_folder_post.py index 8d09a43..3272471 100644 --- a/src/comfydeploy/models/operations/create_folder_assets_folder_post.py +++ b/src/comfydeploy/models/operations/create_folder_assets_folder_post.py @@ -1,21 +1,26 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import assetresponse as components_assetresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + assetresponse as components_assetresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class CreateFolderAssetsFolderPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict asset_response: NotRequired[components_assetresponse.AssetResponseTypedDict] r"""Successful Response""" - + class CreateFolderAssetsFolderPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + asset_response: Optional[components_assetresponse.AssetResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py b/src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py index 755c460..71f7e68 100644 --- a/src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py +++ b/src/comfydeploy/models/operations/create_run_deployment_stream_run_deployment_stream_post.py @@ -1,22 +1,40 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, runstream as components_runstream +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + runstream as components_runstream, +) from comfydeploy.types import BaseModel +from comfydeploy.utils import eventstreaming import pydantic from pydantic import SkipValidation -from typing import AsyncGenerator, Generator, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import Optional, Union +from typing_extensions import Annotated, NotRequired, TypedDict class CreateRunDeploymentStreamRunDeploymentStreamPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - run_stream: NotRequired[Union[Generator[components_runstream.RunStreamTypedDict, None, None], AsyncGenerator[components_runstream.RunStreamTypedDict, None]]] + run_stream: NotRequired[ + Union[ + eventstreaming.EventStream[components_runstream.RunStreamTypedDict], + eventstreaming.EventStreamAsync[components_runstream.RunStreamTypedDict], + ] + ] r"""Stream of workflow run events""" - + class CreateRunDeploymentStreamRunDeploymentStreamPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - run_stream: SkipValidation[Optional[Union[Generator[components_runstream.RunStream, None, None], AsyncGenerator[components_runstream.RunStream, None]]]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + run_stream: SkipValidation[ + Optional[ + Union[ + eventstreaming.EventStream[components_runstream.RunStream], + eventstreaming.EventStreamAsync[components_runstream.RunStream], + ] + ] + ] = None r"""Stream of workflow run events""" - diff --git a/src/comfydeploy/models/operations/create_run_queue_run_queue_post.py b/src/comfydeploy/models/operations/create_run_queue_run_queue_post.py index fd798d4..b7d29c2 100644 --- a/src/comfydeploy/models/operations/create_run_queue_run_queue_post.py +++ b/src/comfydeploy/models/operations/create_run_queue_run_queue_post.py @@ -1,27 +1,54 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import createrunresponse as components_createrunresponse, deploymentrunrequest as components_deploymentrunrequest, httpmetadata as components_httpmetadata, modelrunrequest as components_modelrunrequest, workflowrunrequest as components_workflowrunrequest, workflowrunversionrequest as components_workflowrunversionrequest +from comfydeploy.models.components import ( + createrunresponse as components_createrunresponse, + deploymentrunrequest as components_deploymentrunrequest, + httpmetadata as components_httpmetadata, + modelrunrequest as components_modelrunrequest, + workflowrunrequest as components_workflowrunrequest, + workflowrunversionrequest as components_workflowrunversionrequest, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -CreateRunQueueRunQueuePostDataTypedDict = Union[components_deploymentrunrequest.DeploymentRunRequestTypedDict, components_modelrunrequest.ModelRunRequestTypedDict, components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, components_workflowrunrequest.WorkflowRunRequestTypedDict] +CreateRunQueueRunQueuePostDataTypedDict = TypeAliasType( + "CreateRunQueueRunQueuePostDataTypedDict", + Union[ + components_deploymentrunrequest.DeploymentRunRequestTypedDict, + components_modelrunrequest.ModelRunRequestTypedDict, + components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, + components_workflowrunrequest.WorkflowRunRequestTypedDict, + ], +) -CreateRunQueueRunQueuePostData = Union[components_deploymentrunrequest.DeploymentRunRequest, components_modelrunrequest.ModelRunRequest, components_workflowrunversionrequest.WorkflowRunVersionRequest, components_workflowrunrequest.WorkflowRunRequest] +CreateRunQueueRunQueuePostData = TypeAliasType( + "CreateRunQueueRunQueuePostData", + Union[ + components_deploymentrunrequest.DeploymentRunRequest, + components_modelrunrequest.ModelRunRequest, + components_workflowrunversionrequest.WorkflowRunVersionRequest, + components_workflowrunrequest.WorkflowRunRequest, + ], +) class CreateRunQueueRunQueuePostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - create_run_response: NotRequired[components_createrunresponse.CreateRunResponseTypedDict] + create_run_response: NotRequired[ + components_createrunresponse.CreateRunResponseTypedDict + ] r"""Successful Response""" - + class CreateRunQueueRunQueuePostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + create_run_response: Optional[components_createrunresponse.CreateRunResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/create_run_stream_run_stream_post.py b/src/comfydeploy/models/operations/create_run_stream_run_stream_post.py index 027bfa8..07bd703 100644 --- a/src/comfydeploy/models/operations/create_run_stream_run_stream_post.py +++ b/src/comfydeploy/models/operations/create_run_stream_run_stream_post.py @@ -1,28 +1,66 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import deploymentrunrequest as components_deploymentrunrequest, httpmetadata as components_httpmetadata, modelrunrequest as components_modelrunrequest, runstream as components_runstream, workflowrunrequest as components_workflowrunrequest, workflowrunversionrequest as components_workflowrunversionrequest +from comfydeploy.models.components import ( + deploymentrunrequest as components_deploymentrunrequest, + httpmetadata as components_httpmetadata, + modelrunrequest as components_modelrunrequest, + runstream as components_runstream, + workflowrunrequest as components_workflowrunrequest, + workflowrunversionrequest as components_workflowrunversionrequest, +) from comfydeploy.types import BaseModel +from comfydeploy.utils import eventstreaming import pydantic from pydantic import SkipValidation -from typing import AsyncGenerator, Generator, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -CreateRunStreamRunStreamPostDataTypedDict = Union[components_deploymentrunrequest.DeploymentRunRequestTypedDict, components_modelrunrequest.ModelRunRequestTypedDict, components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, components_workflowrunrequest.WorkflowRunRequestTypedDict] +CreateRunStreamRunStreamPostDataTypedDict = TypeAliasType( + "CreateRunStreamRunStreamPostDataTypedDict", + Union[ + components_deploymentrunrequest.DeploymentRunRequestTypedDict, + components_modelrunrequest.ModelRunRequestTypedDict, + components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, + components_workflowrunrequest.WorkflowRunRequestTypedDict, + ], +) -CreateRunStreamRunStreamPostData = Union[components_deploymentrunrequest.DeploymentRunRequest, components_modelrunrequest.ModelRunRequest, components_workflowrunversionrequest.WorkflowRunVersionRequest, components_workflowrunrequest.WorkflowRunRequest] +CreateRunStreamRunStreamPostData = TypeAliasType( + "CreateRunStreamRunStreamPostData", + Union[ + components_deploymentrunrequest.DeploymentRunRequest, + components_modelrunrequest.ModelRunRequest, + components_workflowrunversionrequest.WorkflowRunVersionRequest, + components_workflowrunrequest.WorkflowRunRequest, + ], +) class CreateRunStreamRunStreamPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - run_stream: NotRequired[Union[Generator[components_runstream.RunStreamTypedDict, None, None], AsyncGenerator[components_runstream.RunStreamTypedDict, None]]] + run_stream: NotRequired[ + Union[ + eventstreaming.EventStream[components_runstream.RunStreamTypedDict], + eventstreaming.EventStreamAsync[components_runstream.RunStreamTypedDict], + ] + ] r"""Stream of workflow run events""" - + class CreateRunStreamRunStreamPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - run_stream: SkipValidation[Optional[Union[Generator[components_runstream.RunStream, None, None], AsyncGenerator[components_runstream.RunStream, None]]]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + run_stream: SkipValidation[ + Optional[ + Union[ + eventstreaming.EventStream[components_runstream.RunStream], + eventstreaming.EventStreamAsync[components_runstream.RunStream], + ] + ] + ] = None r"""Stream of workflow run events""" - diff --git a/src/comfydeploy/models/operations/create_run_sync_run_sync_post.py b/src/comfydeploy/models/operations/create_run_sync_run_sync_post.py index 35038a1..1ee5789 100644 --- a/src/comfydeploy/models/operations/create_run_sync_run_sync_post.py +++ b/src/comfydeploy/models/operations/create_run_sync_run_sync_post.py @@ -1,27 +1,56 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import deploymentrunrequest as components_deploymentrunrequest, httpmetadata as components_httpmetadata, modelrunrequest as components_modelrunrequest, workflowrunoutputmodel as components_workflowrunoutputmodel, workflowrunrequest as components_workflowrunrequest, workflowrunversionrequest as components_workflowrunversionrequest +from comfydeploy.models.components import ( + deploymentrunrequest as components_deploymentrunrequest, + httpmetadata as components_httpmetadata, + modelrunrequest as components_modelrunrequest, + workflowrunoutputmodel as components_workflowrunoutputmodel, + workflowrunrequest as components_workflowrunrequest, + workflowrunversionrequest as components_workflowrunversionrequest, +) from comfydeploy.types import BaseModel import pydantic -from typing import List, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import List, Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -CreateRunSyncRunSyncPostDataTypedDict = Union[components_deploymentrunrequest.DeploymentRunRequestTypedDict, components_modelrunrequest.ModelRunRequestTypedDict, components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, components_workflowrunrequest.WorkflowRunRequestTypedDict] +CreateRunSyncRunSyncPostDataTypedDict = TypeAliasType( + "CreateRunSyncRunSyncPostDataTypedDict", + Union[ + components_deploymentrunrequest.DeploymentRunRequestTypedDict, + components_modelrunrequest.ModelRunRequestTypedDict, + components_workflowrunversionrequest.WorkflowRunVersionRequestTypedDict, + components_workflowrunrequest.WorkflowRunRequestTypedDict, + ], +) -CreateRunSyncRunSyncPostData = Union[components_deploymentrunrequest.DeploymentRunRequest, components_modelrunrequest.ModelRunRequest, components_workflowrunversionrequest.WorkflowRunVersionRequest, components_workflowrunrequest.WorkflowRunRequest] +CreateRunSyncRunSyncPostData = TypeAliasType( + "CreateRunSyncRunSyncPostData", + Union[ + components_deploymentrunrequest.DeploymentRunRequest, + components_modelrunrequest.ModelRunRequest, + components_workflowrunversionrequest.WorkflowRunVersionRequest, + components_workflowrunrequest.WorkflowRunRequest, + ], +) class CreateRunSyncRunSyncPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_create_run_sync_run_sync_post: NotRequired[List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict]] + response_create_run_sync_run_sync_post: NotRequired[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict] + ] r"""Successful Response""" - + class CreateRunSyncRunSyncPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_create_run_sync_run_sync_post: Optional[List[components_workflowrunoutputmodel.WorkflowRunOutputModel]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_create_run_sync_run_sync_post: Optional[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModel] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py b/src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py index e0105f1..ca7b24f 100644 --- a/src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py +++ b/src/comfydeploy/models/operations/create_run_workflow_stream_run_workflow_stream_post.py @@ -1,22 +1,40 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, runstream as components_runstream +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + runstream as components_runstream, +) from comfydeploy.types import BaseModel +from comfydeploy.utils import eventstreaming import pydantic from pydantic import SkipValidation -from typing import AsyncGenerator, Generator, Optional, TypedDict, Union -from typing_extensions import Annotated, NotRequired +from typing import Optional, Union +from typing_extensions import Annotated, NotRequired, TypedDict class CreateRunWorkflowStreamRunWorkflowStreamPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - run_stream: NotRequired[Union[Generator[components_runstream.RunStreamTypedDict, None, None], AsyncGenerator[components_runstream.RunStreamTypedDict, None]]] + run_stream: NotRequired[ + Union[ + eventstreaming.EventStream[components_runstream.RunStreamTypedDict], + eventstreaming.EventStreamAsync[components_runstream.RunStreamTypedDict], + ] + ] r"""Stream of workflow run events""" - + class CreateRunWorkflowStreamRunWorkflowStreamPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - run_stream: SkipValidation[Optional[Union[Generator[components_runstream.RunStream, None, None], AsyncGenerator[components_runstream.RunStream, None]]]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + run_stream: SkipValidation[ + Optional[ + Union[ + eventstreaming.EventStream[components_runstream.RunStream], + eventstreaming.EventStreamAsync[components_runstream.RunStream], + ] + ] + ] = None r"""Stream of workflow run events""" - diff --git a/src/comfydeploy/models/operations/create_session_session_post.py b/src/comfydeploy/models/operations/create_session_session_post.py index 4cfa6e8..ccc10cd 100644 --- a/src/comfydeploy/models/operations/create_session_session_post.py +++ b/src/comfydeploy/models/operations/create_session_session_post.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import createsessionresponse as components_createsessionresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + createsessionresponse as components_createsessionresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class CreateSessionSessionPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - create_session_response: NotRequired[components_createsessionresponse.CreateSessionResponseTypedDict] + create_session_response: NotRequired[ + components_createsessionresponse.CreateSessionResponseTypedDict + ] r"""Successful Response""" - + class CreateSessionSessionPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - create_session_response: Optional[components_createsessionresponse.CreateSessionResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + create_session_response: Optional[ + components_createsessionresponse.CreateSessionResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py b/src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py index 2108aea..fa98b7c 100644 --- a/src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py +++ b/src/comfydeploy/models/operations/delete_asset_assets_asset_id_delete.py @@ -5,26 +5,30 @@ from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata import pydantic -from typing import Any, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Any, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class DeleteAssetAssetsAssetIDDeleteRequestTypedDict(TypedDict): asset_id: str - + class DeleteAssetAssetsAssetIDDeleteRequest(BaseModel): - asset_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - + asset_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + class DeleteAssetAssetsAssetIDDeleteResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict any: NotRequired[Any] r"""Successful Response""" - + class DeleteAssetAssetsAssetIDDeleteResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + any: Optional[Any] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/delete_session_session_session_id_delete.py b/src/comfydeploy/models/operations/delete_session_session_session_id_delete.py index 78766b3..bc1b908 100644 --- a/src/comfydeploy/models/operations/delete_session_session_session_id_delete.py +++ b/src/comfydeploy/models/operations/delete_session_session_session_id_delete.py @@ -1,30 +1,41 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import deletesessionresponse as components_deletesessionresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + deletesessionresponse as components_deletesessionresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class DeleteSessionSessionSessionIDDeleteRequestTypedDict(TypedDict): session_id: str - + class DeleteSessionSessionSessionIDDeleteRequest(BaseModel): - session_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - + session_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + class DeleteSessionSessionSessionIDDeleteResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - delete_session_response: NotRequired[components_deletesessionresponse.DeleteSessionResponseTypedDict] + delete_session_response: NotRequired[ + components_deletesessionresponse.DeleteSessionResponseTypedDict + ] r"""Successful Response""" - + class DeleteSessionSessionSessionIDDeleteResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - delete_session_response: Optional[components_deletesessionresponse.DeleteSessionResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + delete_session_response: Optional[ + components_deletesessionresponse.DeleteSessionResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py b/src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py index 026aba7..2a68471 100644 --- a/src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py +++ b/src/comfydeploy/models/operations/get_asset_assets_asset_id_get.py @@ -1,30 +1,37 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import assetresponse as components_assetresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + assetresponse as components_assetresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetAssetAssetsAssetIDGetRequestTypedDict(TypedDict): asset_id: str - + class GetAssetAssetsAssetIDGetRequest(BaseModel): - asset_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - + asset_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + class GetAssetAssetsAssetIDGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict asset_response: NotRequired[components_assetresponse.AssetResponseTypedDict] r"""Successful Response""" - + class GetAssetAssetsAssetIDGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + asset_response: Optional[components_assetresponse.AssetResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/get_deployments_deployments_get.py b/src/comfydeploy/models/operations/get_deployments_deployments_get.py index 80f6f9e..240e5e1 100644 --- a/src/comfydeploy/models/operations/get_deployments_deployments_get.py +++ b/src/comfydeploy/models/operations/get_deployments_deployments_get.py @@ -1,22 +1,37 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import deploymentenvironment as components_deploymentenvironment, deploymentmodel as components_deploymentmodel, httpmetadata as components_httpmetadata -from comfydeploy.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL +from comfydeploy.models.components import ( + deploymentenvironment as components_deploymentenvironment, + deploymentmodel as components_deploymentmodel, + httpmetadata as components_httpmetadata, +) +from comfydeploy.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from comfydeploy.utils import FieldMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetDeploymentsDeploymentsGetRequestTypedDict(TypedDict): - environment: NotRequired[Nullable[components_deploymentenvironment.DeploymentEnvironment]] - + environment: NotRequired[ + Nullable[components_deploymentenvironment.DeploymentEnvironment] + ] + class GetDeploymentsDeploymentsGetRequest(BaseModel): - environment: Annotated[OptionalNullable[components_deploymentenvironment.DeploymentEnvironment], FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] = UNSET - + environment: Annotated[ + OptionalNullable[components_deploymentenvironment.DeploymentEnvironment], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = ["environment"] @@ -30,9 +45,13 @@ def serialize_model(self, handler): for n, f in self.model_fields.items(): k = f.alias or n val = serialized.get(k) + serialized.pop(k, None) optional_nullable = k in optional_fields and k in nullable_fields - is_set = (self.__pydantic_fields_set__.intersection({n}) or k in null_default_fields) # pylint: disable=no-member + is_set = ( + self.__pydantic_fields_set__.intersection({n}) + or k in null_default_fields + ) # pylint: disable=no-member if val is not None and val != UNSET_SENTINEL: m[k] = val @@ -42,16 +61,22 @@ def serialize_model(self, handler): m[k] = val return m - + class GetDeploymentsDeploymentsGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_get_deployments_deployments_get: NotRequired[List[components_deploymentmodel.DeploymentModelTypedDict]] + response_get_deployments_deployments_get: NotRequired[ + List[components_deploymentmodel.DeploymentModelTypedDict] + ] r"""Successful Response""" - + class GetDeploymentsDeploymentsGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_get_deployments_deployments_get: Optional[List[components_deploymentmodel.DeploymentModel]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_get_deployments_deployments_get: Optional[ + List[components_deploymentmodel.DeploymentModel] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py b/src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py index e371bb2..0588931 100644 --- a/src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py +++ b/src/comfydeploy/models/operations/get_machine_sessions_sessions_get.py @@ -1,30 +1,41 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import gpueventmodel as components_gpueventmodel, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + gpueventmodel as components_gpueventmodel, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, QueryParamMetadata import pydantic -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetMachineSessionsSessionsGetRequestTypedDict(TypedDict): machine_id: str - + class GetMachineSessionsSessionsGetRequest(BaseModel): - machine_id: Annotated[str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] - + machine_id: Annotated[ + str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)) + ] + class GetMachineSessionsSessionsGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_get_machine_sessions_sessions_get: NotRequired[List[components_gpueventmodel.GPUEventModelTypedDict]] + response_get_machine_sessions_sessions_get: NotRequired[ + List[components_gpueventmodel.GPUEventModelTypedDict] + ] r"""Successful Response""" - + class GetMachineSessionsSessionsGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_get_machine_sessions_sessions_get: Optional[List[components_gpueventmodel.GPUEventModel]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_get_machine_sessions_sessions_get: Optional[ + List[components_gpueventmodel.GPUEventModel] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/get_run_run_run_id_get.py b/src/comfydeploy/models/operations/get_run_run_run_id_get.py index 218a612..3d4a981 100644 --- a/src/comfydeploy/models/operations/get_run_run_run_id_get.py +++ b/src/comfydeploy/models/operations/get_run_run_run_id_get.py @@ -1,30 +1,39 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunmodel as components_workflowrunmodel +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunmodel as components_workflowrunmodel, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetRunRunRunIDGetRequestTypedDict(TypedDict): run_id: str - + class GetRunRunRunIDGetRequest(BaseModel): - run_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + class GetRunRunRunIDGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_model: NotRequired[components_workflowrunmodel.WorkflowRunModelTypedDict] + workflow_run_model: NotRequired[ + components_workflowrunmodel.WorkflowRunModelTypedDict + ] r"""Successful Response""" - + class GetRunRunRunIDGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + workflow_run_model: Optional[components_workflowrunmodel.WorkflowRunModel] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/get_session_session_session_id_get.py b/src/comfydeploy/models/operations/get_session_session_session_id_get.py index e2288f8..fb56bbd 100644 --- a/src/comfydeploy/models/operations/get_session_session_session_id_get.py +++ b/src/comfydeploy/models/operations/get_session_session_session_id_get.py @@ -1,30 +1,37 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, session as components_session +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + session as components_session, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, PathParamMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetSessionSessionSessionIDGetRequestTypedDict(TypedDict): session_id: str - + class GetSessionSessionSessionIDGetRequest(BaseModel): - session_id: Annotated[str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))] - + session_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + class GetSessionSessionSessionIDGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict session: NotRequired[components_session.SessionTypedDict] r"""Successful Response""" - + class GetSessionSessionSessionIDGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + session: Optional[components_session.Session] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py b/src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py index 79b0d70..e709792 100644 --- a/src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py +++ b/src/comfydeploy/models/operations/increase_timeout_session_increase_timeout_post.py @@ -4,18 +4,20 @@ from comfydeploy.models.components import httpmetadata as components_httpmetadata from comfydeploy.types import BaseModel import pydantic -from typing import Any, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Any, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class IncreaseTimeoutSessionIncreaseTimeoutPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict any: NotRequired[Any] r"""Successful Response""" - + class IncreaseTimeoutSessionIncreaseTimeoutPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + any: Optional[Any] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/list_assets_assets_get.py b/src/comfydeploy/models/operations/list_assets_assets_get.py index 173ba6b..1e467df 100644 --- a/src/comfydeploy/models/operations/list_assets_assets_get.py +++ b/src/comfydeploy/models/operations/list_assets_assets_get.py @@ -1,32 +1,44 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import assetresponse as components_assetresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + assetresponse as components_assetresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, QueryParamMetadata import pydantic -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class ListAssetsAssetsGetRequestTypedDict(TypedDict): path: NotRequired[str] r"""Folder path to list items from""" - + class ListAssetsAssetsGetRequest(BaseModel): - path: Annotated[Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] = "/" + path: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = "/" r"""Folder path to list items from""" - + class ListAssetsAssetsGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_list_assets_assets_get: NotRequired[List[components_assetresponse.AssetResponseTypedDict]] + response_list_assets_assets_get: NotRequired[ + List[components_assetresponse.AssetResponseTypedDict] + ] r"""Successful Response""" - + class ListAssetsAssetsGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_list_assets_assets_get: Optional[List[components_assetresponse.AssetResponse]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_list_assets_assets_get: Optional[ + List[components_assetresponse.AssetResponse] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/public_models_models_get.py b/src/comfydeploy/models/operations/public_models_models_get.py index 050a576..a1d529b 100644 --- a/src/comfydeploy/models/operations/public_models_models_get.py +++ b/src/comfydeploy/models/operations/public_models_models_get.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, modelwithmetadata as components_modelwithmetadata +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + modelwithmetadata as components_modelwithmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class PublicModelsModelsGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_public_models_models_get: NotRequired[List[components_modelwithmetadata.ModelWithMetadataTypedDict]] + response_public_models_models_get: NotRequired[ + List[components_modelwithmetadata.ModelWithMetadataTypedDict] + ] r"""Successful Response""" - + class PublicModelsModelsGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_public_models_models_get: Optional[List[components_modelwithmetadata.ModelWithMetadata]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_public_models_models_get: Optional[ + List[components_modelwithmetadata.ModelWithMetadata] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py b/src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py index 575a8e5..cbf1a7f 100644 --- a/src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py +++ b/src/comfydeploy/models/operations/queue_deployment_run_run_deployment_queue_post.py @@ -1,21 +1,28 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import createrunresponse as components_createrunresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + createrunresponse as components_createrunresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class QueueDeploymentRunRunDeploymentQueuePostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - create_run_response: NotRequired[components_createrunresponse.CreateRunResponseTypedDict] + create_run_response: NotRequired[ + components_createrunresponse.CreateRunResponseTypedDict + ] r"""Successful Response""" - + class QueueDeploymentRunRunDeploymentQueuePostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + create_run_response: Optional[components_createrunresponse.CreateRunResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py b/src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py index eb3f220..9922938 100644 --- a/src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py +++ b/src/comfydeploy/models/operations/queue_workflow_run_run_workflow_queue_post.py @@ -1,21 +1,28 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import createrunresponse as components_createrunresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + createrunresponse as components_createrunresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class QueueWorkflowRunRunWorkflowQueuePostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - create_run_response: NotRequired[components_createrunresponse.CreateRunResponseTypedDict] + create_run_response: NotRequired[ + components_createrunresponse.CreateRunResponseTypedDict + ] r"""Successful Response""" - + class QueueWorkflowRunRunWorkflowQueuePostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + create_run_response: Optional[components_createrunresponse.CreateRunResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/search_search_model_get.py b/src/comfydeploy/models/operations/search_search_model_get.py index cbb2d96..ccbe543 100644 --- a/src/comfydeploy/models/operations/search_search_model_get.py +++ b/src/comfydeploy/models/operations/search_search_model_get.py @@ -1,32 +1,47 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, searchmodelsresponse as components_searchmodelsresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + searchmodelsresponse as components_searchmodelsresponse, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, QueryParamMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class SearchSearchModelGetRequestTypedDict(TypedDict): query: str provider: NotRequired[str] - + class SearchSearchModelGetRequest(BaseModel): - query: Annotated[str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] - provider: Annotated[Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] = "all" - + query: Annotated[ + str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True)) + ] + + provider: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = "all" + class SearchSearchModelGetResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - search_models_response: NotRequired[components_searchmodelsresponse.SearchModelsResponseTypedDict] + search_models_response: NotRequired[ + components_searchmodelsresponse.SearchModelsResponseTypedDict + ] r"""Successful Response""" - + class SearchSearchModelGetResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - search_models_response: Optional[components_searchmodelsresponse.SearchModelsResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + search_models_response: Optional[ + components_searchmodelsresponse.SearchModelsResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py b/src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py index d8fc34f..57e1e8f 100644 --- a/src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py +++ b/src/comfydeploy/models/operations/sync_deployment_run_run_deployment_sync_post.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunoutputmodel as components_workflowrunoutputmodel +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunoutputmodel as components_workflowrunoutputmodel, +) from comfydeploy.types import BaseModel import pydantic -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class SyncDeploymentRunRunDeploymentSyncPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_sync_deployment_run_run_deployment_sync_post: NotRequired[List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict]] + response_sync_deployment_run_run_deployment_sync_post: NotRequired[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict] + ] r"""Successful Response""" - + class SyncDeploymentRunRunDeploymentSyncPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_sync_deployment_run_run_deployment_sync_post: Optional[List[components_workflowrunoutputmodel.WorkflowRunOutputModel]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_sync_deployment_run_run_deployment_sync_post: Optional[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModel] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py b/src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py index e3a9570..5677c07 100644 --- a/src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py +++ b/src/comfydeploy/models/operations/sync_workflow_run_run_workflow_sync_post.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunoutputmodel as components_workflowrunoutputmodel +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunoutputmodel as components_workflowrunoutputmodel, +) from comfydeploy.types import BaseModel import pydantic -from typing import List, Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class SyncWorkflowRunRunWorkflowSyncPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - response_sync_workflow_run_run_workflow_sync_post: NotRequired[List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict]] + response_sync_workflow_run_run_workflow_sync_post: NotRequired[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModelTypedDict] + ] r"""Successful Response""" - + class SyncWorkflowRunRunWorkflowSyncPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - response_sync_workflow_run_run_workflow_sync_post: Optional[List[components_workflowrunoutputmodel.WorkflowRunOutputModel]] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + response_sync_workflow_run_run_workflow_sync_post: Optional[ + List[components_workflowrunoutputmodel.WorkflowRunOutputModel] + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py b/src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py index d76b95c..3e76167 100644 --- a/src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py +++ b/src/comfydeploy/models/operations/upload_asset_file_assets_upload_post.py @@ -1,34 +1,47 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import assetresponse as components_assetresponse, body_upload_asset_file_assets_upload_post as components_body_upload_asset_file_assets_upload_post, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + assetresponse as components_assetresponse, + body_upload_asset_file_assets_upload_post as components_body_upload_asset_file_assets_upload_post, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel from comfydeploy.utils import FieldMetadata, QueryParamMetadata, RequestMetadata import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class UploadAssetFileAssetsUploadPostRequestTypedDict(TypedDict): body_upload_asset_file_assets_upload_post: components_body_upload_asset_file_assets_upload_post.BodyUploadAssetFileAssetsUploadPostTypedDict parent_path: NotRequired[str] r"""Parent folder path""" - + class UploadAssetFileAssetsUploadPostRequest(BaseModel): - body_upload_asset_file_assets_upload_post: Annotated[components_body_upload_asset_file_assets_upload_post.BodyUploadAssetFileAssetsUploadPost, FieldMetadata(request=RequestMetadata(media_type="multipart/form-data"))] - parent_path: Annotated[Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True))] = "/" + body_upload_asset_file_assets_upload_post: Annotated[ + components_body_upload_asset_file_assets_upload_post.BodyUploadAssetFileAssetsUploadPost, + FieldMetadata(request=RequestMetadata(media_type="multipart/form-data")), + ] + + parent_path: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = "/" r"""Parent folder path""" - + class UploadAssetFileAssetsUploadPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict asset_response: NotRequired[components_assetresponse.AssetResponseTypedDict] r"""Successful Response""" - + class UploadAssetFileAssetsUploadPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + asset_response: Optional[components_assetresponse.AssetResponse] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models/operations/upload_file_file_upload_post.py b/src/comfydeploy/models/operations/upload_file_file_upload_post.py index bc198c3..ea71e3d 100644 --- a/src/comfydeploy/models/operations/upload_file_file_upload_post.py +++ b/src/comfydeploy/models/operations/upload_file_file_upload_post.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import fileuploadresponse as components_fileuploadresponse, httpmetadata as components_httpmetadata +from comfydeploy.models.components import ( + fileuploadresponse as components_fileuploadresponse, + httpmetadata as components_httpmetadata, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class UploadFileFileUploadPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - file_upload_response: NotRequired[components_fileuploadresponse.FileUploadResponseTypedDict] + file_upload_response: NotRequired[ + components_fileuploadresponse.FileUploadResponseTypedDict + ] r"""Successful Response""" - + class UploadFileFileUploadPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - file_upload_response: Optional[components_fileuploadresponse.FileUploadResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + file_upload_response: Optional[components_fileuploadresponse.FileUploadResponse] = ( + None + ) r"""Successful Response""" - diff --git a/src/comfydeploy/models/webhooks/__init__.py b/src/comfydeploy/models/webhooks/__init__.py index eb5475f..f266a76 100644 --- a/src/comfydeploy/models/webhooks/__init__.py +++ b/src/comfydeploy/models/webhooks/__init__.py @@ -1,5 +1,11 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .run_update_request_body_webhook_post import RunUpdateRequestBodyWebhookPostResponse, RunUpdateRequestBodyWebhookPostResponseTypedDict +from .run_update_request_body_webhook_post import ( + RunUpdateRequestBodyWebhookPostResponse, + RunUpdateRequestBodyWebhookPostResponseTypedDict, +) -__all__ = ["RunUpdateRequestBodyWebhookPostResponse", "RunUpdateRequestBodyWebhookPostResponseTypedDict"] +__all__ = [ + "RunUpdateRequestBodyWebhookPostResponse", + "RunUpdateRequestBodyWebhookPostResponseTypedDict", +] diff --git a/src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py b/src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py index ea978ec..1c3f155 100644 --- a/src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py +++ b/src/comfydeploy/models/webhooks/run_update_request_body_webhook_post.py @@ -1,21 +1,30 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from comfydeploy.models.components import httpmetadata as components_httpmetadata, workflowrunwebhookresponse as components_workflowrunwebhookresponse +from comfydeploy.models.components import ( + httpmetadata as components_httpmetadata, + workflowrunwebhookresponse as components_workflowrunwebhookresponse, +) from comfydeploy.types import BaseModel import pydantic -from typing import Optional, TypedDict -from typing_extensions import Annotated, NotRequired +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict class RunUpdateRequestBodyWebhookPostResponseTypedDict(TypedDict): http_meta: components_httpmetadata.HTTPMetadataTypedDict - workflow_run_webhook_response: NotRequired[components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict] + workflow_run_webhook_response: NotRequired[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponseTypedDict + ] r"""Successful Response""" - + class RunUpdateRequestBodyWebhookPostResponse(BaseModel): - http_meta: Annotated[Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True)] = None - workflow_run_webhook_response: Optional[components_workflowrunwebhookresponse.WorkflowRunWebhookResponse] = None + http_meta: Annotated[ + Optional[components_httpmetadata.HTTPMetadata], pydantic.Field(exclude=True) + ] = None + + workflow_run_webhook_response: Optional[ + components_workflowrunwebhookresponse.WorkflowRunWebhookResponse + ] = None r"""Successful Response""" - diff --git a/src/comfydeploy/models_.py b/src/comfydeploy/models_.py index 9e93c1e..4206713 100644 --- a/src/comfydeploy/models_.py +++ b/src/comfydeploy/models_.py @@ -5,16 +5,17 @@ from comfydeploy._hooks import HookContext from comfydeploy.models import components, errors, operations from comfydeploy.types import OptionalNullable, UNSET -from typing import List, Optional +from typing import List, Mapping, Optional + class Models(BaseSDK): - - def public_models_models_get( - self, *, + self, + *, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.PublicModelsModelsGetResponse: r"""Public Models @@ -23,15 +24,16 @@ def public_models_models_get( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - req = self.build_request( + req = self._build_request( method="GET", path="/models", base_url=base_url, @@ -42,46 +44,59 @@ def public_models_models_get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="public_models_models_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="public_models_models_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["4XX","5XX"], - retry_config=retry_config + error_status_codes=["4XX", "5XX"], + retry_config=retry_config, ) - + if utils.match_response(http_res, "200", "application/json"): - return operations.PublicModelsModelsGetResponse(response_public_models_models_get=utils.unmarshal_json(http_res.text, Optional[List[components.ModelWithMetadata]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + return operations.PublicModelsModelsGetResponse( + response_public_models_models_get=utils.unmarshal_json( + http_res.text, Optional[List[components.ModelWithMetadata]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def public_models_models_get_async( - self, *, + self, + *, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.PublicModelsModelsGetResponse: r"""Public Models @@ -90,15 +105,16 @@ async def public_models_models_get_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - req = self.build_request( + req = self._build_request_async( method="GET", path="/models", base_url=base_url, @@ -109,37 +125,48 @@ async def public_models_models_get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="public_models_models_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="public_models_models_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["4XX","5XX"], - retry_config=retry_config + error_status_codes=["4XX", "5XX"], + retry_config=retry_config, ) - + if utils.match_response(http_res, "200", "application/json"): - return operations.PublicModelsModelsGetResponse(response_public_models_models_get=utils.unmarshal_json(http_res.text, Optional[List[components.ModelWithMetadata]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + return operations.PublicModelsModelsGetResponse( + response_public_models_models_get=utils.unmarshal_json( + http_res.text, Optional[List[components.ModelWithMetadata]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/run.py b/src/comfydeploy/run.py index daba383..16978a9 100644 --- a/src/comfydeploy/run.py +++ b/src/comfydeploy/run.py @@ -9,49 +9,53 @@ from comfydeploy.types import BaseModel, OptionalNullable, UNSET from comfydeploy.utils import eventstreaming from comfydeploy.workflow import Workflow -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast from typing_extensions import deprecated + class Run(BaseSDK): deployment: Deployment workflow: Workflow + def __init__(self, sdk_config: SDKConfiguration) -> None: BaseSDK.__init__(self, sdk_config) self.sdk_configuration = sdk_config self._init_sdks() - + def _init_sdks(self): self.deployment = Deployment(self.sdk_configuration) self.workflow = Workflow(self.sdk_configuration) - - + def get( - self, *, + self, + *, run_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetRunRunRunIDGetResponse: r"""Get Run - :param run_id: + :param run_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetRunRunRunIDGetRequest( run_id=run_id, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/run/{run_id}", base_url=base_url, @@ -62,72 +66,86 @@ def get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="get_run_run__run_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_run_run__run_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetRunRunRunIDGetResponse(workflow_run_model=utils.unmarshal_json(http_res.text, Optional[components.WorkflowRunModel]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetRunRunRunIDGetResponse( + workflow_run_model=utils.unmarshal_json( + http_res.text, Optional[components.WorkflowRunModel] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def get_async( - self, *, + self, + *, run_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetRunRunRunIDGetResponse: r"""Get Run - :param run_id: + :param run_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetRunRunRunIDGetRequest( run_id=run_id, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/run/{run_id}", base_url=base_url, @@ -138,52 +156,70 @@ async def get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="get_run_run__run_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_run_run__run_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetRunRunRunIDGetResponse(workflow_run_model=utils.unmarshal_json(http_res.text, Optional[components.WorkflowRunModel]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetRunRunRunIDGetResponse( + workflow_run_model=utils.unmarshal_json( + http_res.text, Optional[components.WorkflowRunModel] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) def queue( - self, *, - request: Union[operations.CreateRunQueueRunQueuePostData, operations.CreateRunQueueRunQueuePostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunQueueRunQueuePostData, + operations.CreateRunQueueRunQueuePostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunQueueRunQueuePostResponse: r"""Queue a workflow @@ -193,20 +229,23 @@ def queue( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): - request = utils.unmarshal(request, operations.CreateRunQueueRunQueuePostData) + request = utils.unmarshal( + request, operations.CreateRunQueueRunQueuePostData + ) request = cast(operations.CreateRunQueueRunQueuePostData, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/queue", base_url=base_url, @@ -217,53 +256,73 @@ def queue( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunQueueRunQueuePostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", operations.CreateRunQueueRunQueuePostData + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_run_queue_run_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_queue_run_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateRunQueueRunQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunQueueRunQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) async def queue_async( - self, *, - request: Union[operations.CreateRunQueueRunQueuePostData, operations.CreateRunQueueRunQueuePostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunQueueRunQueuePostData, + operations.CreateRunQueueRunQueuePostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunQueueRunQueuePostResponse: r"""Queue a workflow @@ -273,20 +332,23 @@ async def queue_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): - request = utils.unmarshal(request, operations.CreateRunQueueRunQueuePostData) + request = utils.unmarshal( + request, operations.CreateRunQueueRunQueuePostData + ) request = cast(operations.CreateRunQueueRunQueuePostData, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/queue", base_url=base_url, @@ -297,53 +359,73 @@ async def queue_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunQueueRunQueuePostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", operations.CreateRunQueueRunQueuePostData + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_run_queue_run_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_queue_run_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateRunQueueRunQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunQueueRunQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) def sync( - self, *, - request: Union[operations.CreateRunSyncRunSyncPostData, operations.CreateRunSyncRunSyncPostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunSyncRunSyncPostData, + operations.CreateRunSyncRunSyncPostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunSyncRunSyncPostResponse: r"""Run a workflow in sync @@ -353,20 +435,21 @@ def sync( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, operations.CreateRunSyncRunSyncPostData) request = cast(operations.CreateRunSyncRunSyncPostData, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/sync", base_url=base_url, @@ -377,53 +460,73 @@ def sync( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunSyncRunSyncPostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", operations.CreateRunSyncRunSyncPostData + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_run_sync_run_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_sync_run_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateRunSyncRunSyncPostResponse(response_create_run_sync_run_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunSyncRunSyncPostResponse( + response_create_run_sync_run_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) async def sync_async( - self, *, - request: Union[operations.CreateRunSyncRunSyncPostData, operations.CreateRunSyncRunSyncPostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunSyncRunSyncPostData, + operations.CreateRunSyncRunSyncPostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunSyncRunSyncPostResponse: r"""Run a workflow in sync @@ -433,20 +536,21 @@ async def sync_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, operations.CreateRunSyncRunSyncPostData) request = cast(operations.CreateRunSyncRunSyncPostData, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/sync", base_url=base_url, @@ -457,53 +561,73 @@ async def sync_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunSyncRunSyncPostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", operations.CreateRunSyncRunSyncPostData + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_run_sync_run_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_sync_run_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateRunSyncRunSyncPostResponse(response_create_run_sync_run_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunSyncRunSyncPostResponse( + response_create_run_sync_run_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) def stream( - self, *, - request: Union[operations.CreateRunStreamRunStreamPostData, operations.CreateRunStreamRunStreamPostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunStreamRunStreamPostData, + operations.CreateRunStreamRunStreamPostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunStreamRunStreamPostResponse: r"""Run a workflow in stream @@ -513,20 +637,23 @@ def stream( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): - request = utils.unmarshal(request, operations.CreateRunStreamRunStreamPostData) + request = utils.unmarshal( + request, operations.CreateRunStreamRunStreamPostData + ) request = cast(operations.CreateRunStreamRunStreamPostData, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/stream", base_url=base_url, @@ -537,54 +664,80 @@ def stream( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunStreamRunStreamPostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, + False, + False, + "json", + operations.CreateRunStreamRunStreamPostData, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_run_stream_run_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_stream_run_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunStreamRunStreamPostResponse(run_stream=eventstreaming.stream_events(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunStreamRunStreamPostResponse( + run_stream=eventstreaming.EventStream( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = utils.stream_to_text(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - - @deprecated("warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible.") + @deprecated( + "warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible." + ) async def stream_async( - self, *, - request: Union[operations.CreateRunStreamRunStreamPostData, operations.CreateRunStreamRunStreamPostDataTypedDict], + self, + *, + request: Union[ + operations.CreateRunStreamRunStreamPostData, + operations.CreateRunStreamRunStreamPostDataTypedDict, + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunStreamRunStreamPostResponse: r"""Run a workflow in stream @@ -594,20 +747,23 @@ async def stream_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): - request = utils.unmarshal(request, operations.CreateRunStreamRunStreamPostData) + request = utils.unmarshal( + request, operations.CreateRunStreamRunStreamPostData + ) request = cast(operations.CreateRunStreamRunStreamPostData, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/stream", base_url=base_url, @@ -618,77 +774,103 @@ async def stream_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", operations.CreateRunStreamRunStreamPostData), + get_serialized_body=lambda: utils.serialize_request_body( + request, + False, + False, + "json", + operations.CreateRunStreamRunStreamPostData, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_run_stream_run_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_stream_run_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunStreamRunStreamPostResponse(run_stream=eventstreaming.stream_events_async(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunStreamRunStreamPostResponse( + run_stream=eventstreaming.EventStreamAsync( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = await utils.stream_to_text_async(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def cancel_run_run_run_id_cancel_post( - self, *, + self, + *, run_id: str, - cancel_function_body: Union[components.CancelFunctionBody, components.CancelFunctionBodyTypedDict], + cancel_function_body: Union[ + components.CancelFunctionBody, components.CancelFunctionBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CancelRunRunRunIDCancelPostResponse: r"""Cancel Run - :param run_id: - :param cancel_function_body: + :param run_id: + :param cancel_function_body: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.CancelRunRunRunIDCancelPostRequest( run_id=run_id, - cancel_function_body=utils.get_pydantic_model(cancel_function_body, components.CancelFunctionBody), + cancel_function_body=utils.get_pydantic_model( + cancel_function_body, components.CancelFunctionBody + ), ) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/{run_id}/cancel", base_url=base_url, @@ -699,76 +881,98 @@ def cancel_run_run_run_id_cancel_post( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request.cancel_function_body, False, False, "json", components.CancelFunctionBody), + get_serialized_body=lambda: utils.serialize_request_body( + request.cancel_function_body, + False, + False, + "json", + components.CancelFunctionBody, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="cancel_run_run__run_id__cancel_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="cancel_run_run__run_id__cancel_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CancelRunRunRunIDCancelPostResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CancelRunRunRunIDCancelPostResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def cancel_run_run_run_id_cancel_post_async( - self, *, + self, + *, run_id: str, - cancel_function_body: Union[components.CancelFunctionBody, components.CancelFunctionBodyTypedDict], + cancel_function_body: Union[ + components.CancelFunctionBody, components.CancelFunctionBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CancelRunRunRunIDCancelPostResponse: r"""Cancel Run - :param run_id: - :param cancel_function_body: + :param run_id: + :param cancel_function_body: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.CancelRunRunRunIDCancelPostRequest( run_id=run_id, - cancel_function_body=utils.get_pydantic_model(cancel_function_body, components.CancelFunctionBody), + cancel_function_body=utils.get_pydantic_model( + cancel_function_body, components.CancelFunctionBody + ), ) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/{run_id}/cancel", base_url=base_url, @@ -779,42 +983,57 @@ async def cancel_run_run_run_id_cancel_post_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request.cancel_function_body, False, False, "json", components.CancelFunctionBody), + get_serialized_body=lambda: utils.serialize_request_body( + request.cancel_function_body, + False, + False, + "json", + components.CancelFunctionBody, + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="cancel_run_run__run_id__cancel_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="cancel_run_run__run_id__cancel_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CancelRunRunRunIDCancelPostResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CancelRunRunRunIDCancelPostResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/sdk.py b/src/comfydeploy/sdk.py index 350de0f..01cc43b 100644 --- a/src/comfydeploy/sdk.py +++ b/src/comfydeploy/sdk.py @@ -3,7 +3,7 @@ from .basesdk import BaseSDK from .httpclient import AsyncHttpClient, HttpClient from .sdkconfiguration import SDKConfiguration -from .utils.logger import Logger, NoOpLogger +from .utils.logger import Logger, get_default_logger from .utils.retries import RetryConfig from comfydeploy import utils from comfydeploy._hooks import SDKHooks @@ -18,6 +18,7 @@ import httpx from typing import Any, Callable, Dict, Optional, Union + class ComfyDeploy(BaseSDK): r"""ComfyDeploy API: ### Overview @@ -36,12 +37,14 @@ class ComfyDeploy(BaseSDK): """ + run: Run session: Session deployments: Deployments file: File models: Models search: Search + def __init__( self, bearer: Union[str, Callable[[], str]], @@ -52,7 +55,7 @@ def __init__( async_client: Optional[AsyncHttpClient] = None, retry_config: OptionalNullable[RetryConfig] = UNSET, timeout_ms: Optional[int] = None, - debug_logger: Optional[Logger] = None + debug_logger: Optional[Logger] = None, ) -> None: r"""Instantiates the SDK configuring it with the provided parameters. @@ -76,38 +79,42 @@ def __init__( async_client = httpx.AsyncClient() if debug_logger is None: - debug_logger = NoOpLogger() + debug_logger = get_default_logger() assert issubclass( type(async_client), AsyncHttpClient ), "The provided async_client must implement the AsyncHttpClient protocol." - + security: Any = None if callable(bearer): - security = lambda: components.Security(bearer = bearer()) # pylint: disable=unnecessary-lambda-assignment + security = lambda: components.Security(bearer=bearer()) # pylint: disable=unnecessary-lambda-assignment else: - security = components.Security(bearer = bearer) + security = components.Security(bearer=bearer) if server_url is not None: if url_params is not None: server_url = utils.template_url(server_url, url_params) - - - BaseSDK.__init__(self, SDKConfiguration( - client=client, - async_client=async_client, - security=security, - server_url=server_url, - server_idx=server_idx, - retry_config=retry_config, - timeout_ms=timeout_ms, - debug_logger=debug_logger - )) + + BaseSDK.__init__( + self, + SDKConfiguration( + client=client, + async_client=async_client, + security=security, + server_url=server_url, + server_idx=server_idx, + retry_config=retry_config, + timeout_ms=timeout_ms, + debug_logger=debug_logger, + ), + ) 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) + 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 @@ -116,7 +123,6 @@ def __init__( self._init_sdks() - def _init_sdks(self): self.run = Run(self.sdk_configuration) self.session = Session(self.sdk_configuration) @@ -124,4 +130,17 @@ def _init_sdks(self): self.file = File(self.sdk_configuration) self.models = Models(self.sdk_configuration) self.search = Search(self.sdk_configuration) - + + def __enter__(self): + return self + + async def __aenter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + if self.sdk_configuration.client is not None: + self.sdk_configuration.client.close() + + async def __aexit__(self, exc_type, exc_val, exc_tb): + if self.sdk_configuration.async_client is not None: + await self.sdk_configuration.async_client.aclose() diff --git a/src/comfydeploy/sdkconfiguration.py b/src/comfydeploy/sdkconfiguration.py index a5b1f07..1e86ca0 100644 --- a/src/comfydeploy/sdkconfiguration.py +++ b/src/comfydeploy/sdkconfiguration.py @@ -1,7 +1,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - from ._hooks import SDKHooks +from ._version import ( + __gen_version__, + __openapi_doc_version__, + __user_agent__, + __version__, +) from .httpclient import AsyncHttpClient, HttpClient from .utils import Logger, RetryConfig, remove_suffix from comfydeploy.models import components @@ -21,19 +26,22 @@ ] """Contains the list of servers available to the SDK""" + @dataclass class SDKConfiguration: client: HttpClient async_client: AsyncHttpClient debug_logger: Logger - security: Optional[Union[components.Security,Callable[[], components.Security]]] = None + security: Optional[ + Union[components.Security, Callable[[], components.Security]] + ] = None server_url: Optional[str] = "" server_idx: Optional[int] = 0 language: str = "python" - openapi_doc_version: str = "V2" - sdk_version: str = "0.5.0" - gen_version: str = "2.393.4" - user_agent: str = "speakeasy-sdk/python 0.5.0 2.393.4 V2 comfydeploy" + openapi_doc_version: str = __openapi_doc_version__ + sdk_version: str = __version__ + gen_version: str = __gen_version__ + user_agent: str = __user_agent__ retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET) timeout_ms: Optional[int] = None @@ -48,6 +56,5 @@ def get_server_details(self) -> Tuple[str, Dict[str, str]]: return SERVERS[self.server_idx], {} - def get_hooks(self) -> SDKHooks: return self._hooks diff --git a/src/comfydeploy/search.py b/src/comfydeploy/search.py index 12c99c2..cc630f8 100644 --- a/src/comfydeploy/search.py +++ b/src/comfydeploy/search.py @@ -5,41 +5,43 @@ from comfydeploy._hooks import HookContext from comfydeploy.models import components, errors, operations from comfydeploy.types import OptionalNullable, UNSET -from typing import Any, Optional +from typing import Any, Mapping, Optional + class Search(BaseSDK): - - def search_search_model_get( - self, *, + self, + *, query: str, provider: Optional[str] = "all", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SearchSearchModelGetResponse: r"""Search - :param query: - :param provider: + :param query: + :param provider: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.SearchSearchModelGetRequest( query=query, provider=provider, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/search/model", base_url=base_url, @@ -50,75 +52,89 @@ def search_search_model_get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="search_search_model_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="search_search_model_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SearchSearchModelGetResponse(search_models_response=utils.unmarshal_json(http_res.text, Optional[components.SearchModelsResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SearchSearchModelGetResponse( + search_models_response=utils.unmarshal_json( + http_res.text, Optional[components.SearchModelsResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def search_search_model_get_async( - self, *, + self, + *, query: str, provider: Optional[str] = "all", retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SearchSearchModelGetResponse: r"""Search - :param query: - :param provider: + :param query: + :param provider: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.SearchSearchModelGetRequest( query=query, provider=provider, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/search/model", base_url=base_url, @@ -129,41 +145,52 @@ async def search_search_model_get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="search_search_model_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="search_search_model_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SearchSearchModelGetResponse(search_models_response=utils.unmarshal_json(http_res.text, Optional[components.SearchModelsResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SearchSearchModelGetResponse( + search_models_response=utils.unmarshal_json( + http_res.text, Optional[components.SearchModelsResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/session.py b/src/comfydeploy/session.py index 99f52d4..44c6bd5 100644 --- a/src/comfydeploy/session.py +++ b/src/comfydeploy/session.py @@ -5,38 +5,40 @@ from comfydeploy._hooks import HookContext from comfydeploy.models import components, errors, operations from comfydeploy.types import BaseModel, OptionalNullable, UNSET -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast + class Session(BaseSDK): - - def get( - self, *, + self, + *, session_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetSessionSessionSessionIDGetResponse: r"""Get Session - :param session_id: + :param session_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetSessionSessionSessionIDGetRequest( session_id=session_id, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/session/{session_id}", base_url=base_url, @@ -47,72 +49,86 @@ def get( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="get_session_session__session_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_session_session__session_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetSessionSessionSessionIDGetResponse(session=utils.unmarshal_json(http_res.text, Optional[components.Session]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetSessionSessionSessionIDGetResponse( + session=utils.unmarshal_json( + http_res.text, Optional[components.Session] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def get_async( - self, *, + self, + *, session_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetSessionSessionSessionIDGetResponse: r"""Get Session - :param session_id: + :param session_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetSessionSessionSessionIDGetRequest( session_id=session_id, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/session/{session_id}", base_url=base_url, @@ -123,72 +139,86 @@ async def get_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="get_session_session__session_id__get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_session_session__session_id__get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetSessionSessionSessionIDGetResponse(session=utils.unmarshal_json(http_res.text, Optional[components.Session]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetSessionSessionSessionIDGetResponse( + session=utils.unmarshal_json( + http_res.text, Optional[components.Session] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def cancel( - self, *, + self, + *, session_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.DeleteSessionSessionSessionIDDeleteResponse: r"""Delete Session - :param session_id: + :param session_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.DeleteSessionSessionSessionIDDeleteRequest( session_id=session_id, ) - - req = self.build_request( + + req = self._build_request( method="DELETE", path="/session/{session_id}", base_url=base_url, @@ -199,72 +229,86 @@ def cancel( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="delete_session_session__session_id__delete", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="delete_session_session__session_id__delete", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.DeleteSessionSessionSessionIDDeleteResponse(delete_session_response=utils.unmarshal_json(http_res.text, Optional[components.DeleteSessionResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.DeleteSessionSessionSessionIDDeleteResponse( + delete_session_response=utils.unmarshal_json( + http_res.text, Optional[components.DeleteSessionResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def cancel_async( - self, *, + self, + *, session_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.DeleteSessionSessionSessionIDDeleteResponse: r"""Delete Session - :param session_id: + :param session_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.DeleteSessionSessionSessionIDDeleteRequest( session_id=session_id, ) - - req = self.build_request( + + req = self._build_request_async( method="DELETE", path="/session/{session_id}", base_url=base_url, @@ -275,72 +319,86 @@ async def cancel_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="delete_session_session__session_id__delete", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="delete_session_session__session_id__delete", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.DeleteSessionSessionSessionIDDeleteResponse(delete_session_response=utils.unmarshal_json(http_res.text, Optional[components.DeleteSessionResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.DeleteSessionSessionSessionIDDeleteResponse( + delete_session_response=utils.unmarshal_json( + http_res.text, Optional[components.DeleteSessionResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def list( - self, *, + self, + *, machine_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetMachineSessionsSessionsGetResponse: r"""Get Machine Sessions - :param machine_id: + :param machine_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetMachineSessionsSessionsGetRequest( machine_id=machine_id, ) - - req = self.build_request( + + req = self._build_request( method="GET", path="/sessions", base_url=base_url, @@ -351,72 +409,86 @@ def list( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="get_machine_sessions_sessions_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_machine_sessions_sessions_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetMachineSessionsSessionsGetResponse(response_get_machine_sessions_sessions_get=utils.unmarshal_json(http_res.text, Optional[List[components.GPUEventModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetMachineSessionsSessionsGetResponse( + response_get_machine_sessions_sessions_get=utils.unmarshal_json( + http_res.text, Optional[List[components.GPUEventModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def list_async( - self, *, + self, + *, machine_id: str, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.GetMachineSessionsSessionsGetResponse: r"""Get Machine Sessions - :param machine_id: + :param machine_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + request = operations.GetMachineSessionsSessionsGetRequest( machine_id=machine_id, ) - - req = self.build_request( + + req = self._build_request_async( method="GET", path="/sessions", base_url=base_url, @@ -427,51 +499,66 @@ async def list_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="get_machine_sessions_sessions_get", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="get_machine_sessions_sessions_get", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.GetMachineSessionsSessionsGetResponse(response_get_machine_sessions_sessions_get=utils.unmarshal_json(http_res.text, Optional[List[components.GPUEventModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.GetMachineSessionsSessionsGetResponse( + response_get_machine_sessions_sessions_get=utils.unmarshal_json( + http_res.text, Optional[List[components.GPUEventModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def increase_timeout_session_increase_timeout_post( - self, *, - request: Union[components.IncreaseTimeoutBody, components.IncreaseTimeoutBodyTypedDict], + self, + *, + request: Union[ + components.IncreaseTimeoutBody, components.IncreaseTimeoutBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse: r"""Increase Timeout @@ -479,20 +566,21 @@ def increase_timeout_session_increase_timeout_post( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.IncreaseTimeoutBody) request = cast(components.IncreaseTimeoutBody, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/session/increase-timeout", base_url=base_url, @@ -503,52 +591,67 @@ def increase_timeout_session_increase_timeout_post( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.IncreaseTimeoutBody), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.IncreaseTimeoutBody + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="increase_timeout_session_increase_timeout_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="increase_timeout_session_increase_timeout_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def increase_timeout_session_increase_timeout_post_async( - self, *, - request: Union[components.IncreaseTimeoutBody, components.IncreaseTimeoutBodyTypedDict], + self, + *, + request: Union[ + components.IncreaseTimeoutBody, components.IncreaseTimeoutBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse: r"""Increase Timeout @@ -556,20 +659,21 @@ async def increase_timeout_session_increase_timeout_post_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.IncreaseTimeoutBody) request = cast(components.IncreaseTimeoutBody, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/session/increase-timeout", base_url=base_url, @@ -580,52 +684,67 @@ async def increase_timeout_session_increase_timeout_post_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.IncreaseTimeoutBody), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.IncreaseTimeoutBody + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="increase_timeout_session_increase_timeout_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="increase_timeout_session_increase_timeout_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse(any=utils.unmarshal_json(http_res.text, Optional[Any]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.IncreaseTimeoutSessionIncreaseTimeoutPostResponse( + any=utils.unmarshal_json(http_res.text, Optional[Any]), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def create( - self, *, - request: Union[components.CreateSessionBody, components.CreateSessionBodyTypedDict], + self, + *, + request: Union[ + components.CreateSessionBody, components.CreateSessionBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateSessionSessionPostResponse: r"""Create Session @@ -633,20 +752,21 @@ def create( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.CreateSessionBody) request = cast(components.CreateSessionBody, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/session", base_url=base_url, @@ -657,52 +777,69 @@ def create( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.CreateSessionBody), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.CreateSessionBody + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_session_session_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_session_session_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateSessionSessionPostResponse(create_session_response=utils.unmarshal_json(http_res.text, Optional[components.CreateSessionResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateSessionSessionPostResponse( + create_session_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateSessionResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def create_async( - self, *, - request: Union[components.CreateSessionBody, components.CreateSessionBodyTypedDict], + self, + *, + request: Union[ + components.CreateSessionBody, components.CreateSessionBodyTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateSessionSessionPostResponse: r"""Create Session @@ -710,20 +847,21 @@ async def create_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.CreateSessionBody) request = cast(components.CreateSessionBody, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/session", base_url=base_url, @@ -734,42 +872,55 @@ async def create_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.CreateSessionBody), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.CreateSessionBody + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_session_session_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_session_session_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.CreateSessionSessionPostResponse(create_session_response=utils.unmarshal_json(http_res.text, Optional[components.CreateSessionResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateSessionSessionPostResponse( + create_session_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateSessionResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) diff --git a/src/comfydeploy/utils/__init__.py b/src/comfydeploy/utils/__init__.py index 95aa1b6..26d51ae 100644 --- a/src/comfydeploy/utils/__init__.py +++ b/src/comfydeploy/utils/__init__.py @@ -27,14 +27,23 @@ serialize_float, serialize_int, stream_to_text, + stream_to_text_async, + stream_to_bytes, + stream_to_bytes_async, + validate_const, validate_decimal, validate_float, validate_int, validate_open_enum, ) from .url import generate_url, template_url, remove_suffix -from .values import get_global_from_env, match_content_type, match_status_codes, match_response -from .logger import Logger, get_body_content, NoOpLogger +from .values import ( + get_global_from_env, + match_content_type, + match_status_codes, + match_response, +) +from .logger import Logger, get_body_content, get_default_logger __all__ = [ "BackoffStrategy", @@ -43,6 +52,7 @@ "FormMetadata", "generate_url", "get_body_content", + "get_default_logger", "get_discriminator", "get_global_from_env", "get_headers", @@ -57,7 +67,6 @@ "match_status_codes", "match_response", "MultipartFormMetadata", - "NoOpLogger", "OpenEnumMeta", "PathParamMetadata", "QueryParamMetadata", @@ -74,10 +83,14 @@ "serialize_request_body", "SerializedRequestBody", "stream_to_text", + "stream_to_text_async", + "stream_to_bytes", + "stream_to_bytes_async", "template_url", "unmarshal", "unmarshal_json", "validate_decimal", + "validate_const", "validate_float", "validate_int", "validate_open_enum", diff --git a/src/comfydeploy/utils/annotations.py b/src/comfydeploy/utils/annotations.py index 0d17472..387874e 100644 --- a/src/comfydeploy/utils/annotations.py +++ b/src/comfydeploy/utils/annotations.py @@ -1,19 +1,55 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from typing import Any +from enum import Enum +from typing import Any, Optional def get_discriminator(model: Any, fieldname: str, key: str) -> str: - if isinstance(model, dict): - try: - return f'{model.get(key)}' - except AttributeError as e: - raise ValueError(f'Could not find discriminator key {key} in {model}') from e - - if hasattr(model, fieldname): - return f'{getattr(model, fieldname)}' - - fieldname = fieldname.upper() - if hasattr(model, fieldname): - return f'{getattr(model, fieldname)}' + """ + Recursively search for the discriminator attribute in a model. + + Args: + model (Any): The model to search within. + fieldname (str): The name of the field to search for. + key (str): The key to search for in dictionaries. + + Returns: + str: The name of the discriminator attribute. + + Raises: + ValueError: If the discriminator attribute is not found. + """ + upper_fieldname = fieldname.upper() + + def get_field_discriminator(field: Any) -> Optional[str]: + """Search for the discriminator attribute in a given field.""" + + if isinstance(field, dict): + if key in field: + return f'{field[key]}' + + if hasattr(field, fieldname): + attr = getattr(field, fieldname) + if isinstance(attr, Enum): + return f'{attr.value}' + return f'{attr}' + + if hasattr(field, upper_fieldname): + attr = getattr(field, upper_fieldname) + if isinstance(attr, Enum): + return f'{attr.value}' + return f'{attr}' + + return None + + + if isinstance(model, list): + for field in model: + discriminator = get_field_discriminator(field) + if discriminator is not None: + return discriminator + + discriminator = get_field_discriminator(model) + if discriminator is not None: + return discriminator raise ValueError(f'Could not find discriminator field {fieldname} in {model}') diff --git a/src/comfydeploy/utils/eventstreaming.py b/src/comfydeploy/utils/eventstreaming.py index 553b386..74a63f7 100644 --- a/src/comfydeploy/utils/eventstreaming.py +++ b/src/comfydeploy/utils/eventstreaming.py @@ -2,12 +2,72 @@ import re import json -from typing import Callable, TypeVar, Optional, Generator, AsyncGenerator, Tuple +from typing import ( + Callable, + Generic, + TypeVar, + Optional, + Generator, + AsyncGenerator, + Tuple, +) import httpx T = TypeVar("T") +class EventStream(Generic[T]): + response: httpx.Response + generator: Generator[T, None, None] + + def __init__( + self, + response: httpx.Response, + decoder: Callable[[str], T], + sentinel: Optional[str] = None, + ): + self.response = response + self.generator = stream_events(response, decoder, sentinel) + + def __iter__(self): + return self + + def __next__(self): + return next(self.generator) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.response.close() + + +class EventStreamAsync(Generic[T]): + response: httpx.Response + generator: AsyncGenerator[T, None] + + def __init__( + self, + response: httpx.Response, + decoder: Callable[[str], T], + sentinel: Optional[str] = None, + ): + self.response = response + self.generator = stream_events_async(response, decoder, sentinel) + + def __aiter__(self): + return self + + async def __anext__(self): + return await self.generator.__anext__() + + async def __aenter__(self): + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb): + await self.response.aclose() + + class ServerEvent: id: Optional[str] = None event: Optional[str] = None diff --git a/src/comfydeploy/utils/forms.py b/src/comfydeploy/utils/forms.py index 07f9b23..0472aba 100644 --- a/src/comfydeploy/utils/forms.py +++ b/src/comfydeploy/utils/forms.py @@ -17,7 +17,7 @@ MultipartFormMetadata, find_field_metadata, ) -from .values import _val_to_string +from .values import _is_set, _val_to_string def _populate_form( @@ -27,7 +27,7 @@ def _populate_form( delimiter: str, form: Dict[str, List[str]], ): - if obj is None: + if not _is_set(obj): return form if isinstance(obj, BaseModel): @@ -41,7 +41,7 @@ def _populate_form( continue val = getattr(obj, name) - if val is None: + if not _is_set(val): continue if explode: @@ -54,7 +54,7 @@ def _populate_form( elif isinstance(obj, Dict): items = [] for key, value in obj.items(): - if value is None: + if not _is_set(value): continue if explode: @@ -68,7 +68,7 @@ def _populate_form( items = [] for value in obj: - if value is None: + if not _is_set(value): continue if explode: @@ -102,20 +102,19 @@ def serialize_multipart_form( field = request_fields[name] val = getattr(request, name) - if val is None: + if not _is_set(val): continue field_metadata = find_field_metadata(field, MultipartFormMetadata) if not field_metadata: continue - f_name = field.alias if field.alias is not None else name + f_name = field.alias if field.alias else name if field_metadata.file: file_fields: Dict[str, FieldInfo] = val.__class__.model_fields file_name = "" - field_name = "" content = None content_type = None @@ -131,20 +130,15 @@ def serialize_multipart_form( elif file_field_name == "content_type": content_type = getattr(val, file_field_name, None) else: - field_name = ( - file_field.alias - if file_field.alias is not None - else file_field_name - ) file_name = getattr(val, file_field_name) - if field_name == "" or file_name == "" or content is None: + if file_name == "" or content is None: raise ValueError("invalid multipart/form-data file") if content_type is not None: - files[field_name] = (file_name, content, content_type) + files[f_name] = (file_name, content, content_type) else: - files[field_name] = (file_name, content) + files[f_name] = (file_name, content) elif field_metadata.json: files[f_name] = ( None, @@ -156,7 +150,7 @@ def serialize_multipart_form( values = [] for value in val: - if value is None: + if not _is_set(value): continue values.append(_val_to_string(value)) @@ -176,7 +170,7 @@ def serialize_form_data(data: Any) -> Dict[str, Any]: field = data_fields[name] val = getattr(data, name) - if val is None: + if not _is_set(val): continue metadata = find_field_metadata(field, FormMetadata) @@ -200,7 +194,8 @@ def serialize_form_data(data: Any) -> Dict[str, Any]: raise ValueError(f"Invalid form style for field {name}") elif isinstance(data, Dict): for key, value in data.items(): - form[key] = [_val_to_string(value)] + if _is_set(value): + form[key] = [_val_to_string(value)] else: raise TypeError(f"Invalid request body type {type(data)} for form data") diff --git a/src/comfydeploy/utils/headers.py b/src/comfydeploy/utils/headers.py index e14a0f4..37864cb 100644 --- a/src/comfydeploy/utils/headers.py +++ b/src/comfydeploy/utils/headers.py @@ -15,16 +15,16 @@ find_field_metadata, ) -from .values import _populate_from_globals, _val_to_string +from .values import _is_set, _populate_from_globals, _val_to_string def get_headers(headers_params: Any, gbls: Optional[Any] = None) -> Dict[str, str]: headers: Dict[str, str] = {} globals_already_populated = [] - if headers_params is not None: + if _is_set(headers_params): globals_already_populated = _populate_headers(headers_params, gbls, headers, []) - if gbls is not None: + if _is_set(gbls): _populate_headers(gbls, None, headers, globals_already_populated) return headers @@ -67,7 +67,7 @@ def _populate_headers( def _serialize_header(explode: bool, obj: Any) -> str: - if obj is None: + if not _is_set(obj): return "" if isinstance(obj, BaseModel): @@ -83,7 +83,7 @@ def _serialize_header(explode: bool, obj: Any) -> str: f_name = obj_field.alias if obj_field.alias is not None else name val = getattr(obj, name) - if val is None: + if not _is_set(val): continue if explode: @@ -98,7 +98,7 @@ def _serialize_header(explode: bool, obj: Any) -> str: items = [] for key, value in obj.items(): - if value is None: + if not _is_set(value): continue if explode: @@ -113,14 +113,14 @@ def _serialize_header(explode: bool, obj: Any) -> str: items = [] for value in obj: - if value is None: + if not _is_set(value): continue items.append(_val_to_string(value)) if len(items) > 0: return ",".join(items) - else: + elif _is_set(obj): return f"{_val_to_string(obj)}" return "" diff --git a/src/comfydeploy/utils/logger.py b/src/comfydeploy/utils/logger.py index 7e4bbea..b661aff 100644 --- a/src/comfydeploy/utils/logger.py +++ b/src/comfydeploy/utils/logger.py @@ -3,14 +3,20 @@ import httpx from typing import Any, Protocol + class Logger(Protocol): def debug(self, msg: str, *args: Any, **kwargs: Any) -> None: pass + class NoOpLogger: def debug(self, msg: str, *args: Any, **kwargs: Any) -> None: pass + def get_body_content(req: httpx.Request) -> str: return "" if not hasattr(req, "_content") else str(req.content) + +def get_default_logger() -> Logger: + return NoOpLogger() diff --git a/src/comfydeploy/utils/queryparams.py b/src/comfydeploy/utils/queryparams.py index 1c8c583..37a6e7f 100644 --- a/src/comfydeploy/utils/queryparams.py +++ b/src/comfydeploy/utils/queryparams.py @@ -15,7 +15,12 @@ QueryParamMetadata, find_field_metadata, ) -from .values import _get_serialized_params, _populate_from_globals, _val_to_string +from .values import ( + _get_serialized_params, + _is_set, + _populate_from_globals, + _val_to_string, +) from .forms import _populate_form @@ -26,7 +31,7 @@ def get_query_params( params: Dict[str, List[str]] = {} globals_already_populated = _populate_query_params(query_params, gbls, params, []) - if gbls is not None: + if _is_set(gbls): _populate_query_params(gbls, None, params, globals_already_populated) return params @@ -55,7 +60,7 @@ def _populate_query_params( if not metadata: continue - value = getattr(query_params, name) if query_params is not None else None + value = getattr(query_params, name) if _is_set(query_params) else None value, global_found = _populate_from_globals( name, value, QueryParamMetadata, gbls @@ -99,7 +104,7 @@ def _populate_deep_object_query_params( obj: Any, params: Dict[str, List[str]], ): - if obj is None: + if not _is_set(obj): return if isinstance(obj, BaseModel): @@ -113,10 +118,7 @@ def _populate_deep_object_query_params_basemodel( obj: Any, params: Dict[str, List[str]], ): - if obj is None: - return - - if not isinstance(obj, BaseModel): + if not _is_set(obj) or not isinstance(obj, BaseModel): return obj_fields: Dict[str, FieldInfo] = obj.__class__.model_fields @@ -128,11 +130,11 @@ def _populate_deep_object_query_params_basemodel( params_key = f"{prior_params_key}[{f_name}]" obj_param_metadata = find_field_metadata(obj_field, QueryParamMetadata) - if obj_param_metadata is None: + if not _is_set(obj_param_metadata): continue obj_val = getattr(obj, name) - if obj_val is None: + if not _is_set(obj_val): continue if isinstance(obj_val, BaseModel): @@ -150,11 +152,11 @@ def _populate_deep_object_query_params_dict( value: Dict, params: Dict[str, List[str]], ): - if value is None: + if not _is_set(value): return for key, val in value.items(): - if val is None: + if not _is_set(val): continue params_key = f"{prior_params_key}[{key}]" @@ -174,11 +176,11 @@ def _populate_deep_object_query_params_list( value: List, params: Dict[str, List[str]], ): - if value is None: + if not _is_set(value): return for val in value: - if val is None: + if not _is_set(val): continue if params.get(params_key) is None: diff --git a/src/comfydeploy/utils/requestbodies.py b/src/comfydeploy/utils/requestbodies.py index 4f586ae..d5240dd 100644 --- a/src/comfydeploy/utils/requestbodies.py +++ b/src/comfydeploy/utils/requestbodies.py @@ -23,7 +23,7 @@ @dataclass class SerializedRequestBody: - media_type: str + media_type: Optional[str] = None content: Optional[Any] = None data: Optional[Any] = None files: Optional[Any] = None diff --git a/src/comfydeploy/utils/retries.py b/src/comfydeploy/utils/retries.py index a06f927..4d60867 100644 --- a/src/comfydeploy/utils/retries.py +++ b/src/comfydeploy/utils/retries.py @@ -1,5 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +import asyncio import random import time from typing import List @@ -212,5 +213,5 @@ async def retry_with_backoff_async( raise sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1) sleep = min(sleep, max_interval / 1000) - time.sleep(sleep) + await asyncio.sleep(sleep) retries += 1 diff --git a/src/comfydeploy/utils/security.py b/src/comfydeploy/utils/security.py index aab4cb6..295a3f4 100644 --- a/src/comfydeploy/utils/security.py +++ b/src/comfydeploy/utils/security.py @@ -16,7 +16,6 @@ ) - def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: headers: Dict[str, str] = {} query_params: Dict[str, List[str]] = {} @@ -42,8 +41,10 @@ def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: _parse_security_option(headers, query_params, value) return headers, query_params if metadata.scheme: - # Special case for basic auth which could be a flattened model - if metadata.sub_type == "basic" and not isinstance(value, BaseModel): + # Special case for basic auth or custom auth which could be a flattened model + if metadata.sub_type in ["basic", "custom"] and not isinstance( + value, BaseModel + ): _parse_security_scheme(headers, query_params, metadata, name, security) else: _parse_security_scheme(headers, query_params, metadata, name, value) @@ -80,9 +81,12 @@ def _parse_security_scheme( sub_type = scheme_metadata.sub_type if isinstance(scheme, BaseModel): - if scheme_type == "http" and sub_type == "basic": - _parse_basic_auth_scheme(headers, scheme) - return + if scheme_type == "http": + if sub_type == "basic": + _parse_basic_auth_scheme(headers, scheme) + return + if sub_type == "custom": + return scheme_fields: Dict[str, FieldInfo] = scheme.__class__.model_fields for name in scheme_fields: @@ -131,6 +135,8 @@ def _parse_security_scheme_value( elif scheme_type == "http": if sub_type == "bearer": headers[header_name] = _apply_bearer(value) + elif sub_type == "custom": + return else: raise ValueError("sub type {sub_type} not supported") else: diff --git a/src/comfydeploy/utils/serializers.py b/src/comfydeploy/utils/serializers.py index a98998a..c5eb365 100644 --- a/src/comfydeploy/utils/serializers.py +++ b/src/comfydeploy/utils/serializers.py @@ -9,13 +9,15 @@ from pydantic_core import from_json from typing_inspect import is_optional_type -from ..types.basemodel import BaseModel, Nullable, OptionalNullable +from ..types.basemodel import BaseModel, Nullable, OptionalNullable, Unset def serialize_decimal(as_str: bool): def serialize(d): if is_optional_type(type(d)) and d is None: return None + if isinstance(d, Unset): + return d if not isinstance(d, Decimal): raise ValueError("Expected Decimal object") @@ -29,7 +31,7 @@ def validate_decimal(d): if d is None: return None - if isinstance(d, Decimal): + if isinstance(d, (Decimal, Unset)): return d if not isinstance(d, (str, int, float)): @@ -42,6 +44,8 @@ def serialize_float(as_str: bool): def serialize(f): if is_optional_type(type(f)) and f is None: return None + if isinstance(f, Unset): + return f if not isinstance(f, float): raise ValueError("Expected float") @@ -55,7 +59,7 @@ def validate_float(f): if f is None: return None - if isinstance(f, float): + if isinstance(f, (float, Unset)): return f if not isinstance(f, str): @@ -65,14 +69,16 @@ def validate_float(f): def serialize_int(as_str: bool): - def serialize(b): - if is_optional_type(type(b)) and b is None: + def serialize(i): + if is_optional_type(type(i)) and i is None: return None + if isinstance(i, Unset): + return i - if not isinstance(b, int): + if not isinstance(i, int): raise ValueError("Expected int") - return str(b) if as_str else b + return str(i) if as_str else i return serialize @@ -81,7 +87,7 @@ def validate_int(b): if b is None: return None - if isinstance(b, int): + if isinstance(b, (int, Unset)): return b if not isinstance(b, str): @@ -95,6 +101,9 @@ def validate(e): if e is None: return None + if isinstance(e, Unset): + return e + if is_int: if not isinstance(e, int): raise ValueError("Expected int") @@ -107,6 +116,19 @@ def validate(e): return validate +def validate_const(v): + def validate(c): + if is_optional_type(type(c)) and c is None: + return None + + if v != c: + raise ValueError(f"Expected {v}") + + return c + + return validate + + def unmarshal_json(raw, typ: Any) -> Any: return unmarshal(from_json(raw), typ) @@ -163,6 +185,18 @@ def stream_to_text(stream: httpx.Response) -> str: return "".join(stream.iter_text()) +async def stream_to_text_async(stream: httpx.Response) -> str: + return "".join([chunk async for chunk in stream.aiter_text()]) + + +def stream_to_bytes(stream: httpx.Response) -> bytes: + return stream.content + + +async def stream_to_bytes_async(stream: httpx.Response) -> bytes: + return await stream.aread() + + def get_pydantic_model(data: Any, typ: Any) -> Any: if not _contains_pydantic_model(data): return unmarshal(data, typ) diff --git a/src/comfydeploy/utils/url.py b/src/comfydeploy/utils/url.py index b201bfa..c78ccba 100644 --- a/src/comfydeploy/utils/url.py +++ b/src/comfydeploy/utils/url.py @@ -18,7 +18,12 @@ PathParamMetadata, find_field_metadata, ) -from .values import _get_serialized_params, _populate_from_globals, _val_to_string +from .values import ( + _get_serialized_params, + _is_set, + _populate_from_globals, + _val_to_string, +) def generate_url( @@ -32,7 +37,7 @@ def generate_url( globals_already_populated = _populate_path_params( path_params, gbls, path_param_values, [] ) - if gbls is not None: + if _is_set(gbls): _populate_path_params(gbls, None, path_param_values, globals_already_populated) for key, value in path_param_values.items(): @@ -64,14 +69,14 @@ def _populate_path_params( if param_metadata is None: continue - param = getattr(path_params, name) if path_params is not None else None + param = getattr(path_params, name) if _is_set(path_params) else None param, global_found = _populate_from_globals( name, param, PathParamMetadata, gbls ) if global_found: globals_already_populated.append(name) - if param is None: + if not _is_set(param): continue f_name = field.alias if field.alias is not None else name @@ -87,13 +92,13 @@ def _populate_path_params( if param_metadata.style == "simple": if isinstance(param, List): for pp_val in param: - if pp_val is None: + if not _is_set(pp_val): continue pp_vals.append(_val_to_string(pp_val)) path_param_values[f_name] = ",".join(pp_vals) elif isinstance(param, Dict): for pp_key in param: - if param[pp_key] is None: + if not _is_set(param[pp_key]): continue if param_metadata.explode: pp_vals.append(f"{pp_key}={_val_to_string(param[pp_key])}") @@ -116,7 +121,7 @@ def _populate_path_params( ) param_field_val = getattr(param, name) - if param_field_val is None: + if not _is_set(param_field_val): continue if param_metadata.explode: pp_vals.append( @@ -127,7 +132,7 @@ def _populate_path_params( f"{param_name},{_val_to_string(param_field_val)}" ) path_param_values[f_name] = ",".join(pp_vals) - else: + elif _is_set(param): path_param_values[f_name] = _val_to_string(param) return globals_already_populated diff --git a/src/comfydeploy/utils/values.py b/src/comfydeploy/utils/values.py index 24ccae3..2b4b683 100644 --- a/src/comfydeploy/utils/values.py +++ b/src/comfydeploy/utils/values.py @@ -10,6 +10,8 @@ from pydantic import BaseModel from pydantic.fields import FieldInfo +from ..types.basemodel import Unset + from .serializers import marshal_json from .metadata import ParamMetadata, find_field_metadata @@ -126,3 +128,7 @@ def _get_serialized_params( params[field_name] = marshal_json(obj, typ) return params + + +def _is_set(value: Any) -> bool: + return value is not None and not isinstance(value, Unset) diff --git a/src/comfydeploy/workflow.py b/src/comfydeploy/workflow.py index 528a82d..b30ab96 100644 --- a/src/comfydeploy/workflow.py +++ b/src/comfydeploy/workflow.py @@ -6,17 +6,20 @@ from comfydeploy.models import components, errors, operations from comfydeploy.types import BaseModel, OptionalNullable, UNSET from comfydeploy.utils import eventstreaming -from typing import Any, List, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast + class Workflow(BaseSDK): - - def queue( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.QueueWorkflowRunRunWorkflowQueuePostResponse: r"""Workflow - Queue @@ -26,20 +29,21 @@ def queue( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/workflow/queue", base_url=base_url, @@ -50,52 +54,69 @@ def queue( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="queue_workflow_run_run_workflow_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="queue_workflow_run_run_workflow_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.QueueWorkflowRunRunWorkflowQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.QueueWorkflowRunRunWorkflowQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def queue_async( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.QueueWorkflowRunRunWorkflowQueuePostResponse: r"""Workflow - Queue @@ -105,20 +126,21 @@ async def queue_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/workflow/queue", base_url=base_url, @@ -129,52 +151,69 @@ async def queue_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="queue_workflow_run_run_workflow_queue_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="queue_workflow_run_run_workflow_queue_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.QueueWorkflowRunRunWorkflowQueuePostResponse(create_run_response=utils.unmarshal_json(http_res.text, Optional[components.CreateRunResponse]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.QueueWorkflowRunRunWorkflowQueuePostResponse( + create_run_response=utils.unmarshal_json( + http_res.text, Optional[components.CreateRunResponse] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def sync( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SyncWorkflowRunRunWorkflowSyncPostResponse: r"""Workflow - Sync @@ -184,20 +223,21 @@ def sync( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/workflow/sync", base_url=base_url, @@ -208,52 +248,69 @@ def sync( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="sync_workflow_run_run_workflow_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="sync_workflow_run_run_workflow_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SyncWorkflowRunRunWorkflowSyncPostResponse(response_sync_workflow_run_run_workflow_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SyncWorkflowRunRunWorkflowSyncPostResponse( + response_sync_workflow_run_run_workflow_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def sync_async( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.SyncWorkflowRunRunWorkflowSyncPostResponse: r"""Workflow - Sync @@ -263,20 +320,21 @@ async def sync_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/workflow/sync", base_url=base_url, @@ -287,52 +345,69 @@ async def sync_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="application/json", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="sync_workflow_run_run_workflow_sync_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="sync_workflow_run_run_workflow_sync_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], - retry_config=retry_config + error_status_codes=["422", "4XX", "5XX"], + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "application/json"): - return operations.SyncWorkflowRunRunWorkflowSyncPostResponse(response_sync_workflow_run_run_workflow_sync_post=utils.unmarshal_json(http_res.text, Optional[List[components.WorkflowRunOutputModel]]), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.SyncWorkflowRunRunWorkflowSyncPostResponse( + response_sync_workflow_run_run_workflow_sync_post=utils.unmarshal_json( + http_res.text, Optional[List[components.WorkflowRunOutputModel]] + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - def stream( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse: r"""Workflow - Stream @@ -342,20 +417,21 @@ def stream( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request( method="POST", path="/run/workflow/stream", base_url=base_url, @@ -366,53 +442,72 @@ def stream( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = self.do_request( - hook_ctx=HookContext(operation_id="create_run_workflow_stream_run_workflow_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_workflow_stream_run_workflow_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse(run_stream=eventstreaming.stream_events(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse( + run_stream=eventstreaming.EventStream( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = utils.stream_to_text(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) + content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + ) - - async def stream_async( - self, *, - request: Union[components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict], + self, + *, + request: Union[ + components.WorkflowRunRequest, components.WorkflowRunRequestTypedDict + ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, ) -> operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse: r"""Workflow - Stream @@ -422,20 +517,21 @@ async def stream_async( :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. """ base_url = None url_variables = None if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms - + if server_url is not None: base_url = server_url - + if not isinstance(request, BaseModel): request = utils.unmarshal(request, components.WorkflowRunRequest) request = cast(components.WorkflowRunRequest, request) - - req = self.build_request( + + req = self._build_request_async( method="POST", path="/run/workflow/stream", base_url=base_url, @@ -446,43 +542,58 @@ async def stream_async( request_has_query_params=True, user_agent_header="user-agent", accept_header_value="text/event-stream", + http_headers=http_headers, security=self.sdk_configuration.security, - get_serialized_body=lambda: utils.serialize_request_body(request, False, False, "json", components.WorkflowRunRequest), + get_serialized_body=lambda: utils.serialize_request_body( + request, False, False, "json", components.WorkflowRunRequest + ), timeout_ms=timeout_ms, ) - + if retries == UNSET: if self.sdk_configuration.retry_config is not UNSET: retries = self.sdk_configuration.retry_config retry_config = None if isinstance(retries, utils.RetryConfig): - retry_config = (retries, [ - "429", - "500", - "502", - "503", - "504" - ]) - + retry_config = (retries, ["429", "500", "502", "503", "504"]) + http_res = await self.do_request_async( - hook_ctx=HookContext(operation_id="create_run_workflow_stream_run_workflow_stream_post", oauth2_scopes=[], security_source=self.sdk_configuration.security), + hook_ctx=HookContext( + operation_id="create_run_workflow_stream_run_workflow_stream_post", + oauth2_scopes=[], + security_source=self.sdk_configuration.security, + ), request=req, - error_status_codes=["422","4XX","5XX"], + error_status_codes=["422", "4XX", "5XX"], stream=True, - retry_config=retry_config + retry_config=retry_config, ) - + data: Any = None if utils.match_response(http_res, "200", "text/event-stream"): - return operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse(run_stream=eventstreaming.stream_events_async(http_res, lambda raw: utils.unmarshal_json(raw, components.RunStream)), http_meta=components.HTTPMetadata(request=req, response=http_res)) + return operations.CreateRunWorkflowStreamRunWorkflowStreamPostResponse( + run_stream=eventstreaming.EventStreamAsync( + http_res, + lambda raw: utils.unmarshal_json(raw, components.RunStream), + ), + http_meta=components.HTTPMetadata(request=req, response=http_res), + ) if utils.match_response(http_res, "422", "application/json"): - data = utils.unmarshal_json(http_res.text, errors.HTTPValidationErrorData) + http_res_text = await utils.stream_to_text_async(http_res) + data = utils.unmarshal_json(http_res_text, errors.HTTPValidationErrorData) raise errors.HTTPValidationError(data=data) - if utils.match_response(http_res, ["4XX","5XX"], "*"): - raise errors.SDKError("API error occurred", http_res.status_code, http_res.text, http_res) - - content_type = http_res.headers.get("Content-Type") - raise errors.SDKError(f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", http_res.status_code, http_res.text, http_res) + if utils.match_response(http_res, ["4XX", "5XX"], "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + "API error occurred", http_res.status_code, http_res_text, http_res + ) - + content_type = http_res.headers.get("Content-Type") + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError( + f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", + http_res.status_code, + http_res_text, + http_res, + )