Skip to content

Commit 1af16f3

Browse files
stainless-app[bot]bkdoengRobertCraigie
authored
release: 3.3.0 (#47)
* feat(api): update via SDK Studio * lint fix * use correct return type name * feat(api): Images generations - openai * release: 3.3.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: bkannappan <bkannappan@digitalocean.com> Co-authored-by: Robert Craigie <robert@craigie.dev> Co-authored-by: Boopathy Kannappan <86243143+bkdoeng@users.noreply.github.com>
1 parent a5abfd7 commit 1af16f3

File tree

16 files changed

+138
-272
lines changed

16 files changed

+138
-272
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "3.2.0"
2+
".": "3.3.0"
33
}

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 175
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/digitalocean%2Fgradient-40c154e2fdc4fef9ca1cf8329c29b7102bf324acfc9589571d6f3452d1ca579c.yml
33
openapi_spec_hash: 83a3d092965fde776b29b61f785459f9
4-
config_hash: dd3a0f16fb9e072bb63c570b14beccd2
4+
config_hash: 8497af1695ff361853c745dd869dc6b9

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 3.3.0 (2025-10-07)
4+
5+
Full Changelog: [v3.2.0...v3.3.0](https://github.com/digitalocean/gradient-python/compare/v3.2.0...v3.3.0)
6+
7+
### Features
8+
9+
* **api:** Images generations - openai ([e5a309e](https://github.com/digitalocean/gradient-python/commit/e5a309e46bf05846c580f425e6fa23f323138a4d))
10+
* **api:** update via SDK Studio ([c2bf693](https://github.com/digitalocean/gradient-python/commit/c2bf693d233830dafdfc2aa7f74e2ced2e8d81a0))
11+
312
## 3.2.0 (2025-10-06)
413

514
Full Changelog: [v3.1.0...v3.2.0](https://github.com/digitalocean/gradient-python/compare/v3.1.0...v3.2.0)

api.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,17 +388,15 @@ Methods:
388388

389389
# Images
390390

391-
## Generations
392-
393391
Types:
394392

395393
```python
396-
from gradient.types.images import GenerationCreateResponse
394+
from gradient.types import ImageGenerateResponse
397395
```
398396

399397
Methods:
400398

401-
- <code title="post /images/generations">client.images.generations.<a href="./src/gradient/resources/images/generations.py">create</a>(\*\*<a href="src/gradient/types/images/generation_create_params.py">params</a>) -> <a href="./src/gradient/types/images/generation_create_response.py">GenerationCreateResponse</a></code>
399+
- <code title="post /images/generations">client.images.<a href="./src/gradient/resources/images.py">generate</a>(\*\*<a href="src/gradient/types/image_generate_params.py">params</a>) -> <a href="./src/gradient/types/image_generate_response.py">ImageGenerateResponse</a></code>
402400

403401
# GPUDroplets
404402

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "gradient"
3-
version = "3.2.0"
3+
version = "3.3.0"
44
description = "The official Python library for the Gradient API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/gradient/_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@
4343
gpu_droplets,
4444
knowledge_bases,
4545
)
46+
from .resources.images import ImagesResource, AsyncImagesResource
4647
from .resources.regions import RegionsResource, AsyncRegionsResource
4748
from .resources.chat.chat import ChatResource, AsyncChatResource
4849
from .resources.gpu_droplets import (
4950
GPUDropletsResource,
5051
AsyncGPUDropletsResource,
5152
)
5253
from .resources.agents.agents import AgentsResource, AsyncAgentsResource
53-
from .resources.images.images import ImagesResource, AsyncImagesResource
5454
from .resources.models.models import ModelsResource, AsyncModelsResource
5555
from .resources.databases.databases import DatabasesResource, AsyncDatabasesResource
5656
from .resources.inference.inference import InferenceResource, AsyncInferenceResource

src/gradient/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "gradient"
4-
__version__ = "3.2.0" # x-release-please-version
4+
__version__ = "3.3.0" # x-release-please-version

src/gradient/resources/images/generations.py renamed to src/gradient/resources/images.py

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,47 @@
77

88
import httpx
99

10-
from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
11-
from ..._utils import required_args, maybe_transform, async_maybe_transform
12-
from ..._compat import cached_property
13-
from ..._resource import SyncAPIResource, AsyncAPIResource
14-
from ..._response import (
10+
from ..types import image_generate_params
11+
from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
12+
from .._utils import required_args, maybe_transform, async_maybe_transform
13+
from .._compat import cached_property
14+
from .._resource import SyncAPIResource, AsyncAPIResource
15+
from .._response import (
1516
to_raw_response_wrapper,
1617
to_streamed_response_wrapper,
1718
async_to_raw_response_wrapper,
1819
async_to_streamed_response_wrapper,
1920
)
20-
from ..._streaming import Stream, AsyncStream
21-
from ..._base_client import make_request_options
22-
from ...types.images import generation_create_params
23-
from ...types.shared.image_gen_stream_event import ImageGenStreamEvent
24-
from ...types.images.generation_create_response import GenerationCreateResponse
21+
from .._streaming import Stream, AsyncStream
22+
from .._base_client import make_request_options
23+
from ..types.image_generate_response import ImageGenerateResponse
24+
from ..types.shared.image_gen_stream_event import ImageGenStreamEvent
2525

26-
__all__ = ["GenerationsResource", "AsyncGenerationsResource"]
26+
__all__ = ["ImagesResource", "AsyncImagesResource"]
2727

2828

29-
class GenerationsResource(SyncAPIResource):
29+
class ImagesResource(SyncAPIResource):
3030
@cached_property
31-
def with_raw_response(self) -> GenerationsResourceWithRawResponse:
31+
def with_raw_response(self) -> ImagesResourceWithRawResponse:
3232
"""
3333
This property can be used as a prefix for any HTTP method call to return
3434
the raw response object instead of the parsed content.
3535
3636
For more information, see https://www.github.com/digitalocean/gradient-python#accessing-raw-response-data-eg-headers
3737
"""
38-
return GenerationsResourceWithRawResponse(self)
38+
return ImagesResourceWithRawResponse(self)
3939

4040
@cached_property
41-
def with_streaming_response(self) -> GenerationsResourceWithStreamingResponse:
41+
def with_streaming_response(self) -> ImagesResourceWithStreamingResponse:
4242
"""
4343
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
4444
4545
For more information, see https://www.github.com/digitalocean/gradient-python#with_streaming_response
4646
"""
47-
return GenerationsResourceWithStreamingResponse(self)
47+
return ImagesResourceWithStreamingResponse(self)
4848

4949
@overload
50-
def create(
50+
def generate(
5151
self,
5252
*,
5353
prompt: str,
@@ -68,7 +68,7 @@ def create(
6868
extra_query: Query | None = None,
6969
extra_body: Body | None = None,
7070
timeout: float | httpx.Timeout | None | NotGiven = not_given,
71-
) -> GenerationCreateResponse:
71+
) -> ImageGenerateResponse:
7272
"""
7373
Creates a high-quality image from a text prompt using GPT-IMAGE-1, the latest
7474
image generation model with automatic prompt optimization and enhanced visual
@@ -126,7 +126,7 @@ def create(
126126
...
127127

128128
@overload
129-
def create(
129+
def generate(
130130
self,
131131
*,
132132
prompt: str,
@@ -205,7 +205,7 @@ def create(
205205
...
206206

207207
@overload
208-
def create(
208+
def generate(
209209
self,
210210
*,
211211
prompt: str,
@@ -226,7 +226,7 @@ def create(
226226
extra_query: Query | None = None,
227227
extra_body: Body | None = None,
228228
timeout: float | httpx.Timeout | None | NotGiven = not_given,
229-
) -> GenerationCreateResponse | Stream[ImageGenStreamEvent]:
229+
) -> ImageGenerateResponse | Stream[ImageGenStreamEvent]:
230230
"""
231231
Creates a high-quality image from a text prompt using GPT-IMAGE-1, the latest
232232
image generation model with automatic prompt optimization and enhanced visual
@@ -284,7 +284,7 @@ def create(
284284
...
285285

286286
@required_args(["prompt"], ["prompt", "stream"])
287-
def create(
287+
def generate(
288288
self,
289289
*,
290290
prompt: str,
@@ -305,7 +305,7 @@ def create(
305305
extra_query: Query | None = None,
306306
extra_body: Body | None = None,
307307
timeout: float | httpx.Timeout | None | NotGiven = not_given,
308-
) -> GenerationCreateResponse | Stream[ImageGenStreamEvent]:
308+
) -> ImageGenerateResponse | Stream[ImageGenStreamEvent]:
309309
if not self._client.model_access_key:
310310
raise TypeError(
311311
"Could not resolve authentication method. Expected model_access_key to be set for chat completions."
@@ -335,41 +335,41 @@ def create(
335335
"stream": stream,
336336
"user": user,
337337
},
338-
generation_create_params.GenerationCreateParamsStreaming
338+
image_generate_params.ImageGenerateParamsStreaming
339339
if stream
340-
else generation_create_params.GenerationCreateParamsNonStreaming,
340+
else image_generate_params.ImageGenerateParamsNonStreaming,
341341
),
342342
options=make_request_options(
343343
extra_headers=headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
344344
),
345-
cast_to=GenerationCreateResponse,
345+
cast_to=ImageGenerateResponse,
346346
stream=stream or False,
347347
stream_cls=Stream[ImageGenStreamEvent],
348348
)
349349

350350

351-
class AsyncGenerationsResource(AsyncAPIResource):
351+
class AsyncImagesResource(AsyncAPIResource):
352352
@cached_property
353-
def with_raw_response(self) -> AsyncGenerationsResourceWithRawResponse:
353+
def with_raw_response(self) -> AsyncImagesResourceWithRawResponse:
354354
"""
355355
This property can be used as a prefix for any HTTP method call to return
356356
the raw response object instead of the parsed content.
357357
358358
For more information, see https://www.github.com/digitalocean/gradient-python#accessing-raw-response-data-eg-headers
359359
"""
360-
return AsyncGenerationsResourceWithRawResponse(self)
360+
return AsyncImagesResourceWithRawResponse(self)
361361

362362
@cached_property
363-
def with_streaming_response(self) -> AsyncGenerationsResourceWithStreamingResponse:
363+
def with_streaming_response(self) -> AsyncImagesResourceWithStreamingResponse:
364364
"""
365365
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
366366
367367
For more information, see https://www.github.com/digitalocean/gradient-python#with_streaming_response
368368
"""
369-
return AsyncGenerationsResourceWithStreamingResponse(self)
369+
return AsyncImagesResourceWithStreamingResponse(self)
370370

371371
@overload
372-
async def create(
372+
async def generate(
373373
self,
374374
*,
375375
prompt: str,
@@ -390,7 +390,7 @@ async def create(
390390
extra_query: Query | None = None,
391391
extra_body: Body | None = None,
392392
timeout: float | httpx.Timeout | None | NotGiven = not_given,
393-
) -> GenerationCreateResponse:
393+
) -> ImageGenerateResponse:
394394
"""
395395
Creates a high-quality image from a text prompt using GPT-IMAGE-1, the latest
396396
image generation model with automatic prompt optimization and enhanced visual
@@ -448,7 +448,7 @@ async def create(
448448
...
449449

450450
@overload
451-
async def create(
451+
async def generate(
452452
self,
453453
*,
454454
prompt: str,
@@ -527,7 +527,7 @@ async def create(
527527
...
528528

529529
@overload
530-
async def create(
530+
async def generate(
531531
self,
532532
*,
533533
prompt: str,
@@ -548,7 +548,7 @@ async def create(
548548
extra_query: Query | None = None,
549549
extra_body: Body | None = None,
550550
timeout: float | httpx.Timeout | None | NotGiven = not_given,
551-
) -> GenerationCreateResponse | AsyncStream[ImageGenStreamEvent]:
551+
) -> ImageGenerateResponse | AsyncStream[ImageGenStreamEvent]:
552552
"""
553553
Creates a high-quality image from a text prompt using GPT-IMAGE-1, the latest
554554
image generation model with automatic prompt optimization and enhanced visual
@@ -606,7 +606,7 @@ async def create(
606606
...
607607

608608
@required_args(["prompt"], ["prompt", "stream"])
609-
async def create(
609+
async def generate(
610610
self,
611611
*,
612612
prompt: str,
@@ -627,7 +627,7 @@ async def create(
627627
extra_query: Query | None = None,
628628
extra_body: Body | None = None,
629629
timeout: float | httpx.Timeout | None | NotGiven = not_given,
630-
) -> GenerationCreateResponse | AsyncStream[ImageGenStreamEvent]:
630+
) -> ImageGenerateResponse | AsyncStream[ImageGenStreamEvent]:
631631
if not self._client.model_access_key:
632632
raise TypeError(
633633
"Could not resolve authentication method. Expected model_access_key to be set for chat completions."
@@ -637,7 +637,6 @@ async def create(
637637
"Authorization": f"Bearer {self._client.model_access_key}",
638638
**headers,
639639
}
640-
641640
return await self._post(
642641
"/images/generations"
643642
if self._client._base_url_overridden
@@ -657,50 +656,50 @@ async def create(
657656
"stream": stream,
658657
"user": user,
659658
},
660-
generation_create_params.GenerationCreateParamsStreaming
659+
image_generate_params.ImageGenerateParamsStreaming
661660
if stream
662-
else generation_create_params.GenerationCreateParamsNonStreaming,
661+
else image_generate_params.ImageGenerateParamsNonStreaming,
663662
),
664663
options=make_request_options(
665664
extra_headers=headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
666665
),
667-
cast_to=GenerationCreateResponse,
666+
cast_to=ImageGenerateResponse,
668667
stream=stream or False,
669668
stream_cls=AsyncStream[ImageGenStreamEvent],
670669
)
671670

672671

673-
class GenerationsResourceWithRawResponse:
674-
def __init__(self, generations: GenerationsResource) -> None:
675-
self._generations = generations
672+
class ImagesResourceWithRawResponse:
673+
def __init__(self, images: ImagesResource) -> None:
674+
self._images = images
676675

677-
self.create = to_raw_response_wrapper(
678-
generations.create,
676+
self.generate = to_raw_response_wrapper(
677+
images.generate,
679678
)
680679

681680

682-
class AsyncGenerationsResourceWithRawResponse:
683-
def __init__(self, generations: AsyncGenerationsResource) -> None:
684-
self._generations = generations
681+
class AsyncImagesResourceWithRawResponse:
682+
def __init__(self, images: AsyncImagesResource) -> None:
683+
self._images = images
685684

686-
self.create = async_to_raw_response_wrapper(
687-
generations.create,
685+
self.generate = async_to_raw_response_wrapper(
686+
images.generate,
688687
)
689688

690689

691-
class GenerationsResourceWithStreamingResponse:
692-
def __init__(self, generations: GenerationsResource) -> None:
693-
self._generations = generations
690+
class ImagesResourceWithStreamingResponse:
691+
def __init__(self, images: ImagesResource) -> None:
692+
self._images = images
694693

695-
self.create = to_streamed_response_wrapper(
696-
generations.create,
694+
self.generate = to_streamed_response_wrapper(
695+
images.generate,
697696
)
698697

699698

700-
class AsyncGenerationsResourceWithStreamingResponse:
701-
def __init__(self, generations: AsyncGenerationsResource) -> None:
702-
self._generations = generations
699+
class AsyncImagesResourceWithStreamingResponse:
700+
def __init__(self, images: AsyncImagesResource) -> None:
701+
self._images = images
703702

704-
self.create = async_to_streamed_response_wrapper(
705-
generations.create,
703+
self.generate = async_to_streamed_response_wrapper(
704+
images.generate,
706705
)

0 commit comments

Comments
 (0)