Skip to content

Commit 2a65b88

Browse files
committed
Update, use new models
1 parent 0a900f1 commit 2a65b88

37 files changed

Lines changed: 2029 additions & 188 deletions

src/apify_client/_models.py

Lines changed: 75 additions & 79 deletions
Large diffs are not rendered by default.

src/apify_client/_resource_clients/base/resource_collection_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def _list(self, **kwargs: Any) -> ListPage:
1818
)
1919

2020
data = response_to_dict(response)
21-
return ListPage(data)
21+
return ListPage(data.get('data', data))
2222

2323
def _create(self, resource: dict) -> dict:
2424
response = self.http_client.call(
@@ -52,7 +52,7 @@ async def _list(self, **kwargs: Any) -> ListPage:
5252
)
5353

5454
data = response_to_dict(response)
55-
return ListPage(data)
55+
return ListPage(data.get('data', data))
5656

5757
async def _create(self, resource: dict) -> dict:
5858
response = await self.http_client.call(

src/apify_client/_resource_clients/build.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import Any
44

5-
from apify_client._models import Build
5+
from apify_client._models import Build, GetBuildResponse, PostAbortBuildResponse
66
from apify_client._resource_clients.base import ActorJobBaseClient, ActorJobBaseClientAsync
77
from apify_client._resource_clients.log import LogClient, LogClientAsync
88

@@ -23,7 +23,7 @@ def get(self) -> Build | None:
2323
The retrieved Actor build data.
2424
"""
2525
result = self._get()
26-
return Build.model_validate(result) if result is not None else None
26+
return GetBuildResponse.model_validate(result).data if result is not None else None
2727

2828
def delete(self) -> None:
2929
"""Delete the build.
@@ -41,7 +41,7 @@ def abort(self) -> Build:
4141
The data of the aborted Actor build.
4242
"""
4343
result = self._abort()
44-
return Build.model_validate(result)
44+
return PostAbortBuildResponse.model_validate(result).data
4545

4646
def get_open_api_definition(self) -> dict | None:
4747
"""Return OpenAPI definition of the Actor's build.
@@ -102,7 +102,7 @@ async def get(self) -> Build | None:
102102
The retrieved Actor build data.
103103
"""
104104
result = await self._get()
105-
return Build.model_validate(result) if result is not None else None
105+
return GetBuildResponse.model_validate(result).data if result is not None else None
106106

107107
async def abort(self) -> Build:
108108
"""Abort the Actor build which is starting or currently running and return its details.
@@ -113,7 +113,7 @@ async def abort(self) -> Build:
113113
The data of the aborted Actor build.
114114
"""
115115
result = await self._abort()
116-
return Build.model_validate(result)
116+
return PostAbortBuildResponse.model_validate(result).data
117117

118118
async def delete(self) -> None:
119119
"""Delete the build.

src/apify_client/_resource_clients/dataset_collection.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
from __future__ import annotations
22

3-
from typing import TYPE_CHECKING, Any
3+
from typing import Any
44

5-
from apify_client._models import Dataset, DatasetListItem, DatasetResponse
5+
from apify_client._models import Dataset, DatasetResponse, GetListOfDatasetsResponse, ListOfDatasets
66
from apify_client._resource_clients.base import ResourceCollectionClient, ResourceCollectionClientAsync
7-
from apify_client._utils import filter_out_none_values_recursively
8-
9-
if TYPE_CHECKING:
10-
from apify_client._types import ListPage
7+
from apify_client._utils import filter_out_none_values_recursively, response_to_dict
118

129

1310
class DatasetCollectionClient(ResourceCollectionClient):
@@ -24,7 +21,7 @@ def list(
2421
limit: int | None = None,
2522
offset: int | None = None,
2623
desc: bool | None = None,
27-
) -> ListPage[DatasetListItem]:
24+
) -> ListOfDatasets:
2825
"""List the available datasets.
2926
3027
https://docs.apify.com/api/v2#/reference/datasets/dataset-collection/get-list-of-datasets
@@ -38,7 +35,13 @@ def list(
3835
Returns:
3936
The list of available datasets matching the specified filters.
4037
"""
41-
return self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
38+
response = self.http_client.call(
39+
url=self._url(),
40+
method='GET',
41+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
42+
)
43+
data = response_to_dict(response)
44+
return GetListOfDatasetsResponse.model_validate(data).data
4245

4346
def get_or_create(self, *, name: str | None = None, schema: dict | None = None) -> Dataset:
4447
"""Retrieve a named dataset, or create a new one when it doesn't exist.
@@ -70,7 +73,7 @@ async def list(
7073
limit: int | None = None,
7174
offset: int | None = None,
7275
desc: bool | None = None,
73-
) -> ListPage[DatasetListItem]:
76+
) -> ListOfDatasets:
7477
"""List the available datasets.
7578
7679
https://docs.apify.com/api/v2#/reference/datasets/dataset-collection/get-list-of-datasets
@@ -84,7 +87,13 @@ async def list(
8487
Returns:
8588
The list of available datasets matching the specified filters.
8689
"""
87-
return await self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
90+
response = await self.http_client.call(
91+
url=self._url(),
92+
method='GET',
93+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
94+
)
95+
data = response_to_dict(response)
96+
return GetListOfDatasetsResponse.model_validate(data).data
8897

8998
async def get_or_create(
9099
self,

src/apify_client/_resource_clients/key_value_store_collection.py

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from __future__ import annotations
22

3-
from typing import TYPE_CHECKING, Any
4-
5-
from apify_client._models import CreateKeyValueStoreResponse, KeyValueStore
3+
from typing import Any
4+
5+
from apify_client._models import (
6+
CreateKeyValueStoreResponse,
7+
GetListOfKeyValueStoresResponse,
8+
KeyValueStore,
9+
ListOfKeyValueStores,
10+
)
611
from apify_client._resource_clients.base import ResourceCollectionClient, ResourceCollectionClientAsync
7-
from apify_client._utils import filter_out_none_values_recursively
8-
9-
if TYPE_CHECKING:
10-
from apify_client._types import ListPage
12+
from apify_client._utils import filter_out_none_values_recursively, response_to_dict
1113

1214

1315
class KeyValueStoreCollectionClient(ResourceCollectionClient):
@@ -24,7 +26,7 @@ def list(
2426
limit: int | None = None,
2527
offset: int | None = None,
2628
desc: bool | None = None,
27-
) -> ListPage[KeyValueStore]:
29+
) -> ListOfKeyValueStores:
2830
"""List the available key-value stores.
2931
3032
https://docs.apify.com/api/v2#/reference/key-value-stores/store-collection/get-list-of-key-value-stores
@@ -38,7 +40,13 @@ def list(
3840
Returns:
3941
The list of available key-value stores matching the specified filters.
4042
"""
41-
return self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
43+
response = self.http_client.call(
44+
url=self._url(),
45+
method='GET',
46+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
47+
)
48+
data = response_to_dict(response)
49+
return GetListOfKeyValueStoresResponse.model_validate(data).data
4250

4351
def get_or_create(
4452
self,
@@ -75,7 +83,7 @@ async def list(
7583
limit: int | None = None,
7684
offset: int | None = None,
7785
desc: bool | None = None,
78-
) -> ListPage[KeyValueStore]:
86+
) -> ListOfKeyValueStores:
7987
"""List the available key-value stores.
8088
8189
https://docs.apify.com/api/v2#/reference/key-value-stores/store-collection/get-list-of-key-value-stores
@@ -89,7 +97,13 @@ async def list(
8997
Returns:
9098
The list of available key-value stores matching the specified filters.
9199
"""
92-
return await self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
100+
response = await self.http_client.call(
101+
url=self._url(),
102+
method='GET',
103+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
104+
)
105+
data = response_to_dict(response)
106+
return GetListOfKeyValueStoresResponse.model_validate(data).data
93107

94108
async def get_or_create(
95109
self,

src/apify_client/_resource_clients/request_queue_collection.py

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
from __future__ import annotations
22

3-
from typing import TYPE_CHECKING, Any
4-
5-
from apify_client._models import CreateRequestQueueResponse, RequestQueue, RequestQueueShort
3+
from typing import Any
4+
5+
from apify_client._models import (
6+
CreateRequestQueueResponse,
7+
GetListOfRequestQueuesResponse,
8+
ListOfRequestQueues,
9+
RequestQueue,
10+
)
611
from apify_client._resource_clients.base import ResourceCollectionClient, ResourceCollectionClientAsync
7-
8-
if TYPE_CHECKING:
9-
from apify_client._types import ListPage
12+
from apify_client._utils import response_to_dict
1013

1114

1215
class RequestQueueCollectionClient(ResourceCollectionClient):
@@ -23,7 +26,7 @@ def list(
2326
limit: int | None = None,
2427
offset: int | None = None,
2528
desc: bool | None = None,
26-
) -> ListPage[RequestQueueShort]:
29+
) -> ListOfRequestQueues:
2730
"""List the available request queues.
2831
2932
https://docs.apify.com/api/v2#/reference/request-queues/queue-collection/get-list-of-request-queues
@@ -37,7 +40,13 @@ def list(
3740
Returns:
3841
The list of available request queues matching the specified filters.
3942
"""
40-
return self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
43+
response = self.http_client.call(
44+
url=self._url(),
45+
method='GET',
46+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
47+
)
48+
data = response_to_dict(response)
49+
return GetListOfRequestQueuesResponse.model_validate(data).data
4150

4251
def get_or_create(self, *, name: str | None = None) -> RequestQueue:
4352
"""Retrieve a named request queue, or create a new one when it doesn't exist.
@@ -68,7 +77,7 @@ async def list(
6877
limit: int | None = None,
6978
offset: int | None = None,
7079
desc: bool | None = None,
71-
) -> ListPage[RequestQueueShort]:
80+
) -> ListOfRequestQueues:
7281
"""List the available request queues.
7382
7483
https://docs.apify.com/api/v2#/reference/request-queues/queue-collection/get-list-of-request-queues
@@ -82,7 +91,13 @@ async def list(
8291
Returns:
8392
The list of available request queues matching the specified filters.
8493
"""
85-
return await self._list(unnamed=unnamed, limit=limit, offset=offset, desc=desc)
94+
response = await self.http_client.call(
95+
url=self._url(),
96+
method='GET',
97+
params=self._params(unnamed=unnamed, limit=limit, offset=offset, desc=desc),
98+
)
99+
data = response_to_dict(response)
100+
return GetListOfRequestQueuesResponse.model_validate(data).data
86101

87102
async def get_or_create(self, *, name: str | None = None) -> RequestQueue:
88103
"""Retrieve a named request queue, or create a new one when it doesn't exist.

src/apify_client/_resource_clients/run.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def abort(self, *, gracefully: bool | None = None) -> Run:
107107
The data of the aborted Actor run.
108108
"""
109109
response = self._abort(gracefully=gracefully)
110-
return Run.model_validate(response)
110+
return RunResponse.model_validate(response).data
111111

112112
def wait_for_finish(self, *, wait_secs: int | None = None) -> Run | None:
113113
"""Wait synchronously until the run finishes or the server times out.

src/apify_client/_resource_clients/schedule.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import Any
44

5-
from apify_client._models import ScheduleInvoked, ScheduleResponseData
5+
from apify_client._models import ScheduleInvoked, ScheduleResponse, ScheduleResponseData
66
from apify_client._resource_clients.base import ResourceClient, ResourceClientAsync
77
from apify_client._utils import catch_not_found_or_throw, filter_out_none_values_recursively, response_to_list
88
from apify_client.errors import ApifyApiError
@@ -47,7 +47,7 @@ def get(self) -> ScheduleResponseData | None:
4747
The retrieved schedule.
4848
"""
4949
result = self._get()
50-
return ScheduleResponseData.model_validate(result) if result is not None else None
50+
return ScheduleResponse.model_validate(result).data if result is not None else None
5151

5252
def update(
5353
self,
@@ -92,7 +92,7 @@ def update(
9292
)
9393

9494
result = self._update(filter_out_none_values_recursively(schedule_representation))
95-
return ScheduleResponseData.model_validate(result)
95+
return ScheduleResponse.model_validate(result).data
9696

9797
def delete(self) -> None:
9898
"""Delete the schedule.
@@ -139,7 +139,7 @@ async def get(self) -> ScheduleResponseData | None:
139139
The retrieved schedule.
140140
"""
141141
result = await self._get()
142-
return ScheduleResponseData.model_validate(result) if result is not None else None
142+
return ScheduleResponse.model_validate(result).data if result is not None else None
143143

144144
async def update(
145145
self,
@@ -184,7 +184,7 @@ async def update(
184184
)
185185

186186
result = await self._update(filter_out_none_values_recursively(schedule_representation))
187-
return ScheduleResponseData.model_validate(result)
187+
return ScheduleResponse.model_validate(result).data
188188

189189
async def delete(self) -> None:
190190
"""Delete the schedule.

src/apify_client/_resource_clients/schedule_collection.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import TYPE_CHECKING, Any
44

5-
from apify_client._models import GetListOfSchedulesResponseDataItems, ScheduleResponseData
5+
from apify_client._models import GetListOfSchedulesResponseDataItems, ScheduleResponse, ScheduleResponseData
66
from apify_client._resource_clients.base import ResourceCollectionClient, ResourceCollectionClientAsync
77
from apify_client._resource_clients.schedule import _get_schedule_representation
88
from apify_client._utils import filter_out_none_values_recursively
@@ -85,7 +85,7 @@ def create(
8585
)
8686

8787
result = self._create(filter_out_none_values_recursively(schedule_representation))
88-
return ScheduleResponseData.model_validate(result)
88+
return ScheduleResponse.model_validate(result).data
8989

9090

9191
class ScheduleCollectionClientAsync(ResourceCollectionClientAsync):
@@ -162,4 +162,4 @@ async def create(
162162
)
163163

164164
result = await self._create(filter_out_none_values_recursively(schedule_representation))
165-
return ScheduleResponseData.model_validate(result)
165+
return ScheduleResponse.model_validate(result).data

0 commit comments

Comments
 (0)