Initialize the recoverable state. This method must be called before using the recoverable state. It loads the saved state if persistence is enabled and registers the object to listen for PERSIST_STATE events. Returns: The loaded state model
(self)
| 91 | self._log = logger |
| 92 | |
| 93 | async def initialize(self) -> TStateModel: |
| 94 | """Initialize the recoverable state. |
| 95 | |
| 96 | This method must be called before using the recoverable state. It loads the saved state |
| 97 | if persistence is enabled and registers the object to listen for PERSIST_STATE events. |
| 98 | |
| 99 | Returns: |
| 100 | The loaded state model |
| 101 | """ |
| 102 | if self._persistence_enabled is False: |
| 103 | self._state = self._default_state.model_copy(deep=True) |
| 104 | return self.current_value |
| 105 | |
| 106 | # Import here to avoid circular imports. |
| 107 | |
| 108 | self._key_value_store = await self._persist_state_kvs_factory() |
| 109 | |
| 110 | await self._load_saved_state() |
| 111 | |
| 112 | if self._persistence_enabled is True: |
| 113 | # Import here to avoid circular imports. |
| 114 | from crawlee import service_locator # noqa: PLC0415 |
| 115 | |
| 116 | event_manager = service_locator.get_event_manager() |
| 117 | event_manager.on(event=Event.PERSIST_STATE, listener=self.persist_state) |
| 118 | |
| 119 | return self.current_value |
| 120 | |
| 121 | async def teardown(self) -> None: |
| 122 | """Clean up resources used by the recoverable state. |