MCPcopy Create free account
hub / github.com/apify/crawlee-python / __init__

Method __init__

src/crawlee/sessions/_session_pool.py:36–84  ·  view source on GitHub ↗

Initialize a new instance. Args: max_pool_size: Maximum number of sessions to maintain in the pool. You can add more sessions to the pool by using the `add_session` method. create_session_settings: Settings for creating new session instances. If None,

(
        self,
        *,
        max_pool_size: int = 1000,
        create_session_settings: dict | None = None,
        create_session_function: CreateSessionFunctionType | None = None,
        event_manager: EventManager | None = None,
        persistence_enabled: bool = False,
        persist_state_kvs_name: str | None = None,
        persist_state_key: str = 'CRAWLEE_SESSION_POOL_STATE',
    )

Source from the content-addressed store, hash-verified

34 """
35
36 def __init__(
37 self,
38 *,
39 max_pool_size: int = 1000,
40 create_session_settings: dict | None = None,
41 create_session_function: CreateSessionFunctionType | None = None,
42 event_manager: EventManager | None = None,
43 persistence_enabled: bool = False,
44 persist_state_kvs_name: str | None = None,
45 persist_state_key: str = 'CRAWLEE_SESSION_POOL_STATE',
46 ) -> None:
47 """Initialize a new instance.
48
49 Args:
50 max_pool_size: Maximum number of sessions to maintain in the pool. You can add more sessions to the pool
51 by using the `add_session` method.
52 create_session_settings: Settings for creating new session instances. If None, default settings will
53 be used. Do not set it if you are providing a `create_session_function`.
54 create_session_function: A callable to create new session instances. If None, a default session settings
55 will be used. Do not set it if you are providing `create_session_settings`.
56 event_manager: The event manager to handle events like persist state.
57 persistence_enabled: Flag to enable or disable state persistence of the pool.
58 persist_state_kvs_name: The name of the `KeyValueStore` used for state persistence.
59 persist_state_key: The key under which the session pool's state is stored in the `KeyValueStore`.
60 """
61 if event_manager:
62 service_locator.set_event_manager(event_manager)
63
64 self._state = RecoverableState(
65 default_state=SessionPoolModel(
66 max_pool_size=max_pool_size,
67 sessions={},
68 ),
69 logger=logger,
70 persistence_enabled=persistence_enabled,
71 persist_state_kvs_name=persist_state_kvs_name,
72 persist_state_key=persist_state_key or 'CRAWLEE_SESSION_POOL_STATE',
73 )
74
75 self._max_pool_size = max_pool_size
76 self._session_settings = create_session_settings or {}
77 self._create_session_function = create_session_function
78 self._persistence_enabled = persistence_enabled
79
80 if self._create_session_function and self._session_settings:
81 raise ValueError('Both `create_session_settings` and `create_session_function` cannot be provided.')
82
83 # Flag to indicate the context state.
84 self._active = False
85
86 def __repr__(self) -> str:
87 """Get a string representation."""

Callers

nothing calls this directly

Calls 3

RecoverableStateClass · 0.90
SessionPoolModelClass · 0.90
set_event_managerMethod · 0.80

Tested by

no test coverage detected