@@ -37,7 +37,6 @@ class ApifyDatasetClient(DatasetClient):
37
37
def __init__ (
38
38
self ,
39
39
* ,
40
- metadata : DatasetMetadata ,
41
40
api_client : DatasetClientAsync ,
42
41
api_public_base_url : str ,
43
42
lock : asyncio .Lock ,
@@ -46,8 +45,6 @@ def __init__(
46
45
47
46
Preferably use the `ApifyDatasetClient.open` class method to create a new instance.
48
47
"""
49
- self ._metadata = metadata
50
-
51
48
self ._api_client = api_client
52
49
"""The Apify dataset client for API operations."""
53
50
@@ -57,10 +54,10 @@ def __init__(
57
54
self ._lock = lock
58
55
"""A lock to ensure that only one operation is performed at a time."""
59
56
60
- @property
61
57
@override
62
- def metadata (self ) -> DatasetMetadata :
63
- return self ._metadata
58
+ async def get_metadata (self ) -> DatasetMetadata :
59
+ metadata = await self ._api_client .get ()
60
+ return DatasetMetadata .model_validate (metadata )
64
61
65
62
@classmethod
66
63
async def open (
@@ -138,11 +135,7 @@ async def open(
138
135
# Get the client for the specific storage by ID.
139
136
apify_dataset_client = apify_client_async .dataset (dataset_id = id )
140
137
141
- # Fetch its metadata.
142
- metadata = DatasetMetadata .model_validate (await apify_dataset_client .get ())
143
-
144
138
return cls (
145
- metadata = metadata ,
146
139
api_client = apify_dataset_client ,
147
140
api_public_base_url = api_public_base_url ,
148
141
lock = asyncio .Lock (),
@@ -178,8 +171,6 @@ async def payloads_generator() -> AsyncIterator[str]:
178
171
items = await self ._check_and_serialize (data )
179
172
await self ._api_client .push_items (items = items )
180
173
181
- await self ._update_metadata ()
182
-
183
174
@override
184
175
async def get_data (
185
176
self ,
@@ -209,9 +200,7 @@ async def get_data(
209
200
flatten = flatten ,
210
201
view = view ,
211
202
)
212
- result = DatasetItemsListPage .model_validate (vars (response ))
213
- await self ._update_metadata ()
214
- return result
203
+ return DatasetItemsListPage .model_validate (vars (response ))
215
204
216
205
@override
217
206
async def iterate_items (
@@ -240,13 +229,6 @@ async def iterate_items(
240
229
):
241
230
yield item
242
231
243
- await self ._update_metadata ()
244
-
245
- async def _update_metadata (self ) -> None :
246
- """Update the dataset metadata file with current information."""
247
- metadata = await self ._api_client .get ()
248
- self ._metadata = DatasetMetadata .model_validate (metadata )
249
-
250
232
@classmethod
251
233
async def _check_and_serialize (cls , item : JsonSerializable , index : int | None = None ) -> str :
252
234
"""Serialize a given item to JSON, checks its serializability and size against a limit.
0 commit comments