Skip to content

Commit 85d1942

Browse files
committed
Merge remote-tracking branch 'origin/next' into sam/run-helper
2 parents 4a25c43 + 7dc2438 commit 85d1942

Some content is hidden

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

52 files changed

+2001
-1561
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
name: CI
22
on:
33
push:
4-
branches:
5-
- main
6-
pull_request:
7-
branches:
8-
- main
9-
- next
4+
branches-ignore:
5+
- 'generated'
6+
- 'codegen/**'
7+
- 'integrated/**'
8+
- 'stl-preview-head/**'
9+
- 'stl-preview-base/**'
1010

1111
jobs:
1212
lint:
1313
timeout-minutes: 10
1414
name: lint
15-
runs-on: ubuntu-latest
15+
runs-on: ${{ github.repository == 'stainless-sdks/replicate-client-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
1616
steps:
1717
- uses: actions/checkout@v4
1818

@@ -33,7 +33,7 @@ jobs:
3333
test:
3434
timeout-minutes: 10
3535
name: test
36-
runs-on: ubuntu-latest
36+
runs-on: ${{ github.repository == 'stainless-sdks/replicate-client-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
3737
steps:
3838
- uses: actions/checkout@v4
3939

.release-please-manifest.json

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

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 29
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/replicate%2Freplicate-client-2788217b7ad7d61d1a77800bc5ff12a6810f1692d4d770b72fa8f898c6a055ab.yml
3-
openapi_spec_hash: 4423bf747e228484547b441468a9f156
4-
config_hash: 976e20887b4e455f639ee6917de350b8
1+
configured_endpoints: 30
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/replicate%2Freplicate-client-0d7d82bff8a18b03e0cd1cbf8609c3026bb07db851bc6f9166032045a9925eea.yml
3+
openapi_spec_hash: 8ce211dfa6fece24b1413e91ba55210a
4+
config_hash: 2e6a171ce57a4a6a8e8dcd3dd893d8cc

CHANGELOG.md

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

3+
## 0.1.0-alpha.8 (2025-04-30)
4+
5+
Full Changelog: [v0.1.0-alpha.7...v0.1.0-alpha.8](https://github.com/replicate/replicate-python-stainless/compare/v0.1.0-alpha.7...v0.1.0-alpha.8)
6+
7+
### Features
8+
9+
* **api:** api update ([a5aa64a](https://github.com/replicate/replicate-python-stainless/commit/a5aa64a71517fdf74e61e4debe68fba458f2e380))
10+
* **client:** add support for model queries ([6df1fd6](https://github.com/replicate/replicate-python-stainless/commit/6df1fd6b994373a49b602258a8064998c88a0eca))
11+
12+
## 0.1.0-alpha.7 (2025-04-24)
13+
14+
Full Changelog: [v0.1.0-alpha.6...v0.1.0-alpha.7](https://github.com/replicate/replicate-python-stainless/compare/v0.1.0-alpha.6...v0.1.0-alpha.7)
15+
16+
### Features
17+
18+
* enable mcp package publishing ([f116fbb](https://github.com/replicate/replicate-python-stainless/commit/f116fbbb59329b66a998e43c850bcfab05e7398b))
19+
20+
## 0.1.0-alpha.6 (2025-04-24)
21+
22+
Full Changelog: [v0.1.0-alpha.5...v0.1.0-alpha.6](https://github.com/replicate/replicate-python-stainless/compare/v0.1.0-alpha.5...v0.1.0-alpha.6)
23+
24+
### Bug Fixes
25+
26+
* correct mapping for account.get ([e501778](https://github.com/replicate/replicate-python-stainless/commit/e501778a22c481147fbe419803a3f52ac9ba8243))
27+
28+
29+
### Chores
30+
31+
* broadly detect json family of content-type headers ([eeaa507](https://github.com/replicate/replicate-python-stainless/commit/eeaa5071ed47e31264a268d9445fe8c0b8d059b1))
32+
* **ci:** only use depot for staging repos ([f7ec0b8](https://github.com/replicate/replicate-python-stainless/commit/f7ec0b8e11782aa89eee5f4af962158b665eee13))
33+
* **internal:** codegen related update ([fd43800](https://github.com/replicate/replicate-python-stainless/commit/fd43800c1da9a5c6ff06309a6c4a6a3808decff9))
34+
35+
## 0.1.0-alpha.5 (2025-04-24)
36+
37+
Full Changelog: [v0.1.0-alpha.4...v0.1.0-alpha.5](https://github.com/replicate/replicate-python-stainless/compare/v0.1.0-alpha.4...v0.1.0-alpha.5)
38+
39+
### Features
40+
41+
* add missing resources ([8bbddc7](https://github.com/replicate/replicate-python-stainless/commit/8bbddc7a788f4488311b8ed408d4b020db8e006b))
42+
* enable `openapi.code_samples` ([85810f5](https://github.com/replicate/replicate-python-stainless/commit/85810f5f4c0caf680a90fca80f1bfcd639e76894))
43+
344
## 0.1.0-alpha.4 (2025-04-23)
445

546
Full Changelog: [v0.1.0-alpha.3...v0.1.0-alpha.4](https://github.com/replicate/replicate-python-stainless/compare/v0.1.0-alpha.3...v0.1.0-alpha.4)

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ client = ReplicateClient(
3131
bearer_token=os.environ.get("REPLICATE_API_TOKEN"), # This is the default and can be omitted
3232
)
3333

34-
accounts = client.accounts.list()
35-
print(accounts.type)
34+
account = client.account.get()
35+
print(account.type)
3636
```
3737

3838
While you can provide a `bearer_token` keyword argument,
@@ -55,8 +55,8 @@ client = AsyncReplicateClient(
5555

5656

5757
async def main() -> None:
58-
accounts = await client.accounts.list()
59-
print(accounts.type)
58+
account = await client.account.get()
59+
print(account.type)
6060

6161

6262
asyncio.run(main())
@@ -152,7 +152,7 @@ from replicate import ReplicateClient
152152
client = ReplicateClient()
153153

154154
try:
155-
client.accounts.list()
155+
client.account.get()
156156
except replicate.APIConnectionError as e:
157157
print("The server could not be reached")
158158
print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -195,7 +195,7 @@ client = ReplicateClient(
195195
)
196196

197197
# Or, configure per-request:
198-
client.with_options(max_retries=5).accounts.list()
198+
client.with_options(max_retries=5).account.get()
199199
```
200200

201201
### Timeouts
@@ -218,7 +218,7 @@ client = ReplicateClient(
218218
)
219219

220220
# Override per-request:
221-
client.with_options(timeout=5.0).accounts.list()
221+
client.with_options(timeout=5.0).account.get()
222222
```
223223

224224
On timeout, an `APITimeoutError` is thrown.
@@ -259,10 +259,10 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
259259
from replicate import ReplicateClient
260260

261261
client = ReplicateClient()
262-
response = client.accounts.with_raw_response.list()
262+
response = client.account.with_raw_response.get()
263263
print(response.headers.get('X-My-Header'))
264264

265-
account = response.parse() # get the object that `accounts.list()` would have returned
265+
account = response.parse() # get the object that `account.get()` would have returned
266266
print(account.type)
267267
```
268268

@@ -277,7 +277,7 @@ The above interface eagerly reads the full response body when you make the reque
277277
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
278278

279279
```python
280-
with client.accounts.with_streaming_response.list() as response:
280+
with client.account.with_streaming_response.get() as response:
281281
print(response.headers.get("X-My-Header"))
282282

283283
for line in response.iter_lines():

api.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Methods:
44

55
- <code title="get /collections">client.collections.<a href="./src/replicate/resources/collections.py">list</a>() -> None</code>
6+
- <code title="get /collections/{collection_slug}">client.collections.<a href="./src/replicate/resources/collections.py">get</a>(collection_slug) -> None</code>
67

78
# Deployments
89

@@ -24,7 +25,6 @@ Methods:
2425
- <code title="get /deployments">client.deployments.<a href="./src/replicate/resources/deployments/deployments.py">list</a>() -> <a href="./src/replicate/types/deployment_list_response.py">SyncCursorURLPage[DeploymentListResponse]</a></code>
2526
- <code title="delete /deployments/{deployment_owner}/{deployment_name}">client.deployments.<a href="./src/replicate/resources/deployments/deployments.py">delete</a>(deployment_name, \*, deployment_owner) -> None</code>
2627
- <code title="get /deployments/{deployment_owner}/{deployment_name}">client.deployments.<a href="./src/replicate/resources/deployments/deployments.py">get</a>(deployment_name, \*, deployment_owner) -> <a href="./src/replicate/types/deployment_get_response.py">DeploymentGetResponse</a></code>
27-
- <code title="get /collections">client.deployments.<a href="./src/replicate/resources/deployments/deployments.py">list_em_all</a>() -> None</code>
2828

2929
## Predictions
3030

@@ -43,19 +43,18 @@ from replicate.types import HardwareListResponse
4343
Methods:
4444

4545
- <code title="get /hardware">client.hardware.<a href="./src/replicate/resources/hardware.py">list</a>() -> <a href="./src/replicate/types/hardware_list_response.py">HardwareListResponse</a></code>
46-
- <code title="get /collections/{collection_slug}">client.hardware.<a href="./src/replicate/resources/hardware.py">retrieve_collections</a>(collection_slug) -> None</code>
4746

48-
# Accounts
47+
# Account
4948

5049
Types:
5150

5251
```python
53-
from replicate.types import AccountListResponse
52+
from replicate.types import AccountGetResponse
5453
```
5554

5655
Methods:
5756

58-
- <code title="get /account">client.accounts.<a href="./src/replicate/resources/accounts.py">list</a>() -> <a href="./src/replicate/types/account_list_response.py">AccountListResponse</a></code>
57+
- <code title="get /account">client.account.<a href="./src/replicate/resources/account.py">get</a>() -> <a href="./src/replicate/types/account_get_response.py">AccountGetResponse</a></code>
5958

6059
# Models
6160

@@ -70,15 +69,21 @@ Methods:
7069
- <code title="post /models">client.models.<a href="./src/replicate/resources/models/models.py">create</a>(\*\*<a href="src/replicate/types/model_create_params.py">params</a>) -> None</code>
7170
- <code title="get /models">client.models.<a href="./src/replicate/resources/models/models.py">list</a>() -> <a href="./src/replicate/types/model_list_response.py">SyncCursorURLPage[ModelListResponse]</a></code>
7271
- <code title="delete /models/{model_owner}/{model_name}">client.models.<a href="./src/replicate/resources/models/models.py">delete</a>(model_name, \*, model_owner) -> None</code>
73-
- <code title="post /models/{model_owner}/{model_name}/predictions">client.models.<a href="./src/replicate/resources/models/models.py">create_prediction</a>(model_name, \*, model_owner, \*\*<a href="src/replicate/types/model_create_prediction_params.py">params</a>) -> <a href="./src/replicate/types/prediction.py">Prediction</a></code>
7472
- <code title="get /models/{model_owner}/{model_name}">client.models.<a href="./src/replicate/resources/models/models.py">get</a>(model_name, \*, model_owner) -> None</code>
73+
- <code title="query /models">client.models.<a href="./src/replicate/resources/models/models.py">search</a>(\*\*<a href="src/replicate/types/model_search_params.py">params</a>) -> None</code>
7574

7675
## Examples
7776

7877
Methods:
7978

8079
- <code title="get /models/{model_owner}/{model_name}/examples">client.models.examples.<a href="./src/replicate/resources/models/examples.py">list</a>(model_name, \*, model_owner) -> None</code>
8180

81+
## Predictions
82+
83+
Methods:
84+
85+
- <code title="post /models/{model_owner}/{model_name}/predictions">client.models.predictions.<a href="./src/replicate/resources/models/predictions.py">create</a>(model_name, \*, model_owner, \*\*<a href="src/replicate/types/models/prediction_create_params.py">params</a>) -> <a href="./src/replicate/types/prediction.py">Prediction</a></code>
86+
8287
## Readme
8388

8489
Types:
@@ -93,17 +98,10 @@ Methods:
9398

9499
## Versions
95100

96-
Types:
97-
98-
```python
99-
from replicate.types.models import VersionCreateTrainingResponse
100-
```
101-
102101
Methods:
103102

104103
- <code title="get /models/{model_owner}/{model_name}/versions">client.models.versions.<a href="./src/replicate/resources/models/versions.py">list</a>(model_name, \*, model_owner) -> None</code>
105104
- <code title="delete /models/{model_owner}/{model_name}/versions/{version_id}">client.models.versions.<a href="./src/replicate/resources/models/versions.py">delete</a>(version_id, \*, model_owner, model_name) -> None</code>
106-
- <code title="post /models/{model_owner}/{model_name}/versions/{version_id}/trainings">client.models.versions.<a href="./src/replicate/resources/models/versions.py">create_training</a>(version_id, \*, model_owner, model_name, \*\*<a href="src/replicate/types/models/version_create_training_params.py">params</a>) -> <a href="./src/replicate/types/models/version_create_training_response.py">VersionCreateTrainingResponse</a></code>
107105
- <code title="get /models/{model_owner}/{model_name}/versions/{version_id}">client.models.versions.<a href="./src/replicate/resources/models/versions.py">get</a>(version_id, \*, model_owner, model_name) -> None</code>
108106

109107
# Predictions
@@ -126,11 +124,17 @@ Methods:
126124
Types:
127125

128126
```python
129-
from replicate.types import TrainingListResponse, TrainingCancelResponse, TrainingGetResponse
127+
from replicate.types import (
128+
TrainingCreateResponse,
129+
TrainingListResponse,
130+
TrainingCancelResponse,
131+
TrainingGetResponse,
132+
)
130133
```
131134

132135
Methods:
133136

137+
- <code title="post /models/{model_owner}/{model_name}/versions/{version_id}/trainings">client.trainings.<a href="./src/replicate/resources/trainings.py">create</a>(version_id, \*, model_owner, model_name, \*\*<a href="src/replicate/types/training_create_params.py">params</a>) -> <a href="./src/replicate/types/training_create_response.py">TrainingCreateResponse</a></code>
134138
- <code title="get /trainings">client.trainings.<a href="./src/replicate/resources/trainings.py">list</a>() -> <a href="./src/replicate/types/training_list_response.py">SyncCursorURLPage[TrainingListResponse]</a></code>
135139
- <code title="post /trainings/{training_id}/cancel">client.trainings.<a href="./src/replicate/resources/trainings.py">cancel</a>(training_id) -> <a href="./src/replicate/types/training_cancel_response.py">TrainingCancelResponse</a></code>
136140
- <code title="get /trainings/{training_id}">client.trainings.<a href="./src/replicate/resources/trainings.py">get</a>(training_id) -> <a href="./src/replicate/types/training_get_response.py">TrainingGetResponse</a></code>
@@ -139,12 +143,14 @@ Methods:
139143

140144
## Default
141145

146+
### Secret
147+
142148
Types:
143149

144150
```python
145-
from replicate.types.webhooks import DefaultRetrieveSecretResponse
151+
from replicate.types.webhooks.default import SecretGetResponse
146152
```
147153

148154
Methods:
149155

150-
- <code title="get /webhooks/default/secret">client.webhooks.default.<a href="./src/replicate/resources/webhooks/default.py">retrieve_secret</a>() -> <a href="./src/replicate/types/webhooks/default_retrieve_secret_response.py">DefaultRetrieveSecretResponse</a></code>
156+
- <code title="get /webhooks/default/secret">client.webhooks.default.secret.<a href="./src/replicate/resources/webhooks/default/secret.py">get</a>() -> <a href="./src/replicate/types/webhooks/default/secret_get_response.py">SecretGetResponse</a></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 = "replicate-stainless"
3-
version = "0.1.0-alpha.4"
3+
version = "0.1.0-alpha.8"
44
description = "The official Python library for the replicate-client API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/replicate/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def _reset_client() -> None: # type: ignore[reportUnusedFunction]
235235
from ._module_client import (
236236
run as run,
237237
models as models,
238-
accounts as accounts,
238+
account as account,
239239
hardware as hardware,
240240
webhooks as webhooks,
241241
trainings as trainings,

src/replicate/_base_client.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,6 +1221,20 @@ def post(
12211221
)
12221222
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
12231223

1224+
def query(
1225+
self,
1226+
path: str,
1227+
*,
1228+
cast_to: Type[ResponseT],
1229+
body: Body | None = None,
1230+
options: RequestOptions = {},
1231+
files: RequestFiles | None = None,
1232+
) -> ResponseT:
1233+
opts = FinalRequestOptions.construct(
1234+
method="query", url=path, json_data=body, files=to_httpx_files(files), **options
1235+
)
1236+
return self.request(cast_to, opts)
1237+
12241238
def patch(
12251239
self,
12261240
path: str,
@@ -1709,6 +1723,20 @@ async def post(
17091723
)
17101724
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
17111725

1726+
async def query(
1727+
self,
1728+
path: str,
1729+
*,
1730+
cast_to: Type[ResponseT],
1731+
body: Body | None = None,
1732+
options: RequestOptions = {},
1733+
files: RequestFiles | None = None,
1734+
) -> ResponseT:
1735+
opts = FinalRequestOptions.construct(
1736+
method="query", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1737+
)
1738+
return await self.request(cast_to, opts)
1739+
17121740
async def patch(
17131741
self,
17141742
path: str,

0 commit comments

Comments
 (0)