Skip to content

Commit 1c5a2f3

Browse files
chore: update OpenAPI spec and rebuild SDKs
1 parent 56480c7 commit 1c5a2f3

File tree

6 files changed

+132
-6
lines changed

6 files changed

+132
-6
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 36
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/replicate%2Freplicate-client-729e21274ba5899bc422e10f9bc19fea7279c9166216480fefa3f3e73be5f3b4.yml
3-
openapi_spec_hash: bc7c6df73c0563285573965ab248c01b
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/replicate%2Freplicate-client-7a537f433b0b71a42a3d53ce6182cc06790157bbb379461eed93cdb68659bc92.yml
3+
openapi_spec_hash: 5c7633dce3ece58e21f74d826946914c
44
config_hash: 407acf62c906ee301314f2d23cdb58b1

api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ from replicate.types import (
9090
Methods:
9191

9292
- <code title="post /models">replicate.models.<a href="./src/replicate/resources/models/models.py">create</a>(\*\*<a href="src/replicate/types/model_create_params.py">params</a>) -> <a href="./src/replicate/types/model_create_response.py">ModelCreateResponse</a></code>
93-
- <code title="get /models">replicate.models.<a href="./src/replicate/resources/models/models.py">list</a>() -> <a href="./src/replicate/types/model_list_response.py">SyncCursorURLPage[ModelListResponse]</a></code>
93+
- <code title="get /models">replicate.models.<a href="./src/replicate/resources/models/models.py">list</a>(\*\*<a href="src/replicate/types/model_list_params.py">params</a>) -> <a href="./src/replicate/types/model_list_response.py">SyncCursorURLPage[ModelListResponse]</a></code>
9494
- <code title="delete /models/{model_owner}/{model_name}">replicate.models.<a href="./src/replicate/resources/models/models.py">delete</a>(\*, model_owner, model_name) -> None</code>
9595
- <code title="get /models/{model_owner}/{model_name}">replicate.models.<a href="./src/replicate/resources/models/models.py">get</a>(\*, model_owner, model_name) -> <a href="./src/replicate/types/model_get_response.py">ModelGetResponse</a></code>
9696
- <code title="query /models">replicate.models.<a href="./src/replicate/resources/models/models.py">search</a>(\*\*<a href="src/replicate/types/model_search_params.py">params</a>) -> <a href="./src/replicate/types/model_search_response.py">SyncCursorURLPage[ModelSearchResponse]</a></code>

src/replicate/resources/models/models.py

Lines changed: 95 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
ReadmeResourceWithStreamingResponse,
1515
AsyncReadmeResourceWithStreamingResponse,
1616
)
17-
from ...types import model_create_params, model_search_params
17+
from ...types import model_list_params, model_create_params, model_search_params
1818
from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
1919
from ..._utils import maybe_transform, async_maybe_transform
2020
from .examples import (
@@ -209,6 +209,8 @@ def create(
209209
def list(
210210
self,
211211
*,
212+
sort_by: Literal["model_created_at", "latest_version_created_at"] | Omit = omit,
213+
sort_direction: Literal["asc", "desc"] | Omit = omit,
212214
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
213215
# The extra values given here take precedence over values defined on the client or passed to this method.
214216
extra_headers: Headers | None = None,
@@ -231,12 +233,56 @@ def list(
231233
232234
See the [`models.get`](#models.get) docs for more details about the model
233235
object.
236+
237+
## Sorting
238+
239+
You can sort the results using the `sort_by` and `sort_direction` query
240+
parameters.
241+
242+
For example, to get the most recently created models:
243+
244+
```console
245+
curl -s \\
246+
-H "Authorization: Bearer $REPLICATE_API_TOKEN" \\
247+
"https://api.replicate.com/v1/models?sort_by=model_created_at&sort_direction=desc"
248+
```
249+
250+
Available sorting options:
251+
252+
- `model_created_at`: Sort by when the model was first created
253+
- `latest_version_created_at`: Sort by when the model's latest version was
254+
created (default)
255+
256+
Sort direction can be `asc` (ascending) or `desc` (descending, default).
257+
258+
Args:
259+
sort_by: Field to sort models by. Defaults to `latest_version_created_at`.
260+
261+
sort_direction: Sort direction. Defaults to `desc` (descending, newest first).
262+
263+
extra_headers: Send extra headers
264+
265+
extra_query: Add additional query parameters to the request
266+
267+
extra_body: Add additional JSON properties to the request
268+
269+
timeout: Override the client-level default timeout for this request, in seconds
234270
"""
235271
return self._get_api_list(
236272
"/models",
237273
page=SyncCursorURLPage[ModelListResponse],
238274
options=make_request_options(
239-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
275+
extra_headers=extra_headers,
276+
extra_query=extra_query,
277+
extra_body=extra_body,
278+
timeout=timeout,
279+
query=maybe_transform(
280+
{
281+
"sort_by": sort_by,
282+
"sort_direction": sort_direction,
283+
},
284+
model_list_params.ModelListParams,
285+
),
240286
),
241287
model=ModelListResponse,
242288
)
@@ -608,6 +654,8 @@ async def create(
608654
def list(
609655
self,
610656
*,
657+
sort_by: Literal["model_created_at", "latest_version_created_at"] | Omit = omit,
658+
sort_direction: Literal["asc", "desc"] | Omit = omit,
611659
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
612660
# The extra values given here take precedence over values defined on the client or passed to this method.
613661
extra_headers: Headers | None = None,
@@ -630,12 +678,56 @@ def list(
630678
631679
See the [`models.get`](#models.get) docs for more details about the model
632680
object.
681+
682+
## Sorting
683+
684+
You can sort the results using the `sort_by` and `sort_direction` query
685+
parameters.
686+
687+
For example, to get the most recently created models:
688+
689+
```console
690+
curl -s \\
691+
-H "Authorization: Bearer $REPLICATE_API_TOKEN" \\
692+
"https://api.replicate.com/v1/models?sort_by=model_created_at&sort_direction=desc"
693+
```
694+
695+
Available sorting options:
696+
697+
- `model_created_at`: Sort by when the model was first created
698+
- `latest_version_created_at`: Sort by when the model's latest version was
699+
created (default)
700+
701+
Sort direction can be `asc` (ascending) or `desc` (descending, default).
702+
703+
Args:
704+
sort_by: Field to sort models by. Defaults to `latest_version_created_at`.
705+
706+
sort_direction: Sort direction. Defaults to `desc` (descending, newest first).
707+
708+
extra_headers: Send extra headers
709+
710+
extra_query: Add additional query parameters to the request
711+
712+
extra_body: Add additional JSON properties to the request
713+
714+
timeout: Override the client-level default timeout for this request, in seconds
633715
"""
634716
return self._get_api_list(
635717
"/models",
636718
page=AsyncCursorURLPage[ModelListResponse],
637719
options=make_request_options(
638-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
720+
extra_headers=extra_headers,
721+
extra_query=extra_query,
722+
extra_body=extra_body,
723+
timeout=timeout,
724+
query=maybe_transform(
725+
{
726+
"sort_by": sort_by,
727+
"sort_direction": sort_direction,
728+
},
729+
model_list_params.ModelListParams,
730+
),
639731
),
640732
model=ModelListResponse,
641733
)

src/replicate/types/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from .prediction import Prediction as Prediction
66
from .search_response import SearchResponse as SearchResponse
77
from .file_get_response import FileGetResponse as FileGetResponse
8+
from .model_list_params import ModelListParams as ModelListParams
89
from .file_create_params import FileCreateParams as FileCreateParams
910
from .file_list_response import FileListResponse as FileListResponse
1011
from .model_get_response import ModelGetResponse as ModelGetResponse
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import Literal, TypedDict
6+
7+
__all__ = ["ModelListParams"]
8+
9+
10+
class ModelListParams(TypedDict, total=False):
11+
sort_by: Literal["model_created_at", "latest_version_created_at"]
12+
"""Field to sort models by. Defaults to `latest_version_created_at`."""
13+
14+
sort_direction: Literal["asc", "desc"]
15+
"""Sort direction. Defaults to `desc` (descending, newest first)."""

tests/api_resources/test_models.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ def test_method_list(self, client: Replicate) -> None:
8888
model = client.models.list()
8989
assert_matches_type(SyncCursorURLPage[ModelListResponse], model, path=["response"])
9090

91+
@pytest.mark.skip(reason="Prism tests are disabled")
92+
@parametrize
93+
def test_method_list_with_all_params(self, client: Replicate) -> None:
94+
model = client.models.list(
95+
sort_by="model_created_at",
96+
sort_direction="asc",
97+
)
98+
assert_matches_type(SyncCursorURLPage[ModelListResponse], model, path=["response"])
99+
91100
@pytest.mark.skip(reason="Prism tests are disabled")
92101
@parametrize
93102
def test_raw_response_list(self, client: Replicate) -> None:
@@ -319,6 +328,15 @@ async def test_method_list(self, async_client: AsyncReplicate) -> None:
319328
model = await async_client.models.list()
320329
assert_matches_type(AsyncCursorURLPage[ModelListResponse], model, path=["response"])
321330

331+
@pytest.mark.skip(reason="Prism tests are disabled")
332+
@parametrize
333+
async def test_method_list_with_all_params(self, async_client: AsyncReplicate) -> None:
334+
model = await async_client.models.list(
335+
sort_by="model_created_at",
336+
sort_direction="asc",
337+
)
338+
assert_matches_type(AsyncCursorURLPage[ModelListResponse], model, path=["response"])
339+
322340
@pytest.mark.skip(reason="Prism tests are disabled")
323341
@parametrize
324342
async def test_raw_response_list(self, async_client: AsyncReplicate) -> None:

0 commit comments

Comments
 (0)