from __future__ import annotations import sys from typing import Any, Iterator, Literal, TypedDict if sys.version_info <= (3, 11): from typing_extensions import Unpack else: from typing import Unpack HttpMethod = Literal["GET", "HEAD", "OPTIONS", "DELETE", "POST", "PUT", "PATCH"] IMPERSONATE = Literal[ "chrome_100", "chrome_101", "chrome_104", "chrome_105", "chrome_106", "chrome_107", "chrome_108", "chrome_109", "chrome_114", "chrome_116", "chrome_117", "chrome_118", "chrome_119", "chrome_120", "chrome_123", "chrome_124", "chrome_126", "chrome_127", "chrome_128", "chrome_129", "chrome_130", "chrome_131", "chrome_133", "safari_15.3", "safari_15.5", "safari_15.6.1", "safari_16", "safari_16.5", "safari_17.0", "safari_17.2.1", "safari_17.4.1", "safari_17.5", "safari_18", "safari_18.2", "safari_ios_16.5", "safari_ios_17.2", "safari_ios_17.4.1", "safari_ios_18.1.1", "safari_ipad_18", "okhttp_3.9", "okhttp_3.11", "okhttp_3.13", "okhttp_3.14", "okhttp_4.9", "okhttp_4.10", "okhttp_5", "edge_101", "edge_122", "edge_127", "edge_131", "firefox_109", "firefox_117", "firefox_128", "firefox_133", "firefox_135", ] # fmt: skip IMPERSONATE_OS = Literal["android", "ios", "linux", "macos", "windows"] class RequestParams(TypedDict, total=False): auth: tuple[str, str | None] | None auth_bearer: str | None params: dict[str, str] | None headers: dict[str, str] | None cookies: dict[str, str] | None timeout: float | None content: bytes | None data: dict[str, Any] | None json: Any | None files: dict[str, str] | None class ClientRequestParams(RequestParams): impersonate: IMPERSONATE | None impersonate_os: IMPERSONATE_OS | None verify: bool | None ca_cert_file: str | None class Response: @property def content(self) -> bytes: ... @property def cookies(self) -> dict[str, str]: ... @property def headers(self) -> dict[str, str]: ... @property def status_code(self) -> int: ... @property def url(self) -> str: ... @property def encoding(self) -> str: ... @property def text(self) -> str: ... def json(self) -> Any: ... def stream(self) -> Iterator[bytes]: ... @property def text_markdown(self) -> str: ... @property def text_plain(self) -> str: ... @property def text_rich(self) -> str: ... class RClient: def __init__( self, auth: tuple[str, str | None] | None = None, auth_bearer: str | None = None, params: dict[str, str] | None = None, headers: dict[str, str] | None = None, timeout: float | None = None, cookie_store: bool | None = True, referer: bool | None = True, proxy: str | None = None, impersonate: IMPERSONATE | None = None, impersonate_os: IMPERSONATE_OS | None = None, follow_redirects: bool | None = True, max_redirects: int | None = 20, verify: bool | None = True, ca_cert_file: str | None = None, https_only: bool | None = False, http2_only: bool | None = False, ): ... @property def headers(self) -> dict[str, str]: ... @headers.setter def headers(self, headers: dict[str, str]) -> None: ... def get_cookies(self, url: str) -> dict[str, str]: ... def set_cookies(self, url: str, cookies: dict[str, str]) -> None: ... @property def proxy(self) -> str | None: ... @proxy.setter def proxy(self, proxy: str) -> None: ... @property def impersonate(self) -> str | None: ... @impersonate.setter def impersonate(self, impersonate: IMPERSONATE) -> None: ... @property def impersonate_os(self) -> str | None: ... @impersonate_os.setter def impersonate_os(self, impersonate: IMPERSONATE_OS) -> None: ... def request(self, method: HttpMethod, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def get(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def head(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def options(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def delete(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def post(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def put(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def patch(self, url: str, **kwargs: Unpack[RequestParams]) -> Response: ... def request(method: HttpMethod, url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def get(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def head(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def options(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def delete(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def post(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def put(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ... def patch(url: str, **kwargs: Unpack[ClientRequestParams]) -> Response: ...
Memory