Skip to content

Commit bf61629

Browse files
feat(api): update via SDK Studio
1 parent 2afa935 commit bf61629

20 files changed

+202
-177
lines changed

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 60
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/digitalocean%2Fdigitalocean-genai-sdk-17838dec38ee8475c4bf4695b8dc70fe42a8f4da8ae9ffd415dc895b6628a952.yml
33
openapi_spec_hash: cfe5453e150989c8a9dbc9d7b4d1f76a
4-
config_hash: 69ff7af00780ef56932e2fcc4fd37584
4+
config_hash: 43595338207b5728be143c6184c8285e

api.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
# Shared Types
2-
3-
```python
4-
from digitalocean_genai_sdk.types import APIAgent
5-
```
6-
71
# Genai
82

93
Types:
@@ -22,6 +16,7 @@ Types:
2216

2317
```python
2418
from digitalocean_genai_sdk.types.genai import (
19+
APIAgent,
2520
APIDeploymentVisibility,
2621
APIModel,
2722
APIRetrievalMethod,

src/digitalocean_genai_sdk/_client.py

Lines changed: 179 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from __future__ import annotations
44

55
import os
6-
from typing import Any, Union, Mapping
6+
from typing import TYPE_CHECKING, Any, Union, Mapping
77
from typing_extensions import Self, override
88

99
import httpx
@@ -20,16 +20,22 @@
2020
RequestOptions,
2121
)
2222
from ._utils import is_given, get_async_library
23+
from ._compat import cached_property
2324
from ._version import __version__
24-
from .resources import chat, models, embeddings
2525
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
2626
from ._exceptions import APIStatusError, DigitaloceanGenaiSDKError
2727
from ._base_client import (
2828
DEFAULT_MAX_RETRIES,
2929
SyncAPIClient,
3030
AsyncAPIClient,
3131
)
32-
from .resources.genai import genai
32+
33+
if TYPE_CHECKING:
34+
from .resources import chat, genai, models, embeddings
35+
from .resources.chat import ChatResource, AsyncChatResource
36+
from .resources.models import ModelsResource, AsyncModelsResource
37+
from .resources.embeddings import EmbeddingsResource, AsyncEmbeddingsResource
38+
from .resources.genai.genai import GenaiResource, AsyncGenaiResource
3339

3440
__all__ = [
3541
"Timeout",
@@ -44,13 +50,6 @@
4450

4551

4652
class DigitaloceanGenaiSDK(SyncAPIClient):
47-
genai: genai.GenaiResource
48-
chat: chat.ChatResource
49-
embeddings: embeddings.EmbeddingsResource
50-
models: models.ModelsResource
51-
with_raw_response: DigitaloceanGenaiSDKWithRawResponse
52-
with_streaming_response: DigitaloceanGenaiSDKWithStreamedResponse
53-
5453
# client options
5554
api_key: str
5655

@@ -105,12 +104,37 @@ def __init__(
105104
_strict_response_validation=_strict_response_validation,
106105
)
107106

108-
self.genai = genai.GenaiResource(self)
109-
self.chat = chat.ChatResource(self)
110-
self.embeddings = embeddings.EmbeddingsResource(self)
111-
self.models = models.ModelsResource(self)
112-
self.with_raw_response = DigitaloceanGenaiSDKWithRawResponse(self)
113-
self.with_streaming_response = DigitaloceanGenaiSDKWithStreamedResponse(self)
107+
@cached_property
108+
def genai(self) -> GenaiResource:
109+
from .resources.genai import GenaiResource
110+
111+
return GenaiResource(self)
112+
113+
@cached_property
114+
def chat(self) -> ChatResource:
115+
from .resources.chat import ChatResource
116+
117+
return ChatResource(self)
118+
119+
@cached_property
120+
def embeddings(self) -> EmbeddingsResource:
121+
from .resources.embeddings import EmbeddingsResource
122+
123+
return EmbeddingsResource(self)
124+
125+
@cached_property
126+
def models(self) -> ModelsResource:
127+
from .resources.models import ModelsResource
128+
129+
return ModelsResource(self)
130+
131+
@cached_property
132+
def with_raw_response(self) -> DigitaloceanGenaiSDKWithRawResponse:
133+
return DigitaloceanGenaiSDKWithRawResponse(self)
134+
135+
@cached_property
136+
def with_streaming_response(self) -> DigitaloceanGenaiSDKWithStreamedResponse:
137+
return DigitaloceanGenaiSDKWithStreamedResponse(self)
114138

115139
@property
116140
@override
@@ -218,13 +242,6 @@ def _make_status_error(
218242

219243

220244
class AsyncDigitaloceanGenaiSDK(AsyncAPIClient):
221-
genai: genai.AsyncGenaiResource
222-
chat: chat.AsyncChatResource
223-
embeddings: embeddings.AsyncEmbeddingsResource
224-
models: models.AsyncModelsResource
225-
with_raw_response: AsyncDigitaloceanGenaiSDKWithRawResponse
226-
with_streaming_response: AsyncDigitaloceanGenaiSDKWithStreamedResponse
227-
228245
# client options
229246
api_key: str
230247

@@ -279,12 +296,37 @@ def __init__(
279296
_strict_response_validation=_strict_response_validation,
280297
)
281298

282-
self.genai = genai.AsyncGenaiResource(self)
283-
self.chat = chat.AsyncChatResource(self)
284-
self.embeddings = embeddings.AsyncEmbeddingsResource(self)
285-
self.models = models.AsyncModelsResource(self)
286-
self.with_raw_response = AsyncDigitaloceanGenaiSDKWithRawResponse(self)
287-
self.with_streaming_response = AsyncDigitaloceanGenaiSDKWithStreamedResponse(self)
299+
@cached_property
300+
def genai(self) -> AsyncGenaiResource:
301+
from .resources.genai import AsyncGenaiResource
302+
303+
return AsyncGenaiResource(self)
304+
305+
@cached_property
306+
def chat(self) -> AsyncChatResource:
307+
from .resources.chat import AsyncChatResource
308+
309+
return AsyncChatResource(self)
310+
311+
@cached_property
312+
def embeddings(self) -> AsyncEmbeddingsResource:
313+
from .resources.embeddings import AsyncEmbeddingsResource
314+
315+
return AsyncEmbeddingsResource(self)
316+
317+
@cached_property
318+
def models(self) -> AsyncModelsResource:
319+
from .resources.models import AsyncModelsResource
320+
321+
return AsyncModelsResource(self)
322+
323+
@cached_property
324+
def with_raw_response(self) -> AsyncDigitaloceanGenaiSDKWithRawResponse:
325+
return AsyncDigitaloceanGenaiSDKWithRawResponse(self)
326+
327+
@cached_property
328+
def with_streaming_response(self) -> AsyncDigitaloceanGenaiSDKWithStreamedResponse:
329+
return AsyncDigitaloceanGenaiSDKWithStreamedResponse(self)
288330

289331
@property
290332
@override
@@ -392,35 +434,127 @@ def _make_status_error(
392434

393435

394436
class DigitaloceanGenaiSDKWithRawResponse:
437+
_client: DigitaloceanGenaiSDK
438+
395439
def __init__(self, client: DigitaloceanGenaiSDK) -> None:
396-
self.genai = genai.GenaiResourceWithRawResponse(client.genai)
397-
self.chat = chat.ChatResourceWithRawResponse(client.chat)
398-
self.embeddings = embeddings.EmbeddingsResourceWithRawResponse(client.embeddings)
399-
self.models = models.ModelsResourceWithRawResponse(client.models)
440+
self._client = client
441+
442+
@cached_property
443+
def genai(self) -> genai.GenaiResourceWithRawResponse:
444+
from .resources.genai import GenaiResourceWithRawResponse
445+
446+
return GenaiResourceWithRawResponse(self._client.genai)
447+
448+
@cached_property
449+
def chat(self) -> chat.ChatResourceWithRawResponse:
450+
from .resources.chat import ChatResourceWithRawResponse
451+
452+
return ChatResourceWithRawResponse(self._client.chat)
453+
454+
@cached_property
455+
def embeddings(self) -> embeddings.EmbeddingsResourceWithRawResponse:
456+
from .resources.embeddings import EmbeddingsResourceWithRawResponse
457+
458+
return EmbeddingsResourceWithRawResponse(self._client.embeddings)
459+
460+
@cached_property
461+
def models(self) -> models.ModelsResourceWithRawResponse:
462+
from .resources.models import ModelsResourceWithRawResponse
463+
464+
return ModelsResourceWithRawResponse(self._client.models)
400465

401466

402467
class AsyncDigitaloceanGenaiSDKWithRawResponse:
468+
_client: AsyncDigitaloceanGenaiSDK
469+
403470
def __init__(self, client: AsyncDigitaloceanGenaiSDK) -> None:
404-
self.genai = genai.AsyncGenaiResourceWithRawResponse(client.genai)
405-
self.chat = chat.AsyncChatResourceWithRawResponse(client.chat)
406-
self.embeddings = embeddings.AsyncEmbeddingsResourceWithRawResponse(client.embeddings)
407-
self.models = models.AsyncModelsResourceWithRawResponse(client.models)
471+
self._client = client
472+
473+
@cached_property
474+
def genai(self) -> genai.AsyncGenaiResourceWithRawResponse:
475+
from .resources.genai import AsyncGenaiResourceWithRawResponse
476+
477+
return AsyncGenaiResourceWithRawResponse(self._client.genai)
478+
479+
@cached_property
480+
def chat(self) -> chat.AsyncChatResourceWithRawResponse:
481+
from .resources.chat import AsyncChatResourceWithRawResponse
482+
483+
return AsyncChatResourceWithRawResponse(self._client.chat)
484+
485+
@cached_property
486+
def embeddings(self) -> embeddings.AsyncEmbeddingsResourceWithRawResponse:
487+
from .resources.embeddings import AsyncEmbeddingsResourceWithRawResponse
488+
489+
return AsyncEmbeddingsResourceWithRawResponse(self._client.embeddings)
490+
491+
@cached_property
492+
def models(self) -> models.AsyncModelsResourceWithRawResponse:
493+
from .resources.models import AsyncModelsResourceWithRawResponse
494+
495+
return AsyncModelsResourceWithRawResponse(self._client.models)
408496

409497

410498
class DigitaloceanGenaiSDKWithStreamedResponse:
499+
_client: DigitaloceanGenaiSDK
500+
411501
def __init__(self, client: DigitaloceanGenaiSDK) -> None:
412-
self.genai = genai.GenaiResourceWithStreamingResponse(client.genai)
413-
self.chat = chat.ChatResourceWithStreamingResponse(client.chat)
414-
self.embeddings = embeddings.EmbeddingsResourceWithStreamingResponse(client.embeddings)
415-
self.models = models.ModelsResourceWithStreamingResponse(client.models)
502+
self._client = client
503+
504+
@cached_property
505+
def genai(self) -> genai.GenaiResourceWithStreamingResponse:
506+
from .resources.genai import GenaiResourceWithStreamingResponse
507+
508+
return GenaiResourceWithStreamingResponse(self._client.genai)
509+
510+
@cached_property
511+
def chat(self) -> chat.ChatResourceWithStreamingResponse:
512+
from .resources.chat import ChatResourceWithStreamingResponse
513+
514+
return ChatResourceWithStreamingResponse(self._client.chat)
515+
516+
@cached_property
517+
def embeddings(self) -> embeddings.EmbeddingsResourceWithStreamingResponse:
518+
from .resources.embeddings import EmbeddingsResourceWithStreamingResponse
519+
520+
return EmbeddingsResourceWithStreamingResponse(self._client.embeddings)
521+
522+
@cached_property
523+
def models(self) -> models.ModelsResourceWithStreamingResponse:
524+
from .resources.models import ModelsResourceWithStreamingResponse
525+
526+
return ModelsResourceWithStreamingResponse(self._client.models)
416527

417528

418529
class AsyncDigitaloceanGenaiSDKWithStreamedResponse:
530+
_client: AsyncDigitaloceanGenaiSDK
531+
419532
def __init__(self, client: AsyncDigitaloceanGenaiSDK) -> None:
420-
self.genai = genai.AsyncGenaiResourceWithStreamingResponse(client.genai)
421-
self.chat = chat.AsyncChatResourceWithStreamingResponse(client.chat)
422-
self.embeddings = embeddings.AsyncEmbeddingsResourceWithStreamingResponse(client.embeddings)
423-
self.models = models.AsyncModelsResourceWithStreamingResponse(client.models)
533+
self._client = client
534+
535+
@cached_property
536+
def genai(self) -> genai.AsyncGenaiResourceWithStreamingResponse:
537+
from .resources.genai import AsyncGenaiResourceWithStreamingResponse
538+
539+
return AsyncGenaiResourceWithStreamingResponse(self._client.genai)
540+
541+
@cached_property
542+
def chat(self) -> chat.AsyncChatResourceWithStreamingResponse:
543+
from .resources.chat import AsyncChatResourceWithStreamingResponse
544+
545+
return AsyncChatResourceWithStreamingResponse(self._client.chat)
546+
547+
@cached_property
548+
def embeddings(self) -> embeddings.AsyncEmbeddingsResourceWithStreamingResponse:
549+
from .resources.embeddings import AsyncEmbeddingsResourceWithStreamingResponse
550+
551+
return AsyncEmbeddingsResourceWithStreamingResponse(self._client.embeddings)
552+
553+
@cached_property
554+
def models(self) -> models.AsyncModelsResourceWithStreamingResponse:
555+
from .resources.models import AsyncModelsResourceWithStreamingResponse
556+
557+
return AsyncModelsResourceWithStreamingResponse(self._client.models)
424558

425559

426560
Client = DigitaloceanGenaiSDK

src/digitalocean_genai_sdk/types/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from __future__ import annotations
44

55
from .model import Model as Model
6-
from .shared import APIAgent as APIAgent
76
from .model_list_response import ModelListResponse as ModelListResponse
87
from .embedding_create_params import EmbeddingCreateParams as EmbeddingCreateParams
98
from .embedding_create_response import EmbeddingCreateResponse as EmbeddingCreateResponse

src/digitalocean_genai_sdk/types/genai/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from __future__ import annotations
44

5+
from .api_agent import APIAgent as APIAgent
56
from .api_model import APIModel as APIModel
67
from .api_agreement import APIAgreement as APIAgreement
78
from .api_indexing_job import APIIndexingJob as APIIndexingJob

src/digitalocean_genai_sdk/types/genai/agent_create_response.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from typing import Optional
66

7-
from ..._compat import PYDANTIC_V2
87
from ..._models import BaseModel
98

109
__all__ = ["AgentCreateResponse"]
@@ -14,9 +13,4 @@ class AgentCreateResponse(BaseModel):
1413
agent: Optional["APIAgent"] = None
1514

1615

17-
from ..shared.api_agent import APIAgent
18-
19-
if PYDANTIC_V2:
20-
AgentCreateResponse.model_rebuild()
21-
else:
22-
AgentCreateResponse.update_forward_refs() # type: ignore
16+
from .api_agent import APIAgent

src/digitalocean_genai_sdk/types/genai/agent_delete_response.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from typing import Optional
66

7-
from ..._compat import PYDANTIC_V2
87
from ..._models import BaseModel
98

109
__all__ = ["AgentDeleteResponse"]
@@ -14,9 +13,4 @@ class AgentDeleteResponse(BaseModel):
1413
agent: Optional["APIAgent"] = None
1514

1615

17-
from ..shared.api_agent import APIAgent
18-
19-
if PYDANTIC_V2:
20-
AgentDeleteResponse.model_rebuild()
21-
else:
22-
AgentDeleteResponse.update_forward_refs() # type: ignore
16+
from .api_agent import APIAgent

src/digitalocean_genai_sdk/types/genai/agent_retrieve_response.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from typing import Optional
66

7-
from ..._compat import PYDANTIC_V2
87
from ..._models import BaseModel
98

109
__all__ = ["AgentRetrieveResponse"]
@@ -14,9 +13,4 @@ class AgentRetrieveResponse(BaseModel):
1413
agent: Optional["APIAgent"] = None
1514

1615

17-
from ..shared.api_agent import APIAgent
18-
19-
if PYDANTIC_V2:
20-
AgentRetrieveResponse.model_rebuild()
21-
else:
22-
AgentRetrieveResponse.update_forward_refs() # type: ignore
16+
from .api_agent import APIAgent

0 commit comments

Comments
 (0)