Skip to content

Commit 71058dd

Browse files
release: 1.81.0 (#2368)
* feat(api): add container endpoint * release: 1.81.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 4a81b4e commit 71058dd

File tree

85 files changed

+2894
-11
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2894
-11
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-
".": "1.80.0"
2+
".": "1.81.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 101
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-a5651cb97f86d1e2531af6aef8c5230f1ea350560fbae790ca2e481b30a6c217.yml
3-
openapi_spec_hash: 66a5104fd3bb43383cf919225df7a6fd
4-
config_hash: bb657c3fed232a56930035de3aaed936
1+
configured_endpoints: 111
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-6af14840a810139bf407013167ce1c8fb21b6ef8eb0cc3db58b51af7d52c4b5a.yml
3+
openapi_spec_hash: 3241bde6b273cfec0035e522bd07985d
4+
config_hash: 7367b68a4e7db36885c1a886f57b17f6

CHANGELOG.md

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

3+
## 1.81.0 (2025-05-21)
4+
5+
Full Changelog: [v1.80.0...v1.81.0](https://github.com/openai/openai-python/compare/v1.80.0...v1.81.0)
6+
7+
### Features
8+
9+
* **api:** add container endpoint ([054a210](https://github.com/openai/openai-python/commit/054a210289d7e0db22d2d2a61bbe4d4d9cc0cb47))
10+
311
## 1.80.0 (2025-05-21)
412

513
Full Changelog: [v1.79.0...v1.80.0](https://github.com/openai/openai-python/compare/v1.79.0...v1.80.0)

api.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,7 @@ Methods:
785785
- <code title="post /responses">client.responses.<a href="./src/openai/resources/responses/responses.py">create</a>(\*\*<a href="src/openai/types/responses/response_create_params.py">params</a>) -> <a href="./src/openai/types/responses/response.py">Response</a></code>
786786
- <code title="get /responses/{response_id}">client.responses.<a href="./src/openai/resources/responses/responses.py">retrieve</a>(response_id, \*\*<a href="src/openai/types/responses/response_retrieve_params.py">params</a>) -> <a href="./src/openai/types/responses/response.py">Response</a></code>
787787
- <code title="delete /responses/{response_id}">client.responses.<a href="./src/openai/resources/responses/responses.py">delete</a>(response_id) -> None</code>
788+
- <code title="post /responses/{response_id}/cancel">client.responses.<a href="./src/openai/resources/responses/responses.py">cancel</a>(response_id) -> None</code>
788789

789790
## InputItems
790791

@@ -859,3 +860,39 @@ Methods:
859860

860861
- <code title="get /evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}">client.evals.runs.output_items.<a href="./src/openai/resources/evals/runs/output_items.py">retrieve</a>(output_item_id, \*, eval_id, run_id) -> <a href="./src/openai/types/evals/runs/output_item_retrieve_response.py">OutputItemRetrieveResponse</a></code>
861862
- <code title="get /evals/{eval_id}/runs/{run_id}/output_items">client.evals.runs.output_items.<a href="./src/openai/resources/evals/runs/output_items.py">list</a>(run_id, \*, eval_id, \*\*<a href="src/openai/types/evals/runs/output_item_list_params.py">params</a>) -> <a href="./src/openai/types/evals/runs/output_item_list_response.py">SyncCursorPage[OutputItemListResponse]</a></code>
863+
864+
# Containers
865+
866+
Types:
867+
868+
```python
869+
from openai.types import ContainerCreateResponse, ContainerRetrieveResponse, ContainerListResponse
870+
```
871+
872+
Methods:
873+
874+
- <code title="post /containers">client.containers.<a href="./src/openai/resources/containers/containers.py">create</a>(\*\*<a href="src/openai/types/container_create_params.py">params</a>) -> <a href="./src/openai/types/container_create_response.py">ContainerCreateResponse</a></code>
875+
- <code title="get /containers/{container_id}">client.containers.<a href="./src/openai/resources/containers/containers.py">retrieve</a>(container_id) -> <a href="./src/openai/types/container_retrieve_response.py">ContainerRetrieveResponse</a></code>
876+
- <code title="get /containers">client.containers.<a href="./src/openai/resources/containers/containers.py">list</a>(\*\*<a href="src/openai/types/container_list_params.py">params</a>) -> <a href="./src/openai/types/container_list_response.py">SyncCursorPage[ContainerListResponse]</a></code>
877+
- <code title="delete /containers/{container_id}">client.containers.<a href="./src/openai/resources/containers/containers.py">delete</a>(container_id) -> None</code>
878+
879+
## Files
880+
881+
Types:
882+
883+
```python
884+
from openai.types.containers import FileCreateResponse, FileRetrieveResponse, FileListResponse
885+
```
886+
887+
Methods:
888+
889+
- <code title="post /containers/{container_id}/files">client.containers.files.<a href="./src/openai/resources/containers/files/files.py">create</a>(container_id, \*\*<a href="src/openai/types/containers/file_create_params.py">params</a>) -> <a href="./src/openai/types/containers/file_create_response.py">FileCreateResponse</a></code>
890+
- <code title="get /containers/{container_id}/files/{file_id}">client.containers.files.<a href="./src/openai/resources/containers/files/files.py">retrieve</a>(file_id, \*, container_id) -> <a href="./src/openai/types/containers/file_retrieve_response.py">FileRetrieveResponse</a></code>
891+
- <code title="get /containers/{container_id}/files">client.containers.files.<a href="./src/openai/resources/containers/files/files.py">list</a>(container_id, \*\*<a href="src/openai/types/containers/file_list_params.py">params</a>) -> <a href="./src/openai/types/containers/file_list_response.py">SyncCursorPage[FileListResponse]</a></code>
892+
- <code title="delete /containers/{container_id}/files/{file_id}">client.containers.files.<a href="./src/openai/resources/containers/files/files.py">delete</a>(file_id, \*, container_id) -> None</code>
893+
894+
### Content
895+
896+
Methods:
897+
898+
- <code title="get /containers/{container_id}/files/{file_id}/content">client.containers.files.content.<a href="./src/openai/resources/containers/files/content.py">retrieve</a>(file_id, \*, container_id) -> None</code>

pyproject.toml

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

src/openai/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ def _reset_client() -> None: # type: ignore[reportUnusedFunction]
363363
batches as batches,
364364
uploads as uploads,
365365
responses as responses,
366+
containers as containers,
366367
embeddings as embeddings,
367368
completions as completions,
368369
fine_tuning as fine_tuning,

src/openai/_client.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
batches,
4747
uploads,
4848
responses,
49+
containers,
4950
embeddings,
5051
completions,
5152
fine_tuning,
@@ -65,6 +66,7 @@
6566
from .resources.moderations import Moderations, AsyncModerations
6667
from .resources.uploads.uploads import Uploads, AsyncUploads
6768
from .resources.responses.responses import Responses, AsyncResponses
69+
from .resources.containers.containers import Containers, AsyncContainers
6870
from .resources.fine_tuning.fine_tuning import FineTuning, AsyncFineTuning
6971
from .resources.vector_stores.vector_stores import VectorStores, AsyncVectorStores
7072

@@ -244,6 +246,12 @@ def evals(self) -> Evals:
244246

245247
return Evals(self)
246248

249+
@cached_property
250+
def containers(self) -> Containers:
251+
from .resources.containers import Containers
252+
253+
return Containers(self)
254+
247255
@cached_property
248256
def with_raw_response(self) -> OpenAIWithRawResponse:
249257
return OpenAIWithRawResponse(self)
@@ -539,6 +547,12 @@ def evals(self) -> AsyncEvals:
539547

540548
return AsyncEvals(self)
541549

550+
@cached_property
551+
def containers(self) -> AsyncContainers:
552+
from .resources.containers import AsyncContainers
553+
554+
return AsyncContainers(self)
555+
542556
@cached_property
543557
def with_raw_response(self) -> AsyncOpenAIWithRawResponse:
544558
return AsyncOpenAIWithRawResponse(self)
@@ -757,6 +771,12 @@ def evals(self) -> evals.EvalsWithRawResponse:
757771

758772
return EvalsWithRawResponse(self._client.evals)
759773

774+
@cached_property
775+
def containers(self) -> containers.ContainersWithRawResponse:
776+
from .resources.containers import ContainersWithRawResponse
777+
778+
return ContainersWithRawResponse(self._client.containers)
779+
760780

761781
class AsyncOpenAIWithRawResponse:
762782
_client: AsyncOpenAI
@@ -854,6 +874,12 @@ def evals(self) -> evals.AsyncEvalsWithRawResponse:
854874

855875
return AsyncEvalsWithRawResponse(self._client.evals)
856876

877+
@cached_property
878+
def containers(self) -> containers.AsyncContainersWithRawResponse:
879+
from .resources.containers import AsyncContainersWithRawResponse
880+
881+
return AsyncContainersWithRawResponse(self._client.containers)
882+
857883

858884
class OpenAIWithStreamedResponse:
859885
_client: OpenAI
@@ -951,6 +977,12 @@ def evals(self) -> evals.EvalsWithStreamingResponse:
951977

952978
return EvalsWithStreamingResponse(self._client.evals)
953979

980+
@cached_property
981+
def containers(self) -> containers.ContainersWithStreamingResponse:
982+
from .resources.containers import ContainersWithStreamingResponse
983+
984+
return ContainersWithStreamingResponse(self._client.containers)
985+
954986

955987
class AsyncOpenAIWithStreamedResponse:
956988
_client: AsyncOpenAI
@@ -1048,6 +1080,12 @@ def evals(self) -> evals.AsyncEvalsWithStreamingResponse:
10481080

10491081
return AsyncEvalsWithStreamingResponse(self._client.evals)
10501082

1083+
@cached_property
1084+
def containers(self) -> containers.AsyncContainersWithStreamingResponse:
1085+
from .resources.containers import AsyncContainersWithStreamingResponse
1086+
1087+
return AsyncContainersWithStreamingResponse(self._client.containers)
1088+
10511089

10521090
Client = OpenAI
10531091

src/openai/_module_client.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from .resources.moderations import Moderations
2020
from .resources.uploads.uploads import Uploads
2121
from .resources.responses.responses import Responses
22+
from .resources.containers.containers import Containers
2223
from .resources.fine_tuning.fine_tuning import FineTuning
2324
from .resources.vector_stores.vector_stores import VectorStores
2425

@@ -92,6 +93,12 @@ def __load__(self) -> Embeddings:
9293
return _load_client().embeddings
9394

9495

96+
class ContainersProxy(LazyProxy["Containers"]):
97+
@override
98+
def __load__(self) -> Containers:
99+
return _load_client().containers
100+
101+
95102
class CompletionsProxy(LazyProxy["Completions"]):
96103
@override
97104
def __load__(self) -> Completions:
@@ -127,6 +134,7 @@ def __load__(self) -> VectorStores:
127134
uploads: Uploads = UploadsProxy().__as_proxied__()
128135
responses: Responses = ResponsesProxy().__as_proxied__()
129136
embeddings: Embeddings = EmbeddingsProxy().__as_proxied__()
137+
containers: Containers = ContainersProxy().__as_proxied__()
130138
completions: Completions = CompletionsProxy().__as_proxied__()
131139
moderations: Moderations = ModerationsProxy().__as_proxied__()
132140
fine_tuning: FineTuning = FineTuningProxy().__as_proxied__()

src/openai/_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__ = "openai"
4-
__version__ = "1.80.0" # x-release-please-version
4+
__version__ = "1.81.0" # x-release-please-version

src/openai/lib/streaming/responses/_responses.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ def handle_event(self, event: RawResponseStreamEvent) -> List[ResponseStreamEven
251251
delta=event.delta,
252252
item_id=event.item_id,
253253
output_index=event.output_index,
254+
sequence_number=event.sequence_number,
254255
type="response.output_text.delta",
255256
snapshot=content.text,
256257
)
@@ -268,6 +269,7 @@ def handle_event(self, event: RawResponseStreamEvent) -> List[ResponseStreamEven
268269
content_index=event.content_index,
269270
item_id=event.item_id,
270271
output_index=event.output_index,
272+
sequence_number=event.sequence_number,
271273
type="response.output_text.done",
272274
text=event.text,
273275
parsed=parse_text(event.text, text_format=self._text_format),
@@ -283,6 +285,7 @@ def handle_event(self, event: RawResponseStreamEvent) -> List[ResponseStreamEven
283285
delta=event.delta,
284286
item_id=event.item_id,
285287
output_index=event.output_index,
288+
sequence_number=event.sequence_number,
286289
type="response.function_call_arguments.delta",
287290
snapshot=output.arguments,
288291
)
@@ -295,6 +298,7 @@ def handle_event(self, event: RawResponseStreamEvent) -> List[ResponseStreamEven
295298
events.append(
296299
build(
297300
ResponseCompletedEvent,
301+
sequence_number=event.sequence_number,
298302
type="response.completed",
299303
response=response,
300304
)

src/openai/resources/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,14 @@
7272
UploadsWithStreamingResponse,
7373
AsyncUploadsWithStreamingResponse,
7474
)
75+
from .containers import (
76+
Containers,
77+
AsyncContainers,
78+
ContainersWithRawResponse,
79+
AsyncContainersWithRawResponse,
80+
ContainersWithStreamingResponse,
81+
AsyncContainersWithStreamingResponse,
82+
)
7583
from .embeddings import (
7684
Embeddings,
7785
AsyncEmbeddings,
@@ -198,4 +206,10 @@
198206
"AsyncEvalsWithRawResponse",
199207
"EvalsWithStreamingResponse",
200208
"AsyncEvalsWithStreamingResponse",
209+
"Containers",
210+
"AsyncContainers",
211+
"ContainersWithRawResponse",
212+
"AsyncContainersWithRawResponse",
213+
"ContainersWithStreamingResponse",
214+
"AsyncContainersWithStreamingResponse",
201215
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from .files import (
4+
Files,
5+
AsyncFiles,
6+
FilesWithRawResponse,
7+
AsyncFilesWithRawResponse,
8+
FilesWithStreamingResponse,
9+
AsyncFilesWithStreamingResponse,
10+
)
11+
from .containers import (
12+
Containers,
13+
AsyncContainers,
14+
ContainersWithRawResponse,
15+
AsyncContainersWithRawResponse,
16+
ContainersWithStreamingResponse,
17+
AsyncContainersWithStreamingResponse,
18+
)
19+
20+
__all__ = [
21+
"Files",
22+
"AsyncFiles",
23+
"FilesWithRawResponse",
24+
"AsyncFilesWithRawResponse",
25+
"FilesWithStreamingResponse",
26+
"AsyncFilesWithStreamingResponse",
27+
"Containers",
28+
"AsyncContainers",
29+
"ContainersWithRawResponse",
30+
"AsyncContainersWithRawResponse",
31+
"ContainersWithStreamingResponse",
32+
"AsyncContainersWithStreamingResponse",
33+
]

0 commit comments

Comments
 (0)