Skip to content

Commit 7c0b743

Browse files
committed
Fixes
1 parent fe394ea commit 7c0b743

File tree

4 files changed

+50
-31
lines changed

4 files changed

+50
-31
lines changed

src/apify_client/_models.py

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# generated by datamodel-codegen:
22
# filename: openapi.json
3-
# timestamp: 2025-12-20T10:37:13+00:00
3+
# timestamp: 2025-12-20T10:45:52+00:00
44

55
from __future__ import annotations
66

@@ -1303,7 +1303,7 @@ class Item(BaseModel):
13031303
"""
13041304

13051305

1306-
class ListOfKeysResponse(BaseModel):
1306+
class Data8(BaseModel):
13071307
items: list[Item]
13081308
count: Annotated[float, Field(examples=[2])]
13091309
limit: Annotated[float, Field(examples=[2])]
@@ -1312,6 +1312,10 @@ class ListOfKeysResponse(BaseModel):
13121312
next_exclusive_start_key: Annotated[str | None, Field(alias='nextExclusiveStartKey', examples=['third-key'])] = None
13131313

13141314

1315+
class ListOfKeysResponse(BaseModel):
1316+
data: Data8
1317+
1318+
13151319
class GetListOfKeysResponse(BaseModel):
13161320
data: ListOfKeysResponse
13171321

@@ -1337,12 +1341,12 @@ class DatasetListItem(BaseModel):
13371341
act_run_id: Annotated[str | None, Field(alias='actRunId')] = None
13381342

13391343

1340-
class Data8(PaginationResponse):
1344+
class Data9(PaginationResponse):
13411345
items: list[DatasetListItem]
13421346

13431347

13441348
class GetListOfDatasetsResponse(BaseModel):
1345-
data: Data8
1349+
data: Data9
13461350

13471351

13481352
class DatasetStats(BaseModel):
@@ -1456,7 +1460,7 @@ class InvalidItem(BaseModel):
14561460
"""
14571461

14581462

1459-
class Data9(BaseModel):
1463+
class Data10(BaseModel):
14601464
invalid_items: Annotated[list[InvalidItem], Field(alias='invalidItems')]
14611465
"""
14621466
A list of invalid items in the received array of items.
@@ -1472,7 +1476,7 @@ class Error1(BaseModel):
14721476
"""
14731477
A human-readable message describing the error.
14741478
"""
1475-
data: Data9
1479+
data: Data10
14761480

14771481

14781482
class DatasetSchemaValidationError(BaseModel):
@@ -1502,15 +1506,15 @@ class DatasetFieldStatistics(BaseModel):
15021506
"""
15031507

15041508

1505-
class Data10(BaseModel):
1509+
class Data11(BaseModel):
15061510
field_statistics: Annotated[dict[str, DatasetFieldStatistics] | None, Field(alias='fieldStatistics')] = None
15071511
"""
15081512
When you configure the dataset [fields schema](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation), we measure the statistics such as `min`, `max`, `nullCount` and `emptyCount` for each field. This property provides statistics for each field from dataset fields schema. <br/></br>See dataset field statistics [documentation](https://docs.apify.com/platform/actors/development/actor-definition/dataset-schema/validation#dataset-field-statistics) for more information.
15091513
"""
15101514

15111515

15121516
class GetDatasetStatisticsResponse(BaseModel):
1513-
data: Data10
1517+
data: Data11
15141518

15151519

15161520
class RequestQueueShort(BaseModel):
@@ -1530,7 +1534,7 @@ class RequestQueueShort(BaseModel):
15301534
had_multiple_clients: Annotated[bool, Field(alias='hadMultipleClients', examples=[True])]
15311535

15321536

1533-
class Data11(BaseModel):
1537+
class Data12(BaseModel):
15341538
total: Annotated[float, Field(examples=[2])]
15351539
offset: Annotated[float, Field(examples=[0])]
15361540
limit: Annotated[float, Field(examples=[1000])]
@@ -1540,7 +1544,7 @@ class Data11(BaseModel):
15401544

15411545

15421546
class GetListOfRequestQueuesResponse(BaseModel):
1543-
data: Data11
1547+
data: Data12
15441548

15451549

15461550
class RequestQueue(BaseModel):
@@ -1599,13 +1603,13 @@ class UnprocessedRequest(BaseModel):
15991603
method: Annotated[str, Field(examples=['GET'])]
16001604

16011605

1602-
class Data12(BaseModel):
1606+
class Data13(BaseModel):
16031607
processed_requests: Annotated[list[ProcessedRequest], Field(alias='processedRequests')]
16041608
unprocessed_requests: Annotated[list[UnprocessedRequest], Field(alias='unprocessedRequests')]
16051609

16061610

16071611
class BatchOperationResponse(BaseModel):
1608-
data: Data12
1612+
data: Data13
16091613

16101614

16111615
class UserData(BaseModel):
@@ -1628,15 +1632,15 @@ class RequestQueueItems(BaseModel):
16281632
handled_at: Annotated[str | None, Field(alias='handledAt', examples=['2019-06-16T10:23:31.607Z'])] = None
16291633

16301634

1631-
class Data13(BaseModel):
1635+
class Data14(BaseModel):
16321636
items: list[RequestQueueItems]
16331637
count: Annotated[float | None, Field(examples=[2])] = None
16341638
limit: Annotated[float, Field(examples=[2])]
16351639
exclusive_start_id: Annotated[str | None, Field(alias='exclusiveStartId', examples=['Ihnsp8YrvJ8102Kj'])] = None
16361640

16371641

16381642
class ListRequestsResponse(BaseModel):
1639-
data: Data13
1643+
data: Data14
16401644

16411645

16421646
class RequestOperationInfo(BaseModel):
@@ -1665,15 +1669,15 @@ class Item1(BaseModel):
16651669
method: Annotated[str, Field(examples=['GET'])]
16661670

16671671

1668-
class Data14(BaseModel):
1672+
class Data15(BaseModel):
16691673
limit: Annotated[float, Field(examples=[1000])]
16701674
queue_modified_at: Annotated[str, Field(alias='queueModifiedAt', examples=['2018-03-14T23:00:00.000Z'])]
16711675
had_multiple_clients: Annotated[bool, Field(alias='hadMultipleClients', examples=[False])]
16721676
items: list[Item1]
16731677

16741678

16751679
class GetHeadResponse(BaseModel):
1676-
data: Data14
1680+
data: Data15
16771681

16781682

16791683
class Item2(BaseModel):
@@ -1685,7 +1689,7 @@ class Item2(BaseModel):
16851689
lock_expires_at: Annotated[str, Field(alias='lockExpiresAt', examples=['2022-06-14T23:00:00.000Z'])]
16861690

16871691

1688-
class Data15(BaseModel):
1692+
class Data16(BaseModel):
16891693
limit: Annotated[float, Field(examples=[1000])]
16901694
queue_modified_at: Annotated[str, Field(alias='queueModifiedAt', examples=['2018-03-14T23:00:00.000Z'])]
16911695
"""
@@ -1702,18 +1706,18 @@ class Data15(BaseModel):
17021706

17031707

17041708
class GetHeadAndLockResponse(BaseModel):
1705-
data: Data15
1709+
data: Data16
17061710

17071711

1708-
class Data16(BaseModel):
1712+
class Data17(BaseModel):
17091713
lock_expires_at: Annotated[str, Field(alias='lockExpiresAt', examples=['2022-01-01T00:00:00.000Z'])]
17101714
"""
17111715
Date when lock expires.
17121716
"""
17131717

17141718

17151719
class ProlongRequestLockResponse(BaseModel):
1716-
data: Data16 | None = None
1720+
data: Data17 | None = None
17171721

17181722

17191723
class WebhookCreate(BaseModel):
@@ -1791,12 +1795,12 @@ class TestWebhookResponse(BaseModel):
17911795
data: WebhookDispatch
17921796

17931797

1794-
class Data17(PaginationResponse):
1798+
class Data18(PaginationResponse):
17951799
items: list[WebhookDispatch]
17961800

17971801

17981802
class WebhookDispatchList(BaseModel):
1799-
data: Data17 | None = None
1803+
data: Data18 | None = None
18001804

18011805

18021806
class GetWebhookDispatchResponse(BaseModel):

src/apify_client/_resource_clients/dataset.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
from apify_client._models import Dataset, DatasetResponse, GetDatasetStatisticsResponse
1111
from apify_client._resource_clients.base import ResourceClient, ResourceClientAsync
1212
from apify_client._types import ListPage
13-
from apify_client._utils import catch_not_found_or_throw, filter_out_none_values_recursively, response_to_dict
13+
from apify_client._utils import (
14+
catch_not_found_or_throw,
15+
filter_out_none_values_recursively,
16+
response_to_dict,
17+
response_to_list,
18+
)
1419
from apify_client.errors import ApifyApiError
1520

1621
if TYPE_CHECKING:
@@ -142,7 +147,11 @@ def list_items(
142147
params=request_params,
143148
)
144149

145-
data = response_to_dict(response)
150+
# When using signature, API returns items as list directly
151+
try:
152+
data = response_to_list(response)
153+
except ValueError:
154+
data = response_to_dict(response)
146155

147156
return ListPage(
148157
{
@@ -758,7 +767,11 @@ async def list_items(
758767
params=request_params,
759768
)
760769

761-
data = response_to_dict(response)
770+
# When using signature, API returns items as list directly
771+
try:
772+
data = response_to_list(response)
773+
except ValueError:
774+
data = response_to_dict(response)
762775

763776
return ListPage(
764777
{

src/apify_client/_resource_clients/request_queue.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from apify_client._models import (
1313
AddRequestResponse,
1414
BatchOperationResponse,
15-
Data12,
15+
Data13,
1616
GetHeadAndLockResponse,
1717
GetHeadResponse,
1818
GetRequestQueueResponse,
@@ -364,7 +364,7 @@ def batch_add_requests(
364364
unprocessed_requests.extend(batch_response.data.unprocessed_requests)
365365

366366
return BatchOperationResponse.model_construct(
367-
data=Data12.model_construct(
367+
data=Data13.model_construct(
368368
processed_requests=processed_requests,
369369
unprocessed_requests=unprocessed_requests,
370370
)
@@ -732,7 +732,7 @@ async def _batch_add_requests_worker(
732732
queue.task_done()
733733

734734
return BatchOperationResponse.model_construct(
735-
data=Data12.model_construct(
735+
data=Data13.model_construct(
736736
processed_requests=processed_requests,
737737
unprocessed_requests=unprocessed_requests,
738738
)
@@ -814,7 +814,7 @@ async def batch_add_requests(
814814
unprocessed_requests.extend(result.data.unprocessed_requests)
815815

816816
return BatchOperationResponse.model_construct(
817-
data=Data12.model_construct(
817+
data=Data13.model_construct(
818818
processed_requests=processed_requests,
819819
unprocessed_requests=unprocessed_requests,
820820
)

tests/integration/test_key_value_store.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ def test_list_keys_signature_sync(apify_client: ApifyClient, test_kvs_of_another
138138
kvs.list_keys()
139139

140140
# Kvs content retrieved with correct signature
141-
raw_items = kvs.list_keys(signature=test_kvs_of_another_user.signature).items
141+
response = kvs.list_keys(signature=test_kvs_of_another_user.signature)
142+
raw_items = response.data.items
142143

143144
assert set(test_kvs_of_another_user.expected_content) == {item.key for item in raw_items}
144145

@@ -305,7 +306,8 @@ async def test_list_keys_signature_async(
305306
await kvs.list_keys()
306307

307308
# Kvs content retrieved with correct signature
308-
raw_items = (await kvs.list_keys(signature=test_kvs_of_another_user.signature)).items
309+
response = await kvs.list_keys(signature=test_kvs_of_another_user.signature)
310+
raw_items = response.data.items
309311

310312
assert set(test_kvs_of_another_user.expected_content) == {item.key for item in raw_items}
311313

0 commit comments

Comments
 (0)