|
7 | 7 | from datetime import datetime, timedelta, timezone |
8 | 8 | from hashlib import sha256 |
9 | 9 | from logging import getLogger |
10 | | -from typing import TYPE_CHECKING, Annotated, Final |
| 10 | +from typing import TYPE_CHECKING, Final |
11 | 11 |
|
12 | 12 | from cachetools import LRUCache |
13 | | -from pydantic import BaseModel, ConfigDict, Field |
14 | 13 | from typing_extensions import override |
15 | 14 |
|
16 | 15 | from apify_client import ApifyClientAsync |
17 | 16 | from crawlee._utils.crypto import crypto_random_object_id |
18 | 17 | from crawlee.storage_clients._base import RequestQueueClient |
19 | 18 | from crawlee.storage_clients.models import AddRequestsResponse, ProcessedRequest, RequestQueueMetadata |
20 | 19 |
|
21 | | -from ._models import CachedRequest, ProlongRequestLockResponse, RequestQueueHead |
| 20 | +from ._models import ( |
| 21 | + ApifyRequestQueueMetadata, |
| 22 | + CachedRequest, |
| 23 | + ProlongRequestLockResponse, |
| 24 | + RequestQueueHead, |
| 25 | + RequestQueueStats, |
| 26 | +) |
22 | 27 | from apify import Request |
23 | 28 |
|
24 | 29 | if TYPE_CHECKING: |
@@ -54,30 +59,6 @@ def unique_key_to_request_id(unique_key: str, *, request_id_length: int = 15) -> |
54 | 59 | return url_safe_key[:request_id_length] |
55 | 60 |
|
56 | 61 |
|
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 | | - |
81 | 62 | class ApifyRequestQueueClient(RequestQueueClient): |
82 | 63 | """An Apify platform implementation of the request queue client.""" |
83 | 64 |
|
|
0 commit comments