46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
from collections.abc import Mapping
|
|
from typing import ClassVar
|
|
from typing_extensions import TypedDict
|
|
|
|
from ..connection import HTTPConnection, HTTPSConnection
|
|
from ..connectionpool import HTTPConnectionPool, HTTPSConnectionPool
|
|
from ..poolmanager import PoolManager
|
|
|
|
class _TYPE_SOCKS_OPTIONS(TypedDict):
|
|
socks_version: int
|
|
proxy_host: str | None
|
|
proxy_port: str | None
|
|
username: str | None
|
|
password: str | None
|
|
rdns: bool
|
|
|
|
class SOCKSConnection(HTTPConnection):
|
|
def __init__(self, _socks_options: _TYPE_SOCKS_OPTIONS, *args, **kwargs) -> None: ...
|
|
|
|
class SOCKSHTTPSConnection(SOCKSConnection, HTTPSConnection): ...
|
|
|
|
class SOCKSHTTPConnectionPool(HTTPConnectionPool):
|
|
ConnectionCls: ClassVar[type[SOCKSConnection]]
|
|
|
|
class SOCKSHTTPSConnectionPool(HTTPSConnectionPool):
|
|
ConnectionCls: ClassVar[type[SOCKSHTTPSConnection]]
|
|
|
|
class _ConnectionPoolClasses(TypedDict):
|
|
http: type[SOCKSHTTPConnectionPool]
|
|
https: type[SOCKSHTTPSConnectionPool]
|
|
|
|
class SOCKSProxyManager(PoolManager):
|
|
# has a class-level default, but is overridden on instances, so not a ClassVar
|
|
pool_classes_by_scheme: _ConnectionPoolClasses
|
|
proxy_url: str
|
|
|
|
def __init__(
|
|
self,
|
|
proxy_url: str,
|
|
username: str | None = ...,
|
|
password: str | None = ...,
|
|
num_pools: int = ...,
|
|
headers: Mapping[str, str] | None = ...,
|
|
**connection_pool_kw,
|
|
) -> None: ...
|