4
4
5
5
from typing_extensions import override
6
6
7
- from crawlee import service_container
8
7
from crawlee ._utils .docs import docs_group
9
8
from crawlee .base_storage_client ._models import KeyValueStoreKeyInfo , KeyValueStoreMetadata
10
9
from crawlee .events ._types import Event , EventPersistStateData
16
15
from crawlee ._types import JsonSerializable
17
16
from crawlee .base_storage_client import BaseStorageClient
18
17
from crawlee .configuration import Configuration
18
+ from crawlee .events ._event_manager import EventManager
19
19
20
20
T = TypeVar ('T' )
21
21
@@ -226,12 +226,18 @@ async def _persist_save(self, _event_data: EventPersistStateData | None = None)
226
226
for key , value in self ._cache .items ():
227
227
await self .set_value (key , value )
228
228
229
+ def _get_event_manager (self ) -> EventManager :
230
+ """Get event manager from crawlee services."""
231
+ from crawlee .service_container import get_event_manager
232
+
233
+ return get_event_manager () # type: ignore[no-any-return] # Mypy is broken
234
+
229
235
def _ensure_persist_event (self ) -> None :
230
236
"""Setup persist state event handling if not already done."""
231
237
if self ._persist_state_event_started :
232
238
return
233
239
234
- event_manager = service_container . get_event_manager ()
240
+ event_manager = self . _get_event_manager ()
235
241
event_manager .on (event = Event .PERSIST_STATE , listener = self ._persist_save )
236
242
self ._persist_state_event_started = True
237
243
@@ -242,7 +248,7 @@ def _clear_cache(self) -> None:
242
248
def _drop_persist_state_event (self ) -> None :
243
249
"""Off event_manager listener and drop event status."""
244
250
if self ._persist_state_event_started :
245
- event_manager = service_container . get_event_manager ()
251
+ event_manager = self . _get_event_manager ()
246
252
event_manager .off (event = Event .PERSIST_STATE , listener = self ._persist_save )
247
253
self ._persist_state_event_started = False
248
254
0 commit comments