pydo package

Subpackages

Submodules

pydo.custom_policies module

class pydo.custom_policies.CustomHttpLoggingPolicy(logger=None, **kwargs)

Bases: HttpLoggingPolicy

ALLOWED_HEADERS = {'CF-Cache-Status', 'CF-RAY', 'Content-Encoding', 'Expect-CT', 'Server', 'ratelimit-limit', 'ratelimit-remaining', 'ratelimit-reset', 'x-gateway', 'x-request-id', 'x-response-from'}

pydo.exceptions module

Exceptions

exception pydo.exceptions.SSEStreamDecodeError

Bases: ValueError

Raised when a complete data: line is not valid JSON.

exception pydo.exceptions.SSEStreamRetryExhaustedError

Bases: RuntimeError

Raised when all retry attempts for an SSE stream have failed.

exception pydo.exceptions.SSEStreamTransportError

Bases: RuntimeError

Raised when reading an SSE stream fails before a clean end.

Typical causes: dropped connections, timeouts, incomplete lines at EOF.

pydo.types module

class pydo.types.AsyncInvokeResponse

Bases: DotDict

Typed response for async_invoke_response schema.

completed_at: Optional[str]
created_at: str
error: Optional[str]
model_id: str
output: Optional[Any]
request_id: str
started_at: Optional[str]
status: str
class pydo.types.Batch

Bases: DotDict

Typed response for batch schema.

batch_id: str
cancelled_at: Optional[str]
completed_at: Optional[str]
completion_window: str
created_at: str
endpoint: str
error_file_id: Optional[str]
errors: Optional[List[Any]]
expires_at: Optional[str]
failed_at: Optional[str]
finalizing_at: Optional[str]
in_progress_at: Optional[str]
input_file_id: str
metadata: Optional[Any]
output_file_id: Optional[str]
provider: str
request_counts: Any
request_id: str
status: str
class pydo.types.BatchFileCreateResponse

Bases: DotDict

Typed response for batch_file_create_response schema.

expires_at: Optional[str]
file_id: str
upload_url: str
class pydo.types.BatchListResponse

Bases: DotDict

Typed response for batch_list_response schema.

data: List[Any]
first_id: Optional[str]
has_more: bool
last_id: Optional[str]
object: str
class pydo.types.BatchResultsResponse

Bases: DotDict

Typed response for batch_results_response schema.

batch_id: str
error_file_url: Optional[str]
expires_at: Optional[str]
output_file_url: Optional[str]
result_available: bool
class pydo.types.ChatCompletion

Bases: DotDict

Typed response for chat_completion_response schema.

choices: List[Any]
created: int
id: str
model: str
object: str
usage: CompletionUsage
class pydo.types.ChatCompletionChunk

Bases: DotDict

Typed response for chat_completion_chunk schema.

choices: List[Any]
created: int
id: str
model: str
object: str
usage: Optional[Any]
class pydo.types.ChatCompletionStreamResponseDelta

Bases: DotDict

Typed response for chat_completion_stream_response_delta schema.

content: Optional[str]
reasoning_content: Optional[str]
refusal: Optional[str]
role: str
tool_calls: List[Any]
class pydo.types.ChatCompletionTokenLogprob

Bases: DotDict

Typed response for chat_completion_token_logprob schema.

bytes: Optional[List[Any]]
logprob: float
token: str
top_logprobs: List[Any]
class pydo.types.CompletionUsage

Bases: DotDict

Typed response for completion_usage schema.

cache_created_input_tokens: int
cache_creation: Any
cache_read_input_tokens: int
completion_tokens: int
prompt_tokens: int
total_tokens: int
class pydo.types.EmbeddingDataItem

Bases: DotDict

Typed response for embedding_data_item schema.

embedding: Any
index: int
object: str
class pydo.types.EmbeddingsResponse

Bases: DotDict

Typed response for embeddings_response schema.

data: List[Any]
model: str
object: str
usage: EmbeddingsUsage
class pydo.types.EmbeddingsUsage

Bases: DotDict

Typed response for embeddings_usage schema.

prompt_tokens: int
total_tokens: int
class pydo.types.Error

Bases: DotDict

Typed response for error schema.

id: str
message: str
request_id: str
class pydo.types.Image

Bases: DotDict

Typed response for generated_image schema.

b64_json: str
revised_prompt: str
class pydo.types.ImageGenPartialImageEvent

Bases: DotDict

Typed response for image_gen_partial_image_event schema.

b64_json: str
background: str
created_at: int
output_format: str
partial_image_index: int
quality: str
size: str
type: str
class pydo.types.ImagesResponse

Bases: DotDict

Typed response for images_response schema.

background: Optional[str]
created: int
data: List[Any]
output_format: Optional[str]
quality: Optional[str]
size: Optional[str]
usage: Optional[Any]
class pydo.types.ImagesUsage

Bases: DotDict

Typed response for images_usage schema.

input_tokens: int
input_tokens_details: Any
output_tokens: int
total_tokens: int
class pydo.types.ListModelsResponse

Bases: DotDict

Typed response for list_models_response schema.

data: List[Any]
object: str
class pydo.types.MessagesCreateErrorResponse

Bases: DotDict

Typed response for messages_create_error_response schema.

error: Any
type: str
class pydo.types.MessagesCreateResponse

Bases: DotDict

Typed response for messages_create_response schema.

content: List[Any]
id: str
model: str
role: str
stop_reason: Optional[str]
stop_sequence: Optional[str]
type: str
usage: MessagesUsage
class pydo.types.MessagesResponseContentBlock

Bases: DotDict

Typed response for messages_response_content_block schema.

cache_creation_input_tokens: int
cache_read_input_tokens: int
input_tokens: int
output_tokens: int
speed: Optional[str]
class pydo.types.MessagesStreamEvent

Bases: DotDict

Typed response for messages_stream_event schema.

content_block: Any
delta: Any
index: int
message: Any
type: str
usage: Any
class pydo.types.MessagesUsage

Bases: DotDict

Typed response for messages_usage schema.

cache_creation_input_tokens: int
cache_read_input_tokens: int
input_tokens: int
output_tokens: int
speed: Optional[str]
class pydo.types.Model

Bases: DotDict

Typed response for model schema.

created: int
id: str
object: str
owned_by: str
class pydo.types.Response

Bases: DotDict

Typed response for create_response_response schema.

created: int
id: str
max_output_tokens: Optional[int]
model: str
object: str
output: List[Any]
parallel_tool_calls: Optional[bool]
status: Optional[str]
temperature: Optional[float]
tool_choice: Optional[str]
tools: Optional[List[Any]]
top_p: Optional[float]
usage: ResponseUsage
user: Optional[str]
class pydo.types.ResponseStreamChunk

Bases: DotDict

Typed response for create_response_stream_response schema.

choices: List[Any]
created: int
id: str
model: str
object: str
usage: Optional[Any]
class pydo.types.ResponseUsage

Bases: DotDict

Typed response for response_usage schema.

input_tokens: int
input_tokens_details: Any
output_tokens: int
output_tokens_details: Any
total_tokens: int

Module contents

class pydo.Client(token: Optional[str] = None, *, api_key: Optional[str] = None, timeout: int = 120, inference_endpoint: str = 'https://inference.do-ai.run', agent_endpoint: str = '', **kwargs)

Bases: InferenceClientSurface, AgentClientSurface, GeneratedClient

The official DigitalOcean Python client

Parameters:
  • token (str) – A valid API token / model access key (positional or token=).

  • api_key (str) – Alternative keyword for the model access key (same semantics as token). Provided for ergonomic parity with other Python inference clients.

  • endpoint (str) – Service URL. Default value is “https://api.digitalocean.com”.

  • inference_endpoint (str) – Serverless inference URL. Default value is “https://inference.do-ai.run”.

  • agent_endpoint (str) – Agent inference URL. Pass the per-agent subdomain (e.g. "https://<id>.agents.do-ai.run"). Required only when using agent inference endpoints.

class pydo.GeneratedClient(credential: TokenCredential, *, endpoint: str = 'https://api.digitalocean.com', **kwargs: Any)

Bases: object

GeneratedClient.

Variables:
Parameters:
  • credential (TokenCredential) – Credential needed for the client to connect to Azure. Required.

  • endpoint (str) – Service URL. Default value is “https://api.digitalocean.com”.

close() None
send_request(request: HttpRequest, *, stream: bool = False, **kwargs: Any) HttpResponse

Runs the network request through the client’s chained policies.

>>> from azure.core.rest import HttpRequest
>>> request = HttpRequest("GET", "https://www.example.org/")
<HttpRequest [GET], url: 'https://www.example.org/'>
>>> response = client.send_request(request)
<HttpResponse: 200 OK>

For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request

Parameters:
  • request (HttpRequest) – The network request you want to make. Required.

  • stream (bool) – Whether the response payload will be streamed. Defaults to False.

Returns:

The response of your network call. Does not do error handling on your response.

Return type:

HttpResponse