Skip to content

Commit 0766ecd

Browse files
committed
fixing generate public url for KVS records
1 parent afcb8c7 commit 0766ecd

File tree

4 files changed

+14
-76
lines changed

4 files changed

+14
-76
lines changed

src/apify/storage_clients/_apify/_dataset_client.py

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
if TYPE_CHECKING:
1616
from collections.abc import AsyncIterator
17-
from datetime import datetime
1817

1918
from apify_client.clients import DatasetClientAsync
2019
from crawlee._types import JsonSerializable
@@ -38,27 +37,15 @@ class ApifyDatasetClient(DatasetClient):
3837
def __init__(
3938
self,
4039
*,
41-
id: str,
42-
name: str | None,
43-
created_at: datetime,
44-
accessed_at: datetime,
45-
modified_at: datetime,
46-
item_count: int,
40+
metadata: DatasetMetadata,
4741
api_client: DatasetClientAsync,
4842
lock: asyncio.Lock,
4943
) -> None:
5044
"""Initialize a new instance.
5145
5246
Preferably use the `ApifyDatasetClient.open` class method to create a new instance.
5347
"""
54-
self._metadata = DatasetMetadata(
55-
id=id,
56-
name=name,
57-
created_at=created_at,
58-
accessed_at=accessed_at,
59-
modified_at=modified_at,
60-
item_count=item_count,
61-
)
48+
self._metadata = metadata
6249

6350
self._api_client = api_client
6451
"""The Apify dataset client for API operations."""
@@ -144,12 +131,7 @@ async def open(
144131
metadata = DatasetMetadata.model_validate(await apify_dataset_client.get())
145132

146133
return cls(
147-
id=metadata.id,
148-
name=metadata.name,
149-
created_at=metadata.created_at,
150-
accessed_at=metadata.accessed_at,
151-
modified_at=metadata.modified_at,
152-
item_count=metadata.item_count,
134+
metadata=metadata,
153135
api_client=apify_dataset_client,
154136
lock=asyncio.Lock(),
155137
)

src/apify/storage_clients/_apify/_key_value_store_client.py

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
if TYPE_CHECKING:
1818
from collections.abc import AsyncIterator
19-
from datetime import datetime
2019

2120
from apify_client.clients import KeyValueStoreClientAsync
2221
from crawlee.configuration import Configuration
@@ -30,28 +29,18 @@ class ApifyKeyValueStoreClient(KeyValueStoreClient):
3029
def __init__(
3130
self,
3231
*,
33-
id: str,
34-
name: str | None,
35-
created_at: datetime,
36-
accessed_at: datetime,
37-
modified_at: datetime,
32+
metadata: KeyValueStoreMetadata,
3833
api_client: KeyValueStoreClientAsync,
3934
lock: asyncio.Lock,
4035
) -> None:
4136
"""Initialize a new instance.
4237
4338
Preferably use the `ApifyKeyValueStoreClient.open` class method to create a new instance.
4439
"""
45-
self._metadata = KeyValueStoreMetadata(
46-
id=id,
47-
name=name,
48-
created_at=created_at,
49-
accessed_at=accessed_at,
50-
modified_at=modified_at,
51-
)
40+
self._metadata = metadata
5241

5342
self._api_client = api_client
54-
"""The Apify key-value store client for API operations."""
43+
"""The Apify KVS client for API operations."""
5544

5645
self._lock = lock
5746
"""A lock to ensure that only one operation is performed at a time."""
@@ -134,11 +123,7 @@ async def open(
134123
metadata = KeyValueStoreMetadata.model_validate(await apify_kvs_client.get())
135124

136125
return cls(
137-
id=metadata.id,
138-
name=metadata.name,
139-
created_at=metadata.created_at,
140-
accessed_at=metadata.accessed_at,
141-
modified_at=metadata.modified_at,
126+
metadata=metadata,
142127
api_client=apify_kvs_client,
143128
lock=asyncio.Lock(),
144129
)

src/apify/storage_clients/_apify/_request_queue_client.py

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -38,35 +38,15 @@ class ApifyRequestQueueClient(RequestQueueClient):
3838
def __init__(
3939
self,
4040
*,
41-
id: str,
42-
name: str | None,
43-
created_at: datetime,
44-
accessed_at: datetime,
45-
modified_at: datetime,
46-
had_multiple_clients: bool,
47-
handled_request_count: int,
48-
pending_request_count: int,
49-
stats: dict,
50-
total_request_count: int,
41+
metadata: RequestQueueMetadata,
5142
api_client: RequestQueueClientAsync,
5243
lock: asyncio.Lock,
5344
) -> None:
5445
"""Initialize a new instance.
5546
5647
Preferably use the `ApifyRequestQueueClient.open` class method to create a new instance.
5748
"""
58-
self._metadata = RequestQueueMetadata(
59-
id=id,
60-
name=name,
61-
created_at=created_at,
62-
accessed_at=accessed_at,
63-
modified_at=modified_at,
64-
had_multiple_clients=had_multiple_clients,
65-
handled_request_count=handled_request_count,
66-
pending_request_count=pending_request_count,
67-
stats=stats,
68-
total_request_count=total_request_count,
69-
)
49+
self._metadata = metadata
7050

7151
self._api_client = api_client
7252
"""The Apify request queue client for API operations."""
@@ -165,16 +145,7 @@ async def open(
165145
metadata = RequestQueueMetadata.model_validate(await apify_rq_client.get())
166146

167147
return cls(
168-
id=metadata.id,
169-
name=metadata.name,
170-
created_at=metadata.created_at,
171-
accessed_at=metadata.accessed_at,
172-
modified_at=metadata.modified_at,
173-
had_multiple_clients=metadata.had_multiple_clients,
174-
handled_request_count=metadata.handled_request_count,
175-
pending_request_count=metadata.pending_request_count,
176-
stats=metadata.stats,
177-
total_request_count=metadata.total_request_count,
148+
metadata=metadata,
178149
api_client=apify_rq_client,
179150
lock=asyncio.Lock(),
180151
)

tests/integration/test_actor_key_value_store.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,13 @@ async def main() -> None:
217217
await kvs.set_value(record_key, {'exposedData': 'test'}, 'application/json')
218218

219219
record_url = await kvs.get_public_url(record_key)
220-
221220
signature = create_hmac_signature(url_signing_secret_key, record_key)
222-
assert (
223-
record_url
224-
== f'{public_api_url}/v2/key-value-stores/{default_kvs_id}/records/{record_key}?signature={signature}'
221+
expected_record_url = (
222+
f'{public_api_url}/v2/key-value-stores/{default_kvs_id}/records/{record_key}?signature={signature}'
225223
)
226224

225+
assert record_url == expected_record_url
226+
227227
actor = await make_actor(label='kvs-get-public-url', main_func=main)
228228
run_result = await run_actor(actor)
229229

0 commit comments

Comments
 (0)