fix(shell): dynamically build the signature of shortcuts after last changes
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user