11from _typeshed import Incomplete
22from collections .abc import Mapping
33from ssl import SSLContext
4- from typing import Literal , TypedDict , type_check_only
4+ from typing import Any , Literal , TypedDict , type_check_only
55from typing_extensions import NotRequired , deprecated
66
77import urllib3
@@ -80,8 +80,27 @@ class HTTPAdapter(BaseAdapter):
8080 self , pool_connections : int = 10 , pool_maxsize : int = 10 , max_retries : Retry | int | None = 0 , pool_block : bool = False
8181 ) -> None : ...
8282 poolmanager : Incomplete
83- def init_poolmanager (self , connections , maxsize , block = False , ** pool_kwargs ): ...
84- def proxy_manager_for (self , proxy , ** proxy_kwargs ): ...
83+ def init_poolmanager (
84+ self ,
85+ connections : int ,
86+ maxsize : int ,
87+ block : bool = False ,
88+ ** pool_kwargs : Any , # Any: Arbitrary keyword arguments passed directly to urllib3's PoolManager constructor.
89+ # Allowed types depend on urllib3 version, but typically include:
90+ # ssl_version (int), cert_reqs (str), ca_certs (str), ca_cert_dir (str),
91+ # ssl_context (ssl.SSLContext), socket_options (list), etc.
92+ # We use Any because the exact set is dynamic and not fully specified in stubs.
93+ ) -> None : ...
94+ def proxy_manager_for (
95+ self ,
96+ proxy : str ,
97+ ** proxy_kwargs : Any , # Any: Same as pool_kwargs above, passed to ProxyManager or SOCKSProxyManager.
98+ # May include: ssl_context, cert_reqs, ca_certs, ca_cert_dir, etc.
99+ ) -> Any : # Any: Returns either urllib3.ProxyManager (for HTTP/HTTPS proxies) or SOCKSProxyManager (for SOCKS).
100+ # The exact return type depends on the proxy scheme and is not needed by callers; using Any avoids
101+ # circular imports or complex union types. In practice, the object adheres to a common interface.
102+ ...
103+
85104 def cert_verify (self , conn , url , verify , cert ): ...
86105 def build_response (self , req : PreparedRequest , resp : urllib3 .BaseHTTPResponse ) -> Response : ...
87106 def build_connection_pool_key_attributes (
@@ -97,9 +116,16 @@ class HTTPAdapter(BaseAdapter):
97116 @deprecated ("Use get_connection_with_tls_context() instead." )
98117 def get_connection (self , url : _Uri , proxies : Mapping [str , str ] | None = None ) -> ConnectionPool : ...
99118 def close (self ) -> None : ...
100- def request_url (self , request , proxies ): ...
101- def add_headers (self , request , ** kwargs ): ...
102- def proxy_headers (self , proxy ): ...
119+ def request_url (self , request : PreparedRequest , proxies : Mapping [str , str ] | None ) -> str : ...
120+ def add_headers (
121+ self ,
122+ request : PreparedRequest ,
123+ ** kwargs : Any , # Any: Hook method for subclasses to add custom headers.
124+ # The kwargs mirror the send() parameters: stream (bool), timeout (float|tuple),
125+ # verify (bool|str), cert (str|tuple), proxies (dict). Base implementation ignores them.
126+ # Using Any allows subclasses to access these arguments without repeating the full signature.
127+ ) -> None : ...
128+ def proxy_headers (self , proxy : str ) -> dict [str , str ]: ...
103129 def send (
104130 self ,
105131 request : PreparedRequest ,
0 commit comments