Skip to content

Commit 51178ca

Browse files
committed
better usage of apify config
1 parent e45d65b commit 51178ca

File tree

4 files changed

+50
-19
lines changed

4 files changed

+50
-19
lines changed

src/apify/storage_clients/_apify/_dataset_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
from apify_client.clients import DatasetClientAsync
1919
from crawlee._types import JsonSerializable
20-
from crawlee.configuration import Configuration
20+
21+
from apify import Configuration
2122

2223
logger = getLogger(__name__)
2324

@@ -89,15 +90,15 @@ async def open(
8990
are provided, or if neither `id` nor `name` is provided and no default storage ID is available in
9091
the configuration.
9192
"""
92-
token = getattr(configuration, 'token', None)
93+
token = configuration.token
9394
if not token:
9495
raise ValueError(f'Apify storage client requires a valid token in Configuration (token={token}).')
9596

96-
api_url = getattr(configuration, 'api_base_url', None)
97+
api_url = configuration.api_base_url
9798
if not api_url:
9899
raise ValueError(f'Apify storage client requires a valid API URL in Configuration (api_url={api_url}).')
99100

100-
api_public_base_url = getattr(configuration, 'api_public_base_url', None)
101+
api_public_base_url = configuration.api_public_base_url
101102
if not api_public_base_url:
102103
raise ValueError(
103104
'Apify storage client requires a valid API public base URL in Configuration '

src/apify/storage_clients/_apify/_key_value_store_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
from collections.abc import AsyncIterator
1919

2020
from apify_client.clients import KeyValueStoreClientAsync
21-
from crawlee.configuration import Configuration
21+
22+
from apify import Configuration
2223

2324
logger = getLogger(__name__)
2425

@@ -81,15 +82,15 @@ async def open(
8182
are provided, or if neither `id` nor `name` is provided and no default storage ID is available
8283
in the configuration.
8384
"""
84-
token = getattr(configuration, 'token', None)
85+
token = configuration.token
8586
if not token:
8687
raise ValueError(f'Apify storage client requires a valid token in Configuration (token={token}).')
8788

88-
api_url = getattr(configuration, 'api_base_url', None)
89+
api_url = configuration.api_base_url
8990
if not api_url:
9091
raise ValueError(f'Apify storage client requires a valid API URL in Configuration (api_url={api_url}).')
9192

92-
api_public_base_url = getattr(configuration, 'api_public_base_url', None)
93+
api_public_base_url = configuration.api_public_base_url
9394
if not api_public_base_url:
9495
raise ValueError(
9596
'Apify storage client requires a valid API public base URL in Configuration '

src/apify/storage_clients/_apify/_request_queue_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
from collections.abc import Sequence
2222

2323
from apify_client.clients import RequestQueueClientAsync
24-
from crawlee.configuration import Configuration
24+
25+
from apify import Configuration
2526

2627
logger = getLogger(__name__)
2728

@@ -106,15 +107,15 @@ async def open(
106107
are provided, or if neither `id` nor `name` is provided and no default storage ID is available
107108
in the configuration.
108109
"""
109-
token = getattr(configuration, 'token', None)
110+
token = configuration.token
110111
if not token:
111112
raise ValueError(f'Apify storage client requires a valid token in Configuration (token={token}).')
112113

113-
api_url = getattr(configuration, 'api_base_url', None)
114+
api_url = configuration.api_base_url
114115
if not api_url:
115116
raise ValueError(f'Apify storage client requires a valid API URL in Configuration (api_url={api_url}).')
116117

117-
api_public_base_url = getattr(configuration, 'api_public_base_url', None)
118+
api_public_base_url = configuration.api_public_base_url
118119
if not api_public_base_url:
119120
raise ValueError(
120121
'Apify storage client requires a valid API public base URL in Configuration '

src/apify/storage_clients/_apify/_storage_client.py

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
from __future__ import annotations
22

3+
from typing import TYPE_CHECKING
4+
35
from typing_extensions import override
46

5-
from crawlee.configuration import Configuration
67
from crawlee.storage_clients._base import StorageClient
78

89
from ._dataset_client import ApifyDatasetClient
910
from ._key_value_store_client import ApifyKeyValueStoreClient
1011
from ._request_queue_client import ApifyRequestQueueClient
1112

13+
if TYPE_CHECKING:
14+
from crawlee.configuration import Configuration
15+
1216

1317
class 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

Comments
 (0)