aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/requests-stubs
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/requests-stubs
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/requests-stubs')
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/METADATA.toml13
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/__init__.pyi39
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/__version__.pyi12
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/adapters.pyi109
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/api.pyi155
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/auth.pyi39
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/certs.pyi1
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/compat.pyi26
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/cookies.pyi62
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/exceptions.pyi42
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/help.pyi34
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/hooks.pyi6
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/models.pyi167
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/packages.pyi3
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/py.typed0
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/sessions.pyi316
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/status_codes.pyi3
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/structures.pyi25
-rw-r--r--.venv/lib/python3.12/site-packages/requests-stubs/utils.pyi70
19 files changed, 1122 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/METADATA.toml b/.venv/lib/python3.12/site-packages/requests-stubs/METADATA.toml
new file mode 100644
index 00000000..a36e323e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/METADATA.toml
@@ -0,0 +1,13 @@
+version = "2.32.*"
+upstream_repository = "https://github.com/psf/requests"
+# requires a version of urllib3 with a py.typed file
+requires = ["urllib3>=2"]
+extra_description = """\
+ Note: `types-requests` has required `urllib3>=2` since v2.31.0.7. \
+ If you need to install `types-requests` into an environment \
+ that must also have `urllib3<2` installed into it, \
+ you will have to use `types-requests<2.31.0.7`.\
+ """
+
+[tool.stubtest]
+extras = ["socks"]
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/__init__.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/__init__.pyi
new file mode 100644
index 00000000..199c59e9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/__init__.pyi
@@ -0,0 +1,39 @@
+from . import __version__ as version_mod, packages as packages, utils as utils
+from .api import (
+ delete as delete,
+ get as get,
+ head as head,
+ options as options,
+ patch as patch,
+ post as post,
+ put as put,
+ request as request,
+)
+from .exceptions import (
+ ConnectionError as ConnectionError,
+ ConnectTimeout as ConnectTimeout,
+ FileModeWarning as FileModeWarning,
+ HTTPError as HTTPError,
+ JSONDecodeError as JSONDecodeError,
+ ReadTimeout as ReadTimeout,
+ RequestException as RequestException,
+ Timeout as Timeout,
+ TooManyRedirects as TooManyRedirects,
+ URLRequired as URLRequired,
+)
+from .models import PreparedRequest as PreparedRequest, Request as Request, Response as Response
+from .sessions import Session as Session, session as session
+from .status_codes import codes as codes
+
+__author__ = version_mod.__author__
+__author_email__ = version_mod.__author_email__
+__build__ = version_mod.__build__
+__cake__ = version_mod.__cake__
+__copyright__ = version_mod.__copyright__
+__description__ = version_mod.__description__
+__license__ = version_mod.__license__
+__title__ = version_mod.__title__
+__url__ = version_mod.__url__
+__version__ = version_mod.__version__
+
+def check_compatibility(urllib3_version: str, chardet_version: str | None, charset_normalizer_version: str | None) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/__version__.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/__version__.pyi
new file mode 100644
index 00000000..05c93ebc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/__version__.pyi
@@ -0,0 +1,12 @@
+from typing import Final
+
+__title__: Final = "requests"
+__description__: Final[str]
+__url__: Final[str]
+__version__: Final[str]
+__build__: Final[int]
+__author__: Final[str]
+__author_email__: Final[str]
+__license__: Final[str]
+__copyright__: Final[str]
+__cake__: Final[str]
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/adapters.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/adapters.pyi
new file mode 100644
index 00000000..2f8e4d75
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/adapters.pyi
@@ -0,0 +1,109 @@
+from _typeshed import Incomplete
+from collections.abc import Mapping
+from ssl import SSLContext
+from typing import Literal, TypedDict
+from typing_extensions import NotRequired, deprecated
+
+import urllib3
+from urllib3.connectionpool import ConnectionPool
+from urllib3.contrib.socks import SOCKSProxyManager as SOCKSProxyManager
+from urllib3.exceptions import (
+ ConnectTimeoutError as ConnectTimeoutError,
+ MaxRetryError as MaxRetryError,
+ ProtocolError as ProtocolError,
+ ReadTimeoutError as ReadTimeoutError,
+ ResponseError as ResponseError,
+)
+from urllib3.poolmanager import PoolManager as PoolManager, proxy_from_url as proxy_from_url
+from urllib3.util.retry import Retry as Retry
+
+from .cookies import extract_cookies_to_jar as extract_cookies_to_jar
+from .exceptions import (
+ ConnectionError as ConnectionError,
+ ConnectTimeout as ConnectTimeout,
+ ProxyError as ProxyError,
+ ReadTimeout as ReadTimeout,
+ RetryError as RetryError,
+ SSLError as SSLError,
+)
+from .models import PreparedRequest, Response as Response
+from .structures import CaseInsensitiveDict as CaseInsensitiveDict
+from .utils import (
+ DEFAULT_CA_BUNDLE_PATH as DEFAULT_CA_BUNDLE_PATH,
+ _Uri,
+ get_auth_from_url as get_auth_from_url,
+ get_encoding_from_headers as get_encoding_from_headers,
+ prepend_scheme_if_needed as prepend_scheme_if_needed,
+ urldefragauth as urldefragauth,
+)
+
+# Arguments to urllib3 connection_from_host() functions (except pool_kwargs).
+class _HostParams(TypedDict):
+ host: str
+ scheme: str
+ port: int
+
+class _PoolKwargs(TypedDict):
+ ssl_context: NotRequired[SSLContext]
+ ca_certs: NotRequired[str]
+ ca_cert_dir: NotRequired[str]
+ cert_reqs: Literal["CERT_REQUIRED", "CERT_NONE"]
+ cert_file: NotRequired[str]
+ key_file: NotRequired[str]
+
+DEFAULT_POOLBLOCK: bool
+DEFAULT_POOLSIZE: int
+DEFAULT_RETRIES: int
+DEFAULT_POOL_TIMEOUT: float | None
+
+class BaseAdapter:
+ def __init__(self) -> None: ...
+ def send(
+ self,
+ request: PreparedRequest,
+ stream: bool = False,
+ timeout: None | float | tuple[float, float] | tuple[float, None] = None,
+ verify: bool | str = True,
+ cert: None | bytes | str | tuple[bytes | str, bytes | str] = None,
+ proxies: Mapping[str, str] | None = None,
+ ) -> Response: ...
+ def close(self) -> None: ...
+
+class HTTPAdapter(BaseAdapter):
+ __attrs__: Incomplete
+ max_retries: Retry
+ config: Incomplete
+ proxy_manager: Incomplete
+ def __init__(
+ self, pool_connections: int = 10, pool_maxsize: int = 10, max_retries: Retry | int | None = 0, pool_block: bool = False
+ ) -> None: ...
+ poolmanager: Incomplete
+ def init_poolmanager(self, connections, maxsize, block=False, **pool_kwargs): ...
+ def proxy_manager_for(self, proxy, **proxy_kwargs): ...
+ def cert_verify(self, conn, url, verify, cert): ...
+ def build_response(self, req: PreparedRequest, resp: urllib3.BaseHTTPResponse) -> Response: ...
+ def build_connection_pool_key_attributes(
+ self, request: PreparedRequest, verify: bool | str, cert: str | tuple[str, str] | None = None
+ ) -> tuple[_HostParams, _PoolKwargs]: ...
+ def get_connection_with_tls_context(
+ self,
+ request: PreparedRequest,
+ verify: bool | str | None,
+ proxies: Mapping[str, str] | None = None,
+ cert: tuple[str, str] | str | None = None,
+ ) -> ConnectionPool: ...
+ @deprecated("Use get_connection_with_tls_context() instead.")
+ def get_connection(self, url: _Uri, proxies: Mapping[str, str] | None = None) -> ConnectionPool: ...
+ def close(self): ...
+ def request_url(self, request, proxies): ...
+ def add_headers(self, request, **kwargs): ...
+ def proxy_headers(self, proxy): ...
+ def send(
+ self,
+ request: PreparedRequest,
+ stream: bool = False,
+ timeout: None | float | tuple[float, float] | tuple[float, None] = None,
+ verify: bool | str = True,
+ cert: None | bytes | str | tuple[bytes | str, bytes | str] = None,
+ proxies: Mapping[str, str] | None = None,
+ ) -> Response: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/api.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/api.pyi
new file mode 100644
index 00000000..02ecab01
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/api.pyi
@@ -0,0 +1,155 @@
+from _typeshed import Incomplete
+from collections.abc import Mapping
+from http.cookiejar import CookieJar
+from typing_extensions import TypeAlias
+
+from .models import Response
+from .sessions import _Auth, _Cert, _Data, _Files, _HooksInput, _Params, _TextMapping, _Timeout, _Verify
+
+_HeadersMapping: TypeAlias = Mapping[str, str | bytes | None]
+
+def request(
+ method: str | bytes,
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def get(
+ url: str | bytes,
+ params: _Params | None = None,
+ *,
+ data: _Data | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def options(
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def head(
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def post(
+ url: str | bytes,
+ data: _Data | None = None,
+ json: Incomplete | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+) -> Response: ...
+def put(
+ url: str | bytes,
+ data: _Data | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def patch(
+ url: str | bytes,
+ data: _Data | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
+def delete(
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersMapping | None = ...,
+ cookies: CookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+) -> Response: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/auth.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/auth.pyi
new file mode 100644
index 00000000..21ef4abf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/auth.pyi
@@ -0,0 +1,39 @@
+from typing import Any
+
+from . import cookies, models, utils
+
+extract_cookies_to_jar = cookies.extract_cookies_to_jar
+parse_dict_header = utils.parse_dict_header
+to_native_string = utils.to_native_string
+
+CONTENT_TYPE_FORM_URLENCODED: Any
+CONTENT_TYPE_MULTI_PART: Any
+
+def _basic_auth_str(username: bytes | str, password: bytes | str) -> str: ...
+
+class AuthBase:
+ def __call__(self, r: models.PreparedRequest) -> models.PreparedRequest: ...
+
+class HTTPBasicAuth(AuthBase):
+ username: bytes | str
+ password: bytes | str
+ def __init__(self, username: bytes | str, password: bytes | str) -> None: ...
+ def __call__(self, r): ...
+
+class HTTPProxyAuth(HTTPBasicAuth):
+ def __call__(self, r): ...
+
+class HTTPDigestAuth(AuthBase):
+ username: bytes | str
+ password: bytes | str
+ last_nonce: Any
+ nonce_count: Any
+ chal: Any
+ pos: Any
+ num_401_calls: Any
+ def __init__(self, username: bytes | str, password: bytes | str) -> None: ...
+ def build_digest_header(self, method, url): ...
+ def handle_redirect(self, r, **kwargs): ...
+ def handle_401(self, r, **kwargs): ...
+ def __call__(self, r): ...
+ def init_per_thread_state(self) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/certs.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/certs.pyi
new file mode 100644
index 00000000..7c5857d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/certs.pyi
@@ -0,0 +1 @@
+# no public data
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/compat.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/compat.pyi
new file mode 100644
index 00000000..2494dde8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/compat.pyi
@@ -0,0 +1,26 @@
+from builtins import bytes as bytes, str as str
+from collections import OrderedDict as OrderedDict
+from typing import Literal
+from typing_extensions import TypeAlias
+from urllib.parse import (
+ quote as quote,
+ quote_plus as quote_plus,
+ unquote as unquote,
+ unquote_plus as unquote_plus,
+ urldefrag as urldefrag,
+ urlencode as urlencode,
+ urljoin as urljoin,
+ urlparse as urlparse,
+ urlsplit as urlsplit,
+ urlunparse as urlunparse,
+)
+from urllib.request import getproxies as getproxies, parse_http_list as parse_http_list, proxy_bypass as proxy_bypass
+
+is_py2: Literal[False]
+is_py3: Literal[True]
+has_simplejson: bool
+
+builtin_str: TypeAlias = str # noqa: Y042
+basestring: tuple[type, ...]
+numeric_types: tuple[type, ...]
+integer_types: tuple[type, ...]
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/cookies.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/cookies.pyi
new file mode 100644
index 00000000..dc0138d8
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/cookies.pyi
@@ -0,0 +1,62 @@
+from _typeshed import SupportsKeysAndGetItem
+from collections.abc import Iterator, MutableMapping
+from http.cookiejar import Cookie, CookieJar, CookiePolicy
+from http.cookies import Morsel
+from typing import Any
+
+class MockRequest:
+ type: Any
+ def __init__(self, request) -> None: ...
+ def get_type(self): ...
+ def get_host(self): ...
+ def get_origin_req_host(self): ...
+ def get_full_url(self): ...
+ def is_unverifiable(self): ...
+ def has_header(self, name): ...
+ def get_header(self, name, default=None): ...
+ def add_header(self, key, val): ...
+ def add_unredirected_header(self, name, value): ...
+ def get_new_headers(self): ...
+ @property
+ def unverifiable(self): ...
+ @property
+ def origin_req_host(self): ...
+ @property
+ def host(self): ...
+
+class MockResponse:
+ def __init__(self, headers) -> None: ...
+ def info(self): ...
+ def getheaders(self, name): ...
+
+def extract_cookies_to_jar(jar, request, response): ...
+def get_cookie_header(jar, request): ...
+def remove_cookie_by_name(cookiejar, name, domain=None, path=None): ...
+
+class CookieConflictError(RuntimeError): ...
+
+class RequestsCookieJar(CookieJar, MutableMapping[str, str]): # type: ignore[misc] # conflicting __iter__ in the base classes
+ def get(self, name: str, default: str | None = None, domain: str | None = None, path: str | None = None) -> str | None: ... # type: ignore[override]
+ def set(self, name: str, value: str | Morsel[dict[str, str]], **kwargs) -> Cookie | None: ...
+ def iterkeys(self) -> Iterator[str]: ...
+ def keys(self) -> list[str]: ... # type: ignore[override]
+ def itervalues(self) -> Iterator[str]: ...
+ def values(self) -> list[str]: ... # type: ignore[override]
+ def iteritems(self) -> Iterator[tuple[str, str]]: ...
+ def items(self) -> list[tuple[str, str]]: ... # type: ignore[override]
+ def list_domains(self) -> list[str]: ...
+ def list_paths(self) -> list[str]: ...
+ def multiple_domains(self) -> bool: ...
+ def get_dict(self, domain: str | None = None, path: str | None = None) -> dict[str, str]: ...
+ def __getitem__(self, name: str) -> str: ...
+ def __setitem__(self, name: str, value: str | Morsel[dict[str, str]]) -> None: ...
+ def __delitem__(self, name: str) -> None: ...
+ def set_cookie(self, cookie: Cookie, *args, **kwargs): ...
+ def update(self, other: CookieJar | SupportsKeysAndGetItem[str, str]): ... # type: ignore[override]
+ def copy(self) -> RequestsCookieJar: ...
+ def get_policy(self) -> CookiePolicy: ...
+
+def create_cookie(name, value, **kwargs): ...
+def morsel_to_cookie(morsel): ...
+def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): ...
+def merge_cookies(cookiejar, cookies): ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/exceptions.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/exceptions.pyi
new file mode 100644
index 00000000..130bce72
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/exceptions.pyi
@@ -0,0 +1,42 @@
+from typing import Any
+
+from urllib3.exceptions import HTTPError as BaseHTTPError
+
+from .models import Request, Response
+from .sessions import PreparedRequest
+
+class RequestException(OSError):
+ response: Response | None
+ request: Request | PreparedRequest | None
+ def __init__(
+ self, *args: object, request: Request | PreparedRequest | None = ..., response: Response | None = ...
+ ) -> None: ...
+
+class InvalidJSONError(RequestException): ...
+class JSONDecodeError(InvalidJSONError): ...
+
+class HTTPError(RequestException):
+ request: Request | PreparedRequest | Any
+ response: Response | Any
+
+class ConnectionError(RequestException): ...
+class ProxyError(ConnectionError): ...
+class SSLError(ConnectionError): ...
+class Timeout(RequestException): ...
+class ConnectTimeout(ConnectionError, Timeout): ...
+class ReadTimeout(Timeout): ...
+class URLRequired(RequestException): ...
+class TooManyRedirects(RequestException): ...
+class MissingSchema(RequestException, ValueError): ...
+class InvalidSchema(RequestException, ValueError): ...
+class InvalidURL(RequestException, ValueError): ...
+class InvalidHeader(RequestException, ValueError): ...
+class InvalidProxyURL(InvalidURL): ...
+class ChunkedEncodingError(RequestException): ...
+class ContentDecodingError(RequestException, BaseHTTPError): ...
+class StreamConsumedError(RequestException, TypeError): ...
+class RetryError(RequestException): ...
+class UnrewindableBodyError(RequestException): ...
+class RequestsWarning(Warning): ...
+class FileModeWarning(RequestsWarning, DeprecationWarning): ...
+class RequestsDependencyWarning(RequestsWarning): ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/help.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/help.pyi
new file mode 100644
index 00000000..f36d62ff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/help.pyi
@@ -0,0 +1,34 @@
+from typing import TypedDict
+
+class _VersionDict(TypedDict):
+ version: str
+
+class _OptionalVersionDict(TypedDict):
+ version: str | None
+
+class _PlatformDict(TypedDict):
+ system: str
+ release: str
+
+class _ImplementationDict(_VersionDict):
+ name: str
+
+class _PyOpenSSLDict(_OptionalVersionDict):
+ openssl_version: str
+
+class _InfoDict(TypedDict):
+ platform: _PlatformDict
+ implementation: _ImplementationDict
+ system_ssl: _VersionDict
+ using_pyopenssl: bool
+ using_charset_normalizer: bool
+ pyOpenSSL: _PyOpenSSLDict
+ urllib3: _VersionDict
+ chardet: _OptionalVersionDict
+ charset_normalizer: _OptionalVersionDict
+ cryptography: _VersionDict
+ idna: _VersionDict
+ requests: _VersionDict
+
+def info() -> _InfoDict: ...
+def main() -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/hooks.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/hooks.pyi
new file mode 100644
index 00000000..f706016c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/hooks.pyi
@@ -0,0 +1,6 @@
+from typing import Any
+
+HOOKS: Any
+
+def default_hooks(): ...
+def dispatch_hook(key, hooks, hook_data, **kwargs): ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/models.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/models.pyi
new file mode 100644
index 00000000..d95a7382
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/models.pyi
@@ -0,0 +1,167 @@
+import datetime
+from _typeshed import Incomplete, MaybeNone, Unused
+from collections.abc import Callable, Iterator
+from json import JSONDecoder
+from typing import Any
+from typing_extensions import Self
+
+from urllib3 import exceptions as urllib3_exceptions, fields, filepost, util
+from urllib3.response import HTTPResponse
+
+from . import auth, cookies, exceptions, hooks, status_codes, utils
+from .adapters import HTTPAdapter
+from .cookies import RequestsCookieJar
+from .structures import CaseInsensitiveDict as CaseInsensitiveDict
+
+default_hooks = hooks.default_hooks
+HTTPBasicAuth = auth.HTTPBasicAuth
+cookiejar_from_dict = cookies.cookiejar_from_dict
+get_cookie_header = cookies.get_cookie_header
+RequestField = fields.RequestField
+encode_multipart_formdata = filepost.encode_multipart_formdata
+parse_url = util.parse_url
+DecodeError = urllib3_exceptions.DecodeError
+ReadTimeoutError = urllib3_exceptions.ReadTimeoutError
+ProtocolError = urllib3_exceptions.ProtocolError
+LocationParseError = urllib3_exceptions.LocationParseError
+HTTPError = exceptions.HTTPError
+MissingSchema = exceptions.MissingSchema
+InvalidURL = exceptions.InvalidURL
+ChunkedEncodingError = exceptions.ChunkedEncodingError
+ContentDecodingError = exceptions.ContentDecodingError
+ConnectionError = exceptions.ConnectionError
+StreamConsumedError = exceptions.StreamConsumedError
+guess_filename = utils.guess_filename
+get_auth_from_url = utils.get_auth_from_url
+requote_uri = utils.requote_uri
+stream_decode_response_unicode = utils.stream_decode_response_unicode
+to_key_val_list = utils.to_key_val_list
+parse_header_links = utils.parse_header_links
+iter_slices = utils.iter_slices
+guess_json_utf = utils.guess_json_utf
+super_len = utils.super_len
+to_native_string = utils.to_native_string
+codes = status_codes.codes
+
+REDIRECT_STATI: Incomplete
+DEFAULT_REDIRECT_LIMIT: Incomplete
+CONTENT_CHUNK_SIZE: Incomplete
+ITER_CHUNK_SIZE: Incomplete
+
+class RequestEncodingMixin:
+ @property
+ def path_url(self) -> str: ...
+
+class RequestHooksMixin:
+ def register_hook(self, event, hook): ...
+ def deregister_hook(self, event, hook): ...
+
+class Request(RequestHooksMixin):
+ hooks: Incomplete
+ method: Incomplete
+ url: Incomplete
+ headers: Incomplete
+ files: Incomplete
+ data: Incomplete
+ json: Incomplete
+ params: Incomplete
+ auth: Incomplete
+ cookies: Incomplete
+ def __init__(
+ self,
+ method=None,
+ url=None,
+ headers=None,
+ files=None,
+ data=None,
+ params=None,
+ auth=None,
+ cookies=None,
+ hooks=None,
+ json=None,
+ ) -> None: ...
+ def prepare(self) -> PreparedRequest: ...
+
+class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
+ method: str | None
+ url: str | None
+ headers: CaseInsensitiveDict[str]
+ body: bytes | str | None
+ hooks: Incomplete
+ def __init__(self) -> None: ...
+ def prepare(
+ self,
+ method=None,
+ url=None,
+ headers=None,
+ files=None,
+ data=None,
+ params=None,
+ auth=None,
+ cookies=None,
+ hooks=None,
+ json=None,
+ ) -> None: ...
+ def copy(self) -> PreparedRequest: ...
+ def prepare_method(self, method) -> None: ...
+ def prepare_url(self, url, params) -> None: ...
+ def prepare_headers(self, headers) -> None: ...
+ def prepare_body(self, data, files, json=None) -> None: ...
+ def prepare_content_length(self, body: bytes | str | None) -> None: ...
+ def prepare_auth(self, auth, url="") -> None: ...
+ def prepare_cookies(self, cookies) -> None: ...
+ def prepare_hooks(self, hooks) -> None: ...
+
+class Response:
+ __attrs__: Incomplete
+ _content: bytes | None # undocumented
+ status_code: int
+ headers: CaseInsensitiveDict[str]
+ raw: HTTPResponse | MaybeNone
+ url: str
+ encoding: str | None
+ history: list[Response]
+ reason: str
+ cookies: RequestsCookieJar
+ elapsed: datetime.timedelta
+ request: PreparedRequest
+ connection: HTTPAdapter
+ def __init__(self) -> None: ...
+ def __bool__(self) -> bool: ...
+ def __nonzero__(self) -> bool: ...
+ def __iter__(self) -> Iterator[bytes]: ...
+ def __enter__(self) -> Self: ...
+ def __exit__(self, *args: Unused) -> None: ...
+ @property
+ def next(self) -> PreparedRequest | None: ...
+ @property
+ def ok(self) -> bool: ...
+ @property
+ def is_redirect(self) -> bool: ...
+ @property
+ def is_permanent_redirect(self) -> bool: ...
+ @property
+ def apparent_encoding(self) -> str: ...
+ def iter_content(self, chunk_size: int | None = 1, decode_unicode: bool = False) -> Iterator[Incomplete]: ...
+ def iter_lines(
+ self, chunk_size: int | None = 512, decode_unicode: bool = False, delimiter: str | bytes | None = None
+ ) -> Iterator[Incomplete]: ...
+ @property
+ def content(self) -> bytes | MaybeNone: ...
+ @property
+ def text(self) -> str: ...
+ def json(
+ self,
+ *,
+ cls: type[JSONDecoder] | None = ...,
+ object_hook: Callable[[dict[Any, Any]], Any] | None = ...,
+ parse_float: Callable[[str], Any] | None = ...,
+ parse_int: Callable[[str], Any] | None = ...,
+ parse_constant: Callable[[str], Any] | None = ...,
+ object_pairs_hook: Callable[[list[tuple[Any, Any]]], Any] | None = ...,
+ **kwds: Any,
+ ) -> Any: ...
+ @property
+ def links(self) -> dict[Incomplete, Incomplete]: ...
+ def raise_for_status(self) -> None: ...
+ def close(self) -> None: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/packages.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/packages.pyi
new file mode 100644
index 00000000..22281ce4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/packages.pyi
@@ -0,0 +1,3 @@
+# requests also imports urllib3, idna, and chardet below
+# requests.packages. The stubs don't reflect that and it's recommended to
+# import these packages directly if needed.
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/py.typed b/.venv/lib/python3.12/site-packages/requests-stubs/py.typed
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/py.typed
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/sessions.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/sessions.pyi
new file mode 100644
index 00000000..5427c520
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/sessions.pyi
@@ -0,0 +1,316 @@
+from _typeshed import Incomplete, SupportsItems, SupportsRead, Unused
+from collections.abc import Callable, Iterable, Mapping, MutableMapping
+from typing import Any, TypedDict
+from typing_extensions import Self, TypeAlias
+
+from urllib3._collections import RecentlyUsedContainer
+
+from . import adapters, auth as _auth, compat, cookies, exceptions, hooks, models, status_codes, utils
+from .models import Response
+from .structures import CaseInsensitiveDict as CaseInsensitiveDict
+
+_BaseAdapter: TypeAlias = adapters.BaseAdapter
+OrderedDict = compat.OrderedDict
+cookiejar_from_dict = cookies.cookiejar_from_dict
+extract_cookies_to_jar = cookies.extract_cookies_to_jar
+RequestsCookieJar = cookies.RequestsCookieJar
+merge_cookies = cookies.merge_cookies
+Request = models.Request
+PreparedRequest = models.PreparedRequest
+DEFAULT_REDIRECT_LIMIT = models.DEFAULT_REDIRECT_LIMIT
+default_hooks = hooks.default_hooks
+dispatch_hook = hooks.dispatch_hook
+to_key_val_list = utils.to_key_val_list
+default_headers = utils.default_headers
+to_native_string = utils.to_native_string
+TooManyRedirects = exceptions.TooManyRedirects
+InvalidSchema = exceptions.InvalidSchema
+ChunkedEncodingError = exceptions.ChunkedEncodingError
+ContentDecodingError = exceptions.ContentDecodingError
+HTTPAdapter = adapters.HTTPAdapter
+requote_uri = utils.requote_uri
+get_environ_proxies = utils.get_environ_proxies
+get_netrc_auth = utils.get_netrc_auth
+should_bypass_proxies = utils.should_bypass_proxies
+get_auth_from_url = utils.get_auth_from_url
+codes = status_codes.codes
+REDIRECT_STATI = models.REDIRECT_STATI
+
+def preferred_clock() -> float: ...
+def merge_setting(request_setting, session_setting, dict_class=...): ...
+def merge_hooks(request_hooks, session_hooks, dict_class=...): ...
+
+class SessionRedirectMixin:
+ def resolve_redirects(
+ self,
+ resp,
+ req,
+ stream: bool = False,
+ timeout: Incomplete | None = None,
+ verify: bool = True,
+ cert: Incomplete | None = None,
+ proxies: Incomplete | None = None,
+ yield_requests: bool = False,
+ **adapter_kwargs,
+ ): ...
+ def rebuild_auth(self, prepared_request, response): ...
+ def rebuild_proxies(self, prepared_request, proxies): ...
+ def should_strip_auth(self, old_url, new_url): ...
+ def rebuild_method(self, prepared_request: PreparedRequest, response: Response) -> None: ...
+ def get_redirect_target(self, resp: Response) -> str | None: ...
+
+_Data: TypeAlias = (
+ # used in requests.models.PreparedRequest.prepare_body
+ #
+ # case: is_stream
+ # see requests.adapters.HTTPAdapter.send
+ # will be sent directly to http.HTTPConnection.send(...) (through urllib3)
+ Iterable[bytes]
+ # case: not is_stream
+ # will be modified before being sent to urllib3.HTTPConnectionPool.urlopen(body=...)
+ # see requests.models.RequestEncodingMixin._encode_params
+ # see requests.models.RequestEncodingMixin._encode_files
+ # note that keys&values are converted from Any to str by urllib.parse.urlencode
+ | str
+ | bytes
+ | SupportsRead[str | bytes]
+ | list[tuple[Any, Any]]
+ | tuple[tuple[Any, Any], ...]
+ | Mapping[Any, Any]
+)
+_Auth: TypeAlias = tuple[str, str] | _auth.AuthBase | Callable[[PreparedRequest], PreparedRequest]
+_Cert: TypeAlias = str | tuple[str, str]
+# Files is passed to requests.utils.to_key_val_list()
+_FileName: TypeAlias = str | None
+_FileContent: TypeAlias = SupportsRead[str | bytes] | str | bytes
+_FileContentType: TypeAlias = str
+_FileCustomHeaders: TypeAlias = Mapping[str, str]
+_FileSpecTuple2: TypeAlias = tuple[_FileName, _FileContent]
+_FileSpecTuple3: TypeAlias = tuple[_FileName, _FileContent, _FileContentType]
+_FileSpecTuple4: TypeAlias = tuple[_FileName, _FileContent, _FileContentType, _FileCustomHeaders]
+_FileSpec: TypeAlias = _FileContent | _FileSpecTuple2 | _FileSpecTuple3 | _FileSpecTuple4
+_Files: TypeAlias = Mapping[str, _FileSpec] | Iterable[tuple[str, _FileSpec]]
+_Hook: TypeAlias = Callable[[Response], Any]
+_HooksInput: TypeAlias = Mapping[str, Iterable[_Hook] | _Hook]
+
+_ParamsMappingKeyType: TypeAlias = str | bytes | int | float
+_ParamsMappingValueType: TypeAlias = str | bytes | int | float | Iterable[str | bytes | int | float] | None
+_Params: TypeAlias = (
+ SupportsItems[_ParamsMappingKeyType, _ParamsMappingValueType]
+ | tuple[_ParamsMappingKeyType, _ParamsMappingValueType]
+ | Iterable[tuple[_ParamsMappingKeyType, _ParamsMappingValueType]]
+ | str
+ | bytes
+)
+_TextMapping: TypeAlias = MutableMapping[str, str]
+_HeadersUpdateMapping: TypeAlias = Mapping[str, str | bytes | None]
+_Timeout: TypeAlias = float | tuple[float, float] | tuple[float, None]
+_Verify: TypeAlias = bool | str
+
+class _Settings(TypedDict):
+ verify: _Verify | None
+ proxies: _TextMapping
+ stream: bool
+ cert: _Cert | None
+
+class Session(SessionRedirectMixin):
+ __attrs__: Any
+ # See https://github.com/psf/requests/issues/5020#issuecomment-989082461:
+ # requests sets this as a CaseInsensitiveDict, but users may set it to any MutableMapping
+ headers: MutableMapping[str, str | bytes]
+ auth: _Auth | None
+ proxies: _TextMapping
+ # Don't complain if:
+ # - value is assumed to be a list (which it is by default)
+ # - a _Hook is assigned directly, without wrapping it in a list (also works)
+ hooks: dict[str, list[_Hook] | Any]
+ params: _Params
+ stream: bool
+ verify: _Verify | None
+ cert: _Cert | None
+ max_redirects: int
+ trust_env: bool
+ cookies: RequestsCookieJar
+ adapters: MutableMapping[str, adapters.BaseAdapter]
+ redirect_cache: RecentlyUsedContainer[Any, Any]
+ def __init__(self) -> None: ...
+ def __enter__(self) -> Self: ...
+ def __exit__(self, *args: Unused) -> None: ...
+ def prepare_request(self, request: Request) -> PreparedRequest: ...
+ def request(
+ self,
+ method: str | bytes,
+ url: str | bytes,
+ params: _Params | None = None,
+ data: _Data | None = None,
+ headers: _HeadersUpdateMapping | None = None,
+ cookies: None | RequestsCookieJar | _TextMapping = None,
+ files: _Files | None = None,
+ auth: _Auth | None = None,
+ timeout: _Timeout | None = None,
+ allow_redirects: bool = True,
+ proxies: _TextMapping | None = None,
+ hooks: _HooksInput | None = None,
+ stream: bool | None = None,
+ verify: _Verify | None = None,
+ cert: _Cert | None = None,
+ json: Incomplete | None = None,
+ ) -> Response: ...
+ def get(
+ self,
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def options(
+ self,
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def head(
+ self,
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def post(
+ self,
+ url: str | bytes,
+ data: _Data | None = None,
+ json: Incomplete | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ ) -> Response: ...
+ def put(
+ self,
+ url: str | bytes,
+ data: _Data | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def patch(
+ self,
+ url: str | bytes,
+ data: _Data | None = None,
+ *,
+ params: _Params | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def delete(
+ self,
+ url: str | bytes,
+ *,
+ params: _Params | None = ...,
+ data: _Data | None = ...,
+ headers: _HeadersUpdateMapping | None = ...,
+ cookies: RequestsCookieJar | _TextMapping | None = ...,
+ files: _Files | None = ...,
+ auth: _Auth | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ proxies: _TextMapping | None = ...,
+ hooks: _HooksInput | None = ...,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ cert: _Cert | None = ...,
+ json: Incomplete | None = ...,
+ ) -> Response: ...
+ def send(
+ self,
+ request: PreparedRequest,
+ *,
+ stream: bool | None = ...,
+ verify: _Verify | None = ...,
+ proxies: _TextMapping | None = ...,
+ cert: _Cert | None = ...,
+ timeout: _Timeout | None = ...,
+ allow_redirects: bool = ...,
+ **kwargs: Any,
+ ) -> Response: ...
+ def merge_environment_settings(
+ self,
+ url: str | bytes | None,
+ proxies: _TextMapping | None,
+ stream: bool | None,
+ verify: _Verify | None,
+ cert: _Cert | None,
+ ) -> _Settings: ...
+ def get_adapter(self, url: str) -> _BaseAdapter: ...
+ def close(self) -> None: ...
+ def mount(self, prefix: str | bytes, adapter: _BaseAdapter) -> None: ...
+
+def session() -> Session: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/status_codes.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/status_codes.pyi
new file mode 100644
index 00000000..4660b476
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/status_codes.pyi
@@ -0,0 +1,3 @@
+from typing import Any
+
+codes: Any
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/structures.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/structures.pyi
new file mode 100644
index 00000000..53dd5f56
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/structures.pyi
@@ -0,0 +1,25 @@
+from collections.abc import Iterable, Iterator, Mapping, MutableMapping
+from typing import Any, Generic, TypeVar, overload
+
+_D = TypeVar("_D")
+_VT = TypeVar("_VT")
+
+class CaseInsensitiveDict(MutableMapping[str, _VT], Generic[_VT]):
+ def __init__(self, data: Mapping[str, _VT] | Iterable[tuple[str, _VT]] | None = None, **kwargs: _VT) -> None: ...
+ def lower_items(self) -> Iterator[tuple[str, _VT]]: ...
+ def __setitem__(self, key: str, value: _VT) -> None: ...
+ def __getitem__(self, key: str) -> _VT: ...
+ def __delitem__(self, key: str) -> None: ...
+ def __iter__(self) -> Iterator[str]: ...
+ def __len__(self) -> int: ...
+ def copy(self) -> CaseInsensitiveDict[_VT]: ...
+
+class LookupDict(dict[str, _VT]):
+ name: Any
+ def __init__(self, name: Any = None) -> None: ...
+ def __getitem__(self, key: str) -> _VT | None: ... # type: ignore[override]
+ def __setattr__(self, attr: str, value: _VT, /) -> None: ...
+ @overload
+ def get(self, key: str, default: None = None) -> _VT | None: ...
+ @overload
+ def get(self, key: str, default: _D | _VT) -> _D | _VT: ...
diff --git a/.venv/lib/python3.12/site-packages/requests-stubs/utils.pyi b/.venv/lib/python3.12/site-packages/requests-stubs/utils.pyi
new file mode 100644
index 00000000..3edd7c10
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/requests-stubs/utils.pyi
@@ -0,0 +1,70 @@
+import sys
+from _typeshed import Incomplete, StrOrBytesPath
+from collections.abc import Generator, Iterable, Mapping
+from contextlib import _GeneratorContextManager
+from io import BufferedWriter
+from typing import AnyStr
+from typing_extensions import TypeAlias
+
+from . import compat, cookies, exceptions, structures
+from .models import PreparedRequest, Request
+
+_Uri: TypeAlias = str | bytes
+OrderedDict = compat.OrderedDict
+cookiejar_from_dict = cookies.cookiejar_from_dict
+CaseInsensitiveDict = structures.CaseInsensitiveDict
+InvalidURL = exceptions.InvalidURL
+
+NETRC_FILES: tuple[str, str]
+DEFAULT_CA_BUNDLE_PATH: Incomplete
+DEFAULT_PORTS: dict[str, int]
+DEFAULT_ACCEPT_ENCODING: str
+
+def dict_to_sequence(d): ...
+def super_len(o): ...
+def get_netrc_auth(url: _Uri, raise_errors: bool = False) -> tuple[str, str] | None: ...
+def guess_filename(obj): ...
+def extract_zipped_paths(path): ...
+def atomic_open(filename: StrOrBytesPath) -> _GeneratorContextManager[BufferedWriter]: ...
+def from_key_val_list(value): ...
+def to_key_val_list(value): ...
+def parse_list_header(value): ...
+def parse_dict_header(value): ...
+def unquote_header_value(value, is_filename: bool = False): ...
+def dict_from_cookiejar(cj): ...
+def add_dict_to_cookiejar(cj, cookie_dict): ...
+def get_encodings_from_content(content): ...
+def get_encoding_from_headers(headers: Mapping[str, str]) -> str | None: ...
+def stream_decode_response_unicode(iterator, r): ...
+def iter_slices(string: str, slice_length: int | None) -> Generator[str, None, None]: ...
+def get_unicode_from_response(r): ...
+
+UNRESERVED_SET: frozenset[str]
+
+def unquote_unreserved(uri: str) -> str: ...
+def requote_uri(uri: str) -> str: ...
+def address_in_network(ip: str, net: str) -> bool: ...
+def dotted_netmask(mask: int) -> str: ...
+def is_ipv4_address(string_ip: str) -> bool: ...
+def is_valid_cidr(string_network: str) -> bool: ...
+def set_environ(env_name: str, value: None) -> _GeneratorContextManager[None]: ...
+def should_bypass_proxies(url: _Uri, no_proxy: Iterable[str] | None) -> bool: ...
+def get_environ_proxies(url: _Uri, no_proxy: Iterable[str] | None = None) -> dict[Incomplete, Incomplete]: ...
+def select_proxy(url: _Uri, proxies: Mapping[str, str] | None) -> str: ...
+def resolve_proxies(
+ request: Request | PreparedRequest, proxies: dict[str, str] | None, trust_env: bool = True
+) -> dict[str, str]: ...
+def default_user_agent(name: str = "python-requests") -> str: ...
+def default_headers() -> CaseInsensitiveDict[str]: ...
+def parse_header_links(value: str) -> list[dict[str, str]]: ...
+def guess_json_utf(data): ...
+def prepend_scheme_if_needed(url, new_scheme): ...
+def get_auth_from_url(url: _Uri) -> tuple[str, str]: ...
+def to_native_string(string, encoding="ascii"): ...
+def urldefragauth(url: _Uri): ...
+def rewind_body(prepared_request: PreparedRequest) -> None: ...
+def check_header_validity(header: tuple[AnyStr, AnyStr]) -> None: ...
+
+if sys.platform == "win32":
+ def proxy_bypass_registry(host: str) -> bool: ...
+ def proxy_bypass(host: str) -> bool: ...