Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/apify/storage_clients/_apify/_dataset_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import asyncio
import json
from collections.abc import Sequence
from logging import getLogger
from typing import TYPE_CHECKING

Expand All @@ -16,7 +17,7 @@
from apify.storage_clients._ppe_dataset_mixin import DatasetClientPpeMixin

if TYPE_CHECKING:
from collections.abc import AsyncIterator, Mapping, Sequence
from collections.abc import AsyncIterator, Mapping

from apify_client._resource_clients import DatasetClientAsync
from crawlee._types import JsonSerializable
Expand Down Expand Up @@ -134,7 +135,7 @@ async def push_data(self, data: Sequence[Mapping[str, JsonSerializable]] | Mappi
# Pushing mutates no client state - `push_items` is a stateless API call - so concurrent pushes only need
# the charge lock, which keeps the limit reservation and the charge atomic for pay-per-event runs.
async with charge_lock_if_charging():
items = data if self._is_sequence_of_items(data) else [data]
items = data if isinstance(data, Sequence) else [data]
if not items:
return
limit = self._compute_limit_for_push(len(items))
Expand Down
5 changes: 3 additions & 2 deletions src/apify/storage_clients/_file_system/_dataset_client.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

from collections.abc import Sequence
from typing import TYPE_CHECKING, Any, Self

from typing_extensions import override
Expand All @@ -10,7 +11,7 @@
from apify.storage_clients._ppe_dataset_mixin import DatasetClientPpeMixin

if TYPE_CHECKING:
from collections.abc import Mapping, Sequence
from collections.abc import Mapping

from crawlee._types import JsonSerializable
from crawlee.configuration import Configuration
Expand Down Expand Up @@ -53,7 +54,7 @@ async def open(
@override
async def push_data(self, data: Sequence[Mapping[str, JsonSerializable]] | Mapping[str, JsonSerializable]) -> None:
async with charge_lock_if_charging():
items = data if self._is_sequence_of_items(data) else [data]
items = data if isinstance(data, Sequence) else [data]
limit = self._compute_limit_for_push(len(items))

await super().push_data(items[:limit])
Expand Down
Loading
Loading