diff --git a/scrapling/engines/_browsers/_base.py b/scrapling/engines/_browsers/_base.py index 15371f7..fa95419 100644 --- a/scrapling/engines/_browsers/_base.py +++ b/scrapling/engines/_browsers/_base.py @@ -28,6 +28,7 @@ from scrapling.engines.toolbelt.navigation import ( ) from scrapling.core._types import ( Any, + Awaitable, Dict, List, Set, @@ -152,7 +153,7 @@ class SyncSession: response_container: List, xhr_pattern: Optional[str] = None, xhr_container: Optional[List] = None, - ) -> Callable: + ) -> Callable[[SyncPlaywrightResponse], None]: """Create a response handler that captures the final navigation response and optionally XHR/fetch responses. :param page_info: The PageInfo object containing the page @@ -162,7 +163,7 @@ class SyncSession: :return: A callback function for page.on("response", ...) """ - def handle_response(finished_response: SyncPlaywrightResponse): + def handle_response(finished_response: SyncPlaywrightResponse) -> None: if ( finished_response.request.resource_type == "document" and finished_response.request.is_navigation_request() @@ -337,7 +338,7 @@ class AsyncSession: response_container: List, xhr_pattern: Optional[str] = None, xhr_container: Optional[List] = None, - ) -> Callable: + ) -> Callable[[AsyncPlaywrightResponse], Awaitable[None]]: """Create an async response handler that captures the final navigation response and optionally XHR/fetch responses. :param page_info: The PageInfo object containing the page @@ -347,7 +348,7 @@ class AsyncSession: :return: A callback function for page.on("response", ...) """ - async def handle_response(finished_response: AsyncPlaywrightResponse): + async def handle_response(finished_response: AsyncPlaywrightResponse) -> None: if ( finished_response.request.resource_type == "document" and finished_response.request.is_navigation_request() diff --git a/scrapling/engines/_browsers/_controllers.py b/scrapling/engines/_browsers/_controllers.py index f788819..ce4b643 100644 --- a/scrapling/engines/_browsers/_controllers.py +++ b/scrapling/engines/_browsers/_controllers.py @@ -11,7 +11,7 @@ from playwright.async_api import ( ) from scrapling.core.utils import log -from scrapling.core._types import Optional, ProxyType, Unpack +from scrapling.core._types import Optional, List, ProxyType, Unpack from scrapling.engines.toolbelt.proxy_rotation import is_proxy_error from scrapling.engines.toolbelt.convertor import Response, ResponseFactory from scrapling.engines._browsers._types import PlaywrightSession, PlaywrightFetchParams @@ -139,7 +139,8 @@ class DynamicSession(SyncSession, DynamicSessionMixin): with self._page_generator( params.timeout, params.extra_headers, params.disable_resources, proxy, params.blocked_domains ) as page_info: - final_response, xhr_captured = [None], [] + final_response: List = [None] + xhr_captured: List = [] page = page_info.page page.on( "response", @@ -319,7 +320,8 @@ class AsyncDynamicSession(AsyncSession, DynamicSessionMixin): async with self._page_generator( params.timeout, params.extra_headers, params.disable_resources, proxy, params.blocked_domains ) as page_info: - final_response, xhr_captured = [None], [] + final_response: List = [None] + xhr_captured: List = [] page = page_info.page page.on( "response", diff --git a/scrapling/engines/_browsers/_stealth.py b/scrapling/engines/_browsers/_stealth.py index ef3a445..f06c62e 100644 --- a/scrapling/engines/_browsers/_stealth.py +++ b/scrapling/engines/_browsers/_stealth.py @@ -9,7 +9,7 @@ from patchright.sync_api import sync_playwright from patchright.async_api import async_playwright from scrapling.core.utils import log -from scrapling.core._types import Any, Optional, ProxyType, Unpack +from scrapling.core._types import Any, List, Optional, ProxyType, Unpack from scrapling.engines.toolbelt.proxy_rotation import is_proxy_error from scrapling.engines.toolbelt.convertor import Response, ResponseFactory from scrapling.engines._browsers._types import StealthSession, StealthFetchParams @@ -222,7 +222,8 @@ class StealthySession(SyncSession, StealthySessionMixin): with self._page_generator( params.timeout, params.extra_headers, params.disable_resources, proxy, params.blocked_domains ) as page_info: - final_response, xhr_captured = [None], [] + final_response: List = [None] + xhr_captured: List = [] page = page_info.page page.on( "response", @@ -489,7 +490,8 @@ class AsyncStealthySession(AsyncSession, StealthySessionMixin): async with self._page_generator( params.timeout, params.extra_headers, params.disable_resources, proxy, params.blocked_domains ) as page_info: - final_response, xhr_captured = [None], [] + final_response: List = [None] + xhr_captured: List = [] page = page_info.page page.on( "response",