Commit e01af1c2
Changed files (5)
src
openai
resources
fine_tuning
checkpoints
types
fine_tuning
checkpoints
tests
api_resources
fine_tuning
checkpoints
src/openai/resources/fine_tuning/checkpoints/permissions.py
@@ -9,11 +9,11 @@ import httpx
from .... import _legacy_response
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
-from ...._utils import maybe_transform, async_maybe_transform
+from ...._utils import maybe_transform
from ...._compat import cached_property
from ...._resource import SyncAPIResource, AsyncAPIResource
from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
-from ....pagination import SyncPage, AsyncPage
+from ....pagination import SyncPage, AsyncPage, SyncCursorPage, AsyncCursorPage
from ...._base_client import AsyncPaginator, make_request_options
from ....types.fine_tuning.checkpoints import permission_create_params, permission_retrieve_params
from ....types.fine_tuning.checkpoints.permission_create_response import PermissionCreateResponse
@@ -101,7 +101,7 @@ class Permissions(SyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> PermissionRetrieveResponse:
+ ) -> SyncCursorPage[PermissionRetrieveResponse]:
"""
**NOTE:** This endpoint requires an [admin API key](../admin-api-keys).
@@ -129,8 +129,9 @@ class Permissions(SyncAPIResource):
raise ValueError(
f"Expected a non-empty value for `fine_tuned_model_checkpoint` but received {fine_tuned_model_checkpoint!r}"
)
- return self._get(
+ return self._get_api_list(
f"/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions",
+ page=SyncCursorPage[PermissionRetrieveResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -146,7 +147,7 @@ class Permissions(SyncAPIResource):
permission_retrieve_params.PermissionRetrieveParams,
),
),
- cast_to=PermissionRetrieveResponse,
+ model=PermissionRetrieveResponse,
)
def delete(
@@ -255,7 +256,7 @@ class AsyncPermissions(AsyncAPIResource):
method="post",
)
- async def retrieve(
+ def retrieve(
self,
fine_tuned_model_checkpoint: str,
*,
@@ -269,7 +270,7 @@ class AsyncPermissions(AsyncAPIResource):
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> PermissionRetrieveResponse:
+ ) -> AsyncPaginator[PermissionRetrieveResponse, AsyncCursorPage[PermissionRetrieveResponse]]:
"""
**NOTE:** This endpoint requires an [admin API key](../admin-api-keys).
@@ -297,14 +298,15 @@ class AsyncPermissions(AsyncAPIResource):
raise ValueError(
f"Expected a non-empty value for `fine_tuned_model_checkpoint` but received {fine_tuned_model_checkpoint!r}"
)
- return await self._get(
+ return self._get_api_list(
f"/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions",
+ page=AsyncCursorPage[PermissionRetrieveResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
- query=await async_maybe_transform(
+ query=maybe_transform(
{
"after": after,
"limit": limit,
@@ -314,7 +316,7 @@ class AsyncPermissions(AsyncAPIResource):
permission_retrieve_params.PermissionRetrieveParams,
),
),
- cast_to=PermissionRetrieveResponse,
+ model=PermissionRetrieveResponse,
)
async def delete(
src/openai/types/fine_tuning/checkpoints/permission_retrieve_response.py
@@ -1,14 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-from typing import List, Optional
from typing_extensions import Literal
from ...._models import BaseModel
-__all__ = ["PermissionRetrieveResponse", "Data"]
+__all__ = ["PermissionRetrieveResponse"]
-class Data(BaseModel):
+class PermissionRetrieveResponse(BaseModel):
id: str
"""The permission identifier, which can be referenced in the API endpoints."""
@@ -20,15 +19,3 @@ class Data(BaseModel):
project_id: str
"""The project identifier that the permission is for."""
-
-
-class PermissionRetrieveResponse(BaseModel):
- data: List[Data]
-
- has_more: bool
-
- object: Literal["list"]
-
- first_id: Optional[str] = None
-
- last_id: Optional[str] = None
tests/api_resources/fine_tuning/checkpoints/test_permissions.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.pagination import SyncPage, AsyncPage
+from openai.pagination import SyncPage, AsyncPage, SyncCursorPage, AsyncCursorPage
from openai.types.fine_tuning.checkpoints import (
PermissionCreateResponse,
PermissionDeleteResponse,
@@ -71,7 +71,7 @@ class TestPermissions:
permission = client.fine_tuning.checkpoints.permissions.retrieve(
fine_tuned_model_checkpoint="ft-AF1WoRqd3aJAHsqc9NY7iL8F",
)
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(SyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
def test_method_retrieve_with_all_params(self, client: OpenAI) -> None:
@@ -82,7 +82,7 @@ class TestPermissions:
order="ascending",
project_id="project_id",
)
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(SyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
def test_raw_response_retrieve(self, client: OpenAI) -> None:
@@ -93,7 +93,7 @@ class TestPermissions:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
permission = response.parse()
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(SyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
def test_streaming_response_retrieve(self, client: OpenAI) -> None:
@@ -104,7 +104,7 @@ class TestPermissions:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
permission = response.parse()
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(SyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -220,7 +220,7 @@ class TestAsyncPermissions:
permission = await async_client.fine_tuning.checkpoints.permissions.retrieve(
fine_tuned_model_checkpoint="ft-AF1WoRqd3aJAHsqc9NY7iL8F",
)
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(AsyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
async def test_method_retrieve_with_all_params(self, async_client: AsyncOpenAI) -> None:
@@ -231,7 +231,7 @@ class TestAsyncPermissions:
order="ascending",
project_id="project_id",
)
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(AsyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
async def test_raw_response_retrieve(self, async_client: AsyncOpenAI) -> None:
@@ -242,7 +242,7 @@ class TestAsyncPermissions:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
permission = response.parse()
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(AsyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
@parametrize
async def test_streaming_response_retrieve(self, async_client: AsyncOpenAI) -> None:
@@ -253,7 +253,7 @@ class TestAsyncPermissions:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
permission = await response.parse()
- assert_matches_type(PermissionRetrieveResponse, permission, path=["response"])
+ assert_matches_type(AsyncCursorPage[PermissionRetrieveResponse], permission, path=["response"])
assert cast(Any, response.is_closed) is True
.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 111
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-9e41d2d5471d2c28bff0d616f4476f5b0e6c541ef4cb51bdaaef5fdf5e13c8b2.yml
openapi_spec_hash: 86f765e18d00e32cf2ce9db7ab84d946
-config_hash: fd2af1d5eff0995bb7dc02ac9a34851d
+config_hash: dc5515e257676a27cb1ace1784aa92b3
api.md
@@ -293,7 +293,7 @@ from openai.types.fine_tuning.checkpoints import (
Methods:
- <code title="post /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions">client.fine_tuning.checkpoints.permissions.<a href="./src/openai/resources/fine_tuning/checkpoints/permissions.py">create</a>(fine_tuned_model_checkpoint, \*\*<a href="src/openai/types/fine_tuning/checkpoints/permission_create_params.py">params</a>) -> <a href="./src/openai/types/fine_tuning/checkpoints/permission_create_response.py">SyncPage[PermissionCreateResponse]</a></code>
-- <code title="get /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions">client.fine_tuning.checkpoints.permissions.<a href="./src/openai/resources/fine_tuning/checkpoints/permissions.py">retrieve</a>(fine_tuned_model_checkpoint, \*\*<a href="src/openai/types/fine_tuning/checkpoints/permission_retrieve_params.py">params</a>) -> <a href="./src/openai/types/fine_tuning/checkpoints/permission_retrieve_response.py">PermissionRetrieveResponse</a></code>
+- <code title="get /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions">client.fine_tuning.checkpoints.permissions.<a href="./src/openai/resources/fine_tuning/checkpoints/permissions.py">retrieve</a>(fine_tuned_model_checkpoint, \*\*<a href="src/openai/types/fine_tuning/checkpoints/permission_retrieve_params.py">params</a>) -> <a href="./src/openai/types/fine_tuning/checkpoints/permission_retrieve_response.py">SyncCursorPage[PermissionRetrieveResponse]</a></code>
- <code title="delete /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}">client.fine_tuning.checkpoints.permissions.<a href="./src/openai/resources/fine_tuning/checkpoints/permissions.py">delete</a>(permission_id, \*, fine_tuned_model_checkpoint) -> <a href="./src/openai/types/fine_tuning/checkpoints/permission_delete_response.py">PermissionDeleteResponse</a></code>
## Alpha