import datetime import socket import ssl from tornado_py3 import gen as gen from tornado_py3.concurrent import Future as Future, future_add_done_callback as future_add_done_callback from tornado_py3.gen import TimeoutError as TimeoutError from tornado_py3.ioloop import IOLoop as IOLoop from tornado_py3.iostream import IOStream as IOStream from tornado_py3.netutil import Resolver as Resolver from tornado_py3.platform.auto import set_close_exec as set_close_exec from typing import Any, Callable, Dict, Iterator, List, Tuple, Union class _Connector: io_loop: Any = ... connect: Any = ... future: Any = ... timeout: Any = ... connect_timeout: Any = ... last_error: Any = ... remaining: Any = ... streams: Any = ... def __init__(self, addrinfo: List[Tuple], connect: Callable[[socket.AddressFamily, Tuple], Tuple[IOStream, Future[IOStream]]]) -> None: ... @staticmethod def split(addrinfo: List[Tuple]) -> Tuple[List[Tuple[socket.AddressFamily, Tuple]], List[Tuple[socket.AddressFamily, Tuple]]]: ... def start(self, timeout: float=..., connect_timeout: Union[float, datetime.timedelta]=...) -> Future[Tuple[socket.AddressFamily, Any, IOStream]]: ... def try_connect(self, addrs: Iterator[Tuple[socket.AddressFamily, Tuple]]) -> None: ... def on_connect_done(self, addrs: Iterator[Tuple[socket.AddressFamily, Tuple]], af: socket.AddressFamily, addr: Tuple, future: Future[IOStream]) -> None: ... def set_timeout(self, timeout: float) -> None: ... def on_timeout(self) -> None: ... def clear_timeout(self) -> None: ... def set_connect_timeout(self, connect_timeout: Union[float, datetime.timedelta]) -> None: ... def on_connect_timeout(self) -> None: ... def clear_timeouts(self) -> None: ... def close_streams(self) -> None: ... class TCPClient: resolver: Any = ... def __init__(self, resolver: Resolver=...) -> None: ... def close(self) -> None: ... async def connect(self, host: str, port: int, af: socket.AddressFamily=..., ssl_options: Union[Dict[str, Any], ssl.SSLContext]=..., max_buffer_size: int=..., source_ip: str=..., source_port: int=..., timeout: Union[float, datetime.timedelta]=...) -> IOStream: ...