from scrapling.core._types import ( Dict, Any, List, Tuple, Optional, ) # Parameter definitions for shell function signatures (defined once at module level) # Mirrors TypedDict definitions from _types.py but runtime-accessible for IPython introspection _REQUESTS_PARAMS = { "params": Optional[Dict | List | Tuple], "cookies": Any, "auth": Optional[Tuple[str, str]], "impersonate": Any, "http3": Optional[bool], "stealthy_headers": Optional[bool], "proxies": Any, "proxy": Optional[str], "proxy_auth": Optional[Tuple[str, str]], "timeout": Optional[int | float], "headers": Any, "retries": Optional[int], "retry_delay": Optional[int], "follow_redirects": Optional[bool], "max_redirects": Optional[int], "verify": Optional[bool], "cert": Optional[str | Tuple[str, str]], "selector_config": Optional[Dict], } _FETCH_PARAMS = { "headless": bool, "google_search": bool, "hide_canvas": bool, "disable_webgl": bool, "real_chrome": bool, "stealth": bool, "wait": int | float, "page_action": Optional[Any], "proxy": Optional[str | Dict], "locale": str, "extra_headers": Optional[Dict[str, str]], "useragent": Optional[str], "cdp_url": Optional[str], "timeout": int | float, "disable_resources": bool, "wait_selector": Optional[str], "init_script": Optional[str], "cookies": Optional[List[Dict]], "network_idle": bool, "load_dom": bool, "wait_selector_state": Any, "extra_flags": Optional[List[str]], "additional_args": Optional[Dict], "custom_config": Optional[Dict], } _STEALTHY_FETCH_PARAMS = { "headless": bool, "block_images": bool, "disable_resources": bool, "block_webrtc": bool, "allow_webgl": bool, "network_idle": bool, "load_dom": bool, "humanize": bool | float, "solve_cloudflare": bool, "wait": int | float, "timeout": int | float, "page_action": Optional[Any], "wait_selector": Optional[str], "init_script": Optional[str], "addons": Optional[List[str]], "wait_selector_state": Any, "cookies": Optional[List[Dict]], "google_search": bool, "extra_headers": Optional[Dict[str, str]], "proxy": Optional[str | Dict], "os_randomize": bool, "disable_ads": bool, "geoip": bool, "custom_config": Optional[Dict], "additional_args": Optional[Dict], } # Mapping of function names to their parameter definitions Signatures_map = { "get": _REQUESTS_PARAMS, "post": {**_REQUESTS_PARAMS, "data": Optional[Dict | str], "json": Optional[Dict | List]}, "put": {**_REQUESTS_PARAMS, "data": Optional[Dict | str], "json": Optional[Dict | List]}, "delete": _REQUESTS_PARAMS, "fetch": _FETCH_PARAMS, "stealthy_fetch": _STEALTHY_FETCH_PARAMS, }