11from __future__ import annotations
22
3+ from typing import TYPE_CHECKING
4+
35from typing_extensions import override
46
5- from crawlee .configuration import Configuration
67from crawlee .storage_clients ._base import StorageClient
78
89from ._dataset_client import ApifyDatasetClient
910from ._key_value_store_client import ApifyKeyValueStoreClient
1011from ._request_queue_client import ApifyRequestQueueClient
1112
13+ if TYPE_CHECKING :
14+ from crawlee .configuration import Configuration
15+
1216
1317class ApifyStorageClient (StorageClient ):
1418 """Apify storage client."""
@@ -21,8 +25,16 @@ async def create_dataset_client(
2125 name : str | None = None ,
2226 configuration : Configuration | None = None ,
2327 ) -> ApifyDatasetClient :
24- configuration = configuration or Configuration .get_global_configuration ()
25- return await ApifyDatasetClient .open (id = id , name = name , configuration = configuration )
28+ from apify import Configuration as ApifyConfiguration
29+
30+ configuration = configuration or ApifyConfiguration .get_global_configuration ()
31+ if isinstance (configuration , ApifyConfiguration ):
32+ return await ApifyDatasetClient .open (id = id , name = name , configuration = configuration )
33+
34+ raise TypeError (
35+ f'Expected "configuration" to be an instance of "apify.Configuration", '
36+ f'but got { type (configuration ).__name__ } instead.'
37+ )
2638
2739 @override
2840 async def create_kvs_client (
@@ -32,8 +44,16 @@ async def create_kvs_client(
3244 name : str | None = None ,
3345 configuration : Configuration | None = None ,
3446 ) -> ApifyKeyValueStoreClient :
35- configuration = configuration or Configuration .get_global_configuration ()
36- return await ApifyKeyValueStoreClient .open (id = id , name = name , configuration = configuration )
47+ from apify import Configuration as ApifyConfiguration
48+
49+ configuration = configuration or ApifyConfiguration .get_global_configuration ()
50+ if isinstance (configuration , ApifyConfiguration ):
51+ return await ApifyKeyValueStoreClient .open (id = id , name = name , configuration = configuration )
52+
53+ raise TypeError (
54+ f'Expected "configuration" to be an instance of "apify.Configuration", '
55+ f'but got { type (configuration ).__name__ } instead.'
56+ )
3757
3858 @override
3959 async def create_rq_client (
@@ -43,5 +63,13 @@ async def create_rq_client(
4363 name : str | None = None ,
4464 configuration : Configuration | None = None ,
4565 ) -> ApifyRequestQueueClient :
46- configuration = configuration or Configuration .get_global_configuration ()
47- return await ApifyRequestQueueClient .open (id = id , name = name , configuration = configuration )
66+ from apify import Configuration as ApifyConfiguration
67+
68+ configuration = configuration or ApifyConfiguration .get_global_configuration ()
69+ if isinstance (configuration , ApifyConfiguration ):
70+ return await ApifyRequestQueueClient .open (id = id , name = name , configuration = configuration )
71+
72+ raise TypeError (
73+ f'Expected "configuration" to be an instance of "apify.Configuration", '
74+ f'but got { type (configuration ).__name__ } instead.'
75+ )
0 commit comments