77from pathlib import Path
88from typing import Annotated , Any
99
10- from pydantic import AliasChoices , BaseModel , BeforeValidator , Field , model_validator
11- from typing_extensions import Self , deprecated
10+ from pydantic import AliasChoices , BeforeValidator , Field , model_validator
11+ from typing_extensions import Self , TypedDict , deprecated
1212
1313from crawlee import service_locator
1414from crawlee ._utils .models import timedelta_ms
@@ -34,26 +34,24 @@ def _transform_to_list(value: Any) -> list[str] | None:
3434 return value if isinstance (value , list ) else str (value ).split (',' )
3535
3636
37- class ActorStorages (BaseModel ):
38- """Storage IDs for different storage types used by an Actor."""
39-
37+ class ActorStorages (TypedDict ):
4038 key_value_stores : dict [str , str ]
4139 datasets : dict [str , str ]
4240 request_queues : dict [str , str ]
4341
4442
45- def _load_storage_keys (data : None | str | dict | ActorStorages ) -> ActorStorages | None :
46- """Load storage keys from environment."""
43+ def _load_storage_keys (
44+ data : None | str | ActorStorages ,
45+ ) -> ActorStorages | None :
46+ """Load storage keys."""
4747 if data is None :
4848 return None
49- if isinstance (data , ActorStorages ):
50- return data
51- storage_mapping = data if isinstance (data , dict ) else json .loads (data )
52- return ActorStorages (
53- key_value_stores = storage_mapping .get ('keyValueStores' , {}),
54- datasets = storage_mapping .get ('datasets' , {}),
55- request_queues = storage_mapping .get ('requestQueues' , {}),
56- )
49+ storage_mapping = json .loads (data ) if isinstance (data , str ) else data
50+ return {
51+ 'key_value_stores' : storage_mapping .get ('keyValueStores' , storage_mapping .get ('key_value_stores' , {})),
52+ 'datasets' : storage_mapping .get ('datasets' , storage_mapping .get ('datasets' , {})),
53+ 'request_queues' : storage_mapping .get ('requestQueues' , storage_mapping .get ('request_queues' , {})),
54+ }
5755
5856
5957@docs_group ('Configuration' )
0 commit comments