Skip to content

Commit 9dfe343

Browse files
committed
Move to models
1 parent 3610949 commit 9dfe343

File tree

3 files changed

+34
-29
lines changed

3 files changed

+34
-29
lines changed

src/apify/storage_clients/_apify/_models.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from pydantic import BaseModel, ConfigDict, Field
77

8-
from crawlee.storage_clients.models import KeyValueStoreMetadata
8+
from crawlee.storage_clients.models import KeyValueStoreMetadata, RequestQueueMetadata
99

1010
from apify import Request
1111
from apify._utils import docs_group
@@ -105,3 +105,27 @@ class CachedRequest(BaseModel):
105105

106106
lock_expires_at: datetime | None = None
107107
"""The expiration time of the lock on the request."""
108+
109+
110+
class RequestQueueStats(BaseModel):
111+
model_config = ConfigDict(populate_by_name=True)
112+
113+
delete_count: Annotated[int, Field(alias='deleteCount', default=0)]
114+
""""The number of request queue deletes."""
115+
116+
head_item_read_count: Annotated[int, Field(alias='headItemReadCount', default=0)]
117+
"""The number of request queue head reads."""
118+
119+
read_count: Annotated[int, Field(alias='readCount', default=0)]
120+
"""The number of request queue reads."""
121+
122+
storage_bytes: Annotated[int, Field(alias='storageBytes', default=0)]
123+
"""Storage size in Bytes."""
124+
125+
write_count: Annotated[int, Field(alias='writeCount', default=0)]
126+
"""The number of request queue writes."""
127+
128+
129+
class ApifyRequestQueueMetadata(RequestQueueMetadata):
130+
stats: Annotated[RequestQueueStats, Field(alias='stats', default_factory=RequestQueueStats)]
131+
"""Additional statistics about the request queue."""

src/apify/storage_clients/_apify/_request_queue_client.py

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77
from datetime import datetime, timedelta, timezone
88
from hashlib import sha256
99
from logging import getLogger
10-
from typing import TYPE_CHECKING, Annotated, Final
10+
from typing import TYPE_CHECKING, Final
1111

1212
from cachetools import LRUCache
13-
from pydantic import BaseModel, ConfigDict, Field
1413
from typing_extensions import override
1514

1615
from apify_client import ApifyClientAsync
1716
from crawlee._utils.crypto import crypto_random_object_id
1817
from crawlee.storage_clients._base import RequestQueueClient
1918
from crawlee.storage_clients.models import AddRequestsResponse, ProcessedRequest, RequestQueueMetadata
2019

21-
from ._models import CachedRequest, ProlongRequestLockResponse, RequestQueueHead
20+
from ._models import (
21+
ApifyRequestQueueMetadata,
22+
CachedRequest,
23+
ProlongRequestLockResponse,
24+
RequestQueueHead,
25+
RequestQueueStats,
26+
)
2227
from apify import Request
2328

2429
if TYPE_CHECKING:
@@ -54,30 +59,6 @@ def unique_key_to_request_id(unique_key: str, *, request_id_length: int = 15) ->
5459
return url_safe_key[:request_id_length]
5560

5661

57-
class RequestQueueStats(BaseModel):
58-
model_config = ConfigDict(populate_by_name=True)
59-
60-
delete_count: Annotated[int, Field(alias='deleteCount', default=0)]
61-
""""The number of request queue deletes."""
62-
63-
head_item_read_count: Annotated[int, Field(alias='headItemReadCount', default=0)]
64-
"""The number of request queue head reads."""
65-
66-
read_count: Annotated[int, Field(alias='readCount', default=0)]
67-
"""The number of request queue reads."""
68-
69-
storage_bytes: Annotated[int, Field(alias='storageBytes', default=0)]
70-
"""Storage size in Bytes."""
71-
72-
write_count: Annotated[int, Field(alias='writeCount', default=0)]
73-
"""The number of request queue writes."""
74-
75-
76-
class ApifyRequestQueueMetadata(RequestQueueMetadata):
77-
stats: Annotated[RequestQueueStats, Field(alias='stats', default_factory=RequestQueueStats)]
78-
"""Additional statistics about the request queue."""
79-
80-
8162
class ApifyRequestQueueClient(RequestQueueClient):
8263
"""An Apify platform implementation of the request queue client."""
8364

tests/integration/test_request_queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from crawlee.storages import RequestQueue
1515

1616
from .conftest import MakeActorFunction, RunActorFunction
17-
from apify.storage_clients._apify._request_queue_client import ApifyRequestQueueMetadata
17+
from apify.storage_clients._apify._models import ApifyRequestQueueMetadata
1818

1919

2020
async def test_add_and_fetch_requests(

0 commit comments

Comments
 (0)