massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / coc-python-data / languageServer.0.5.59 / Typeshed / stdlib / 2and3 / socket.pyi
diff --git a/.config/coc/extensions/coc-python-data/languageServer.0.5.59/Typeshed/stdlib/2and3/socket.pyi b/.config/coc/extensions/coc-python-data/languageServer.0.5.59/Typeshed/stdlib/2and3/socket.pyi
new file mode 100644 (file)
index 0000000..76fad47
--- /dev/null
@@ -0,0 +1,623 @@
+# Stubs for socket\r
+# Ron Murawski <ron@horizonchess.com>\r
+\r
+# based on: http://docs.python.org/3.2/library/socket.html\r
+# see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py\r
+# see: http://nullege.com/codes/search/socket\r
+# adapted for Python 2.7 by Michal Pokorny\r
+import sys\r
+from typing import Any, Iterable, Tuple, List, Optional, Union, overload, TypeVar\r
+\r
+_WriteBuffer = Union[bytearray, memoryview]\r
+\r
+# ----- variables and constants -----\r
+\r
+AF_UNIX: AddressFamily\r
+AF_INET: AddressFamily\r
+AF_INET6: AddressFamily\r
+SOCK_STREAM: SocketKind\r
+SOCK_DGRAM: SocketKind\r
+SOCK_RAW: SocketKind\r
+SOCK_RDM: SocketKind\r
+SOCK_SEQPACKET: SocketKind\r
+SOCK_CLOEXEC: SocketKind\r
+SOCK_NONBLOCK: SocketKind\r
+SOMAXCONN: int\r
+has_ipv6: bool\r
+_GLOBAL_DEFAULT_TIMEOUT: Any\r
+SocketType: Any\r
+SocketIO: Any\r
+\r
+# These are flags that may exist on Python 3.6. Many don't exist on all platforms.\r
+AF_AAL5: AddressFamily\r
+AF_APPLETALK: AddressFamily\r
+AF_ASH: AddressFamily\r
+AF_ATMPVC: AddressFamily\r
+AF_ATMSVC: AddressFamily\r
+AF_AX25: AddressFamily\r
+AF_BLUETOOTH: AddressFamily\r
+AF_BRIDGE: AddressFamily\r
+AF_CAN: AddressFamily\r
+AF_DECnet: AddressFamily\r
+AF_ECONET: AddressFamily\r
+AF_IPX: AddressFamily\r
+AF_IRDA: AddressFamily\r
+AF_KEY: AddressFamily\r
+AF_LLC: AddressFamily\r
+AF_NETBEUI: AddressFamily\r
+AF_NETLINK: AddressFamily\r
+AF_NETROM: AddressFamily\r
+AF_PACKET: AddressFamily\r
+AF_PPPOX: AddressFamily\r
+AF_RDS: AddressFamily\r
+AF_ROSE: AddressFamily\r
+AF_ROUTE: AddressFamily\r
+AF_SECURITY: AddressFamily\r
+AF_SNA: AddressFamily\r
+AF_SYSTEM: AddressFamily\r
+AF_TIPC: AddressFamily\r
+AF_UNSPEC: AddressFamily\r
+AF_WANPIPE: AddressFamily\r
+AF_X25: AddressFamily\r
+AI_ADDRCONFIG: AddressInfo\r
+AI_ALL: AddressInfo\r
+AI_CANONNAME: AddressInfo\r
+AI_DEFAULT: AddressInfo\r
+AI_MASK: AddressInfo\r
+AI_NUMERICHOST: AddressInfo\r
+AI_NUMERICSERV: AddressInfo\r
+AI_PASSIVE: AddressInfo\r
+AI_V4MAPPED: AddressInfo\r
+AI_V4MAPPED_CFG: AddressInfo\r
+BDADDR_ANY: str\r
+BDADDR_LOCAL: str\r
+BTPROTO_HCI: int\r
+BTPROTO_L2CAP: int\r
+BTPROTO_RFCOMM: int\r
+BTPROTO_SCO: int\r
+CAN_EFF_FLAG: int\r
+CAN_EFF_MASK: int\r
+CAN_ERR_FLAG: int\r
+CAN_ERR_MASK: int\r
+CAN_RAW: int\r
+CAN_RAW_ERR_FILTER: int\r
+CAN_RAW_FILTER: int\r
+CAN_RAW_LOOPBACK: int\r
+CAN_RAW_RECV_OWN_MSGS: int\r
+CAN_RTR_FLAG: int\r
+CAN_SFF_MASK: int\r
+CAPI: int\r
+EAGAIN: int\r
+EAI_ADDRFAMILY: int\r
+EAI_AGAIN: int\r
+EAI_BADFLAGS: int\r
+EAI_BADHINTS: int\r
+EAI_FAIL: int\r
+EAI_FAMILY: int\r
+EAI_MAX: int\r
+EAI_MEMORY: int\r
+EAI_NODATA: int\r
+EAI_NONAME: int\r
+EAI_OVERFLOW: int\r
+EAI_PROTOCOL: int\r
+EAI_SERVICE: int\r
+EAI_SOCKTYPE: int\r
+EAI_SYSTEM: int\r
+EBADF: int\r
+EINTR: int\r
+EWOULDBLOCK: int\r
+HCI_DATA_DIR: int\r
+HCI_FILTER: int\r
+HCI_TIME_STAMP: int\r
+INADDR_ALLHOSTS_GROUP: int\r
+INADDR_ANY: int\r
+INADDR_BROADCAST: int\r
+INADDR_LOOPBACK: int\r
+INADDR_MAX_LOCAL_GROUP: int\r
+INADDR_NONE: int\r
+INADDR_UNSPEC_GROUP: int\r
+IPPORT_RESERVED: int\r
+IPPORT_USERRESERVED: int\r
+IPPROTO_AH: int\r
+IPPROTO_BIP: int\r
+IPPROTO_DSTOPTS: int\r
+IPPROTO_EGP: int\r
+IPPROTO_EON: int\r
+IPPROTO_ESP: int\r
+IPPROTO_FRAGMENT: int\r
+IPPROTO_GGP: int\r
+IPPROTO_GRE: int\r
+IPPROTO_HELLO: int\r
+IPPROTO_HOPOPTS: int\r
+IPPROTO_ICMP: int\r
+IPPROTO_ICMPV6: int\r
+IPPROTO_IDP: int\r
+IPPROTO_IGMP: int\r
+IPPROTO_IP: int\r
+IPPROTO_IPCOMP: int\r
+IPPROTO_IPIP: int\r
+IPPROTO_IPV4: int\r
+IPPROTO_IPV6: int\r
+IPPROTO_MAX: int\r
+IPPROTO_MOBILE: int\r
+IPPROTO_ND: int\r
+IPPROTO_NONE: int\r
+IPPROTO_PIM: int\r
+IPPROTO_PUP: int\r
+IPPROTO_RAW: int\r
+IPPROTO_ROUTING: int\r
+IPPROTO_RSVP: int\r
+IPPROTO_SCTP: int\r
+IPPROTO_TCP: int\r
+IPPROTO_TP: int\r
+IPPROTO_UDP: int\r
+IPPROTO_VRRP: int\r
+IPPROTO_XTP: int\r
+IPV6_CHECKSUM: int\r
+IPV6_DONTFRAG: int\r
+IPV6_DSTOPTS: int\r
+IPV6_HOPLIMIT: int\r
+IPV6_HOPOPTS: int\r
+IPV6_JOIN_GROUP: int\r
+IPV6_LEAVE_GROUP: int\r
+IPV6_MULTICAST_HOPS: int\r
+IPV6_MULTICAST_IF: int\r
+IPV6_MULTICAST_LOOP: int\r
+IPV6_NEXTHOP: int\r
+IPV6_PATHMTU: int\r
+IPV6_PKTINFO: int\r
+IPV6_RECVDSTOPTS: int\r
+IPV6_RECVHOPLIMIT: int\r
+IPV6_RECVHOPOPTS: int\r
+IPV6_RECVPATHMTU: int\r
+IPV6_RECVPKTINFO: int\r
+IPV6_RECVRTHDR: int\r
+IPV6_RECVTCLASS: int\r
+IPV6_RTHDR: int\r
+IPV6_RTHDR_TYPE_0: int\r
+IPV6_RTHDRDSTOPTS: int\r
+IPV6_TCLASS: int\r
+IPV6_UNICAST_HOPS: int\r
+IPV6_USE_MIN_MTU: int\r
+IPV6_V6ONLY: int\r
+IP_ADD_MEMBERSHIP: int\r
+IP_DEFAULT_MULTICAST_LOOP: int\r
+IP_DEFAULT_MULTICAST_TTL: int\r
+IP_DROP_MEMBERSHIP: int\r
+IP_HDRINCL: int\r
+IP_MAX_MEMBERSHIPS: int\r
+IP_MULTICAST_IF: int\r
+IP_MULTICAST_LOOP: int\r
+IP_MULTICAST_TTL: int\r
+IP_OPTIONS: int\r
+IP_RECVDSTADDR: int\r
+IP_RECVOPTS: int\r
+IP_RECVRETOPTS: int\r
+IP_RETOPTS: int\r
+IP_TOS: int\r
+IP_TRANSPARENT: int\r
+IP_TTL: int\r
+IPX_TYPE: int\r
+LOCAL_PEERCRED: int\r
+MSG_BCAST: MsgFlag\r
+MSG_BTAG: MsgFlag\r
+MSG_CMSG_CLOEXEC: MsgFlag\r
+MSG_CONFIRM: MsgFlag\r
+MSG_CTRUNC: MsgFlag\r
+MSG_DONTROUTE: MsgFlag\r
+MSG_DONTWAIT: MsgFlag\r
+MSG_EOF: MsgFlag\r
+MSG_EOR: MsgFlag\r
+MSG_ERRQUEUE: MsgFlag\r
+MSG_ETAG: MsgFlag\r
+MSG_FASTOPEN: MsgFlag\r
+MSG_MCAST: MsgFlag\r
+MSG_MORE: MsgFlag\r
+MSG_NOSIGNAL: MsgFlag\r
+MSG_NOTIFICATION: MsgFlag\r
+MSG_OOB: MsgFlag\r
+MSG_PEEK: MsgFlag\r
+MSG_TRUNC: MsgFlag\r
+MSG_WAITALL: MsgFlag\r
+NETLINK_ARPD: int\r
+NETLINK_CRYPTO: int\r
+NETLINK_DNRTMSG: int\r
+NETLINK_FIREWALL: int\r
+NETLINK_IP6_FW: int\r
+NETLINK_NFLOG: int\r
+NETLINK_ROUTE6: int\r
+NETLINK_ROUTE: int\r
+NETLINK_SKIP: int\r
+NETLINK_TAPBASE: int\r
+NETLINK_TCPDIAG: int\r
+NETLINK_USERSOCK: int\r
+NETLINK_W1: int\r
+NETLINK_XFRM: int\r
+NI_DGRAM: int\r
+NI_MAXHOST: int\r
+NI_MAXSERV: int\r
+NI_NAMEREQD: int\r
+NI_NOFQDN: int\r
+NI_NUMERICHOST: int\r
+NI_NUMERICSERV: int\r
+PACKET_BROADCAST: int\r
+PACKET_FASTROUTE: int\r
+PACKET_HOST: int\r
+PACKET_LOOPBACK: int\r
+PACKET_MULTICAST: int\r
+PACKET_OTHERHOST: int\r
+PACKET_OUTGOING: int\r
+PF_CAN: int\r
+PF_PACKET: int\r
+PF_RDS: int\r
+PF_SYSTEM: int\r
+SCM_CREDENTIALS: int\r
+SCM_CREDS: int\r
+SCM_RIGHTS: int\r
+SHUT_RD: int\r
+SHUT_RDWR: int\r
+SHUT_WR: int\r
+SOL_ATALK: int\r
+SOL_AX25: int\r
+SOL_CAN_BASE: int\r
+SOL_CAN_RAW: int\r
+SOL_HCI: int\r
+SOL_IP: int\r
+SOL_IPX: int\r
+SOL_NETROM: int\r
+SOL_RDS: int\r
+SOL_ROSE: int\r
+SOL_SOCKET: int\r
+SOL_TCP: int\r
+SOL_TIPC: int\r
+SOL_UDP: int\r
+SO_ACCEPTCONN: int\r
+SO_BINDTODEVICE: int\r
+SO_BROADCAST: int\r
+SO_DEBUG: int\r
+SO_DONTROUTE: int\r
+SO_ERROR: int\r
+SO_EXCLUSIVEADDRUSE: int\r
+SO_KEEPALIVE: int\r
+SO_LINGER: int\r
+SO_MARK: int\r
+SO_OOBINLINE: int\r
+SO_PASSCRED: int\r
+SO_PEERCRED: int\r
+SO_PRIORITY: int\r
+SO_RCVBUF: int\r
+SO_RCVLOWAT: int\r
+SO_RCVTIMEO: int\r
+SO_REUSEADDR: int\r
+SO_REUSEPORT: int\r
+SO_SETFIB: int\r
+SO_SNDBUF: int\r
+SO_SNDLOWAT: int\r
+SO_SNDTIMEO: int\r
+SO_TYPE: int\r
+SO_USELOOPBACK: int\r
+SYSPROTO_CONTROL: int\r
+TCP_CORK: int\r
+TCP_DEFER_ACCEPT: int\r
+TCP_FASTOPEN: int\r
+TCP_INFO: int\r
+TCP_KEEPCNT: int\r
+TCP_KEEPIDLE: int\r
+TCP_KEEPINTVL: int\r
+TCP_LINGER2: int\r
+TCP_MAXSEG: int\r
+TCP_NODELAY: int\r
+TCP_NOTSENT_LOWAT: int\r
+TCP_QUICKACK: int\r
+TCP_SYNCNT: int\r
+TCP_WINDOW_CLAMP: int\r
+TIPC_ADDR_ID: int\r
+TIPC_ADDR_NAME: int\r
+TIPC_ADDR_NAMESEQ: int\r
+TIPC_CFG_SRV: int\r
+TIPC_CLUSTER_SCOPE: int\r
+TIPC_CONN_TIMEOUT: int\r
+TIPC_CRITICAL_IMPORTANCE: int\r
+TIPC_DEST_DROPPABLE: int\r
+TIPC_HIGH_IMPORTANCE: int\r
+TIPC_IMPORTANCE: int\r
+TIPC_LOW_IMPORTANCE: int\r
+TIPC_MEDIUM_IMPORTANCE: int\r
+TIPC_NODE_SCOPE: int\r
+TIPC_PUBLISHED: int\r
+TIPC_SRC_DROPPABLE: int\r
+TIPC_SUB_CANCEL: int\r
+TIPC_SUB_PORTS: int\r
+TIPC_SUB_SERVICE: int\r
+TIPC_SUBSCR_TIMEOUT: int\r
+TIPC_TOP_SRV: int\r
+TIPC_WAIT_FOREVER: int\r
+TIPC_WITHDRAWN: int\r
+TIPC_ZONE_SCOPE: int\r
+\r
+if sys.version_info >= (3, 3):\r
+    RDS_CANCEL_SENT_TO: int\r
+    RDS_CMSG_RDMA_ARGS: int\r
+    RDS_CMSG_RDMA_DEST: int\r
+    RDS_CMSG_RDMA_MAP: int\r
+    RDS_CMSG_RDMA_STATUS: int\r
+    RDS_CMSG_RDMA_UPDATE: int\r
+    RDS_CONG_MONITOR: int\r
+    RDS_FREE_MR: int\r
+    RDS_GET_MR: int\r
+    RDS_GET_MR_FOR_DEST: int\r
+    RDS_RDMA_DONTWAIT: int\r
+    RDS_RDMA_FENCE: int\r
+    RDS_RDMA_INVALIDATE: int\r
+    RDS_RDMA_NOTIFY_ME: int\r
+    RDS_RDMA_READWRITE: int\r
+    RDS_RDMA_SILENT: int\r
+    RDS_RDMA_USE_ONCE: int\r
+    RDS_RECVERR: int\r
+\r
+if sys.version_info >= (3, 4):\r
+    CAN_BCM: int\r
+    CAN_BCM_TX_SETUP: int\r
+    CAN_BCM_TX_DELETE: int\r
+    CAN_BCM_TX_READ: int\r
+    CAN_BCM_TX_SEND: int\r
+    CAN_BCM_RX_SETUP: int\r
+    CAN_BCM_RX_DELETE: int\r
+    CAN_BCM_RX_READ: int\r
+    CAN_BCM_TX_STATUS: int\r
+    CAN_BCM_TX_EXPIRED: int\r
+    CAN_BCM_RX_STATUS: int\r
+    CAN_BCM_RX_TIMEOUT: int\r
+    CAN_BCM_RX_CHANGED: int\r
+    AF_LINK: AddressFamily\r
+\r
+if sys.version_info >= (3, 5):\r
+    CAN_RAW_FD_FRAMES: int\r
+\r
+if sys.version_info >= (3, 6):\r
+    SO_DOMAIN: int\r
+    SO_PROTOCOL: int\r
+    SO_PEERSEC: int\r
+    SO_PASSSEC: int\r
+    TCP_USER_TIMEOUT: int\r
+    TCP_CONGESTION: int\r
+    AF_ALG: AddressFamily\r
+    SOL_ALG: int\r
+    ALG_SET_KEY: int\r
+    ALG_SET_IV: int\r
+    ALG_SET_OP: int\r
+    ALG_SET_AEAD_ASSOCLEN: int\r
+    ALG_SET_AEAD_AUTHSIZE: int\r
+    ALG_SET_PUBKEY: int\r
+    ALG_OP_DECRYPT: int\r
+    ALG_OP_ENCRYPT: int\r
+    ALG_OP_SIGN: int\r
+    ALG_OP_VERIFY: int\r
+\r
+if sys.platform == 'win32':\r
+    SIO_RCVALL: int\r
+    SIO_KEEPALIVE_VALS: int\r
+    RCVALL_IPLEVEL: int\r
+    RCVALL_MAX: int\r
+    RCVALL_OFF: int\r
+    RCVALL_ON: int\r
+    RCVALL_SOCKETLEVELONLY: int\r
+\r
+    if sys.version_info >= (3, 6):\r
+        SIO_LOOPBACK_FAST_PATH: int\r
+\r
+# enum versions of above flags py 3.4+\r
+if sys.version_info >= (3, 4):\r
+    from enum import IntEnum\r
+\r
+    class AddressFamily(IntEnum):\r
+        AF_UNIX = ...\r
+        AF_INET = ...\r
+        AF_INET6 = ...\r
+        AF_APPLETALK = ...\r
+        AF_ASH = ...\r
+        AF_ATMPVC = ...\r
+        AF_ATMSVC = ...\r
+        AF_AX25 = ...\r
+        AF_BLUETOOTH = ...\r
+        AF_BRIDGE = ...\r
+        AF_DECnet = ...\r
+        AF_ECONET = ...\r
+        AF_IPX = ...\r
+        AF_IRDA = ...\r
+        AF_KEY = ...\r
+        AF_LLC = ...\r
+        AF_NETBEUI = ...\r
+        AF_NETLINK = ...\r
+        AF_NETROM = ...\r
+        AF_PACKET = ...\r
+        AF_PPPOX = ...\r
+        AF_ROSE = ...\r
+        AF_ROUTE = ...\r
+        AF_SECURITY = ...\r
+        AF_SNA = ...\r
+        AF_TIPC = ...\r
+        AF_UNSPEC = ...\r
+        AF_WANPIPE = ...\r
+        AF_X25 = ...\r
+        AF_LINK = ...\r
+\r
+    class SocketKind(IntEnum):\r
+        SOCK_STREAM = ...\r
+        SOCK_DGRAM = ...\r
+        SOCK_RAW = ...\r
+        SOCK_RDM = ...\r
+        SOCK_SEQPACKET = ...\r
+        SOCK_CLOEXEC = ...\r
+        SOCK_NONBLOCK = ...\r
+else:\r
+    AddressFamily = int\r
+    SocketKind = int\r
+\r
+if sys.version_info >= (3, 6):\r
+    from enum import IntFlag\r
+\r
+    class AddressInfo(IntFlag):\r
+        AI_ADDRCONFIG = ...\r
+        AI_ALL = ...\r
+        AI_CANONNAME = ...\r
+        AI_NUMERICHOST = ...\r
+        AI_NUMERICSERV = ...\r
+        AI_PASSIVE = ...\r
+        AI_V4MAPPED = ...\r
+\r
+    class MsgFlag(IntFlag):\r
+        MSG_CTRUNC = ...\r
+        MSG_DONTROUTE = ...\r
+        MSG_DONTWAIT = ...\r
+        MSG_EOR = ...\r
+        MSG_OOB = ...\r
+        MSG_PEEK = ...\r
+        MSG_TRUNC = ...\r
+        MSG_WAITALL = ...\r
+else:\r
+    AddressInfo = int\r
+    MsgFlag = int\r
+\r
+\r
+# ----- exceptions -----\r
+class error(IOError):\r
+    ...\r
+\r
+class herror(error):\r
+    def __init__(self, herror: int, string: str) -> None: ...\r
+\r
+class gaierror(error):\r
+    def __init__(self, error: int, string: str) -> None: ...\r
+\r
+class timeout(error):\r
+    ...\r
+\r
+\r
+# Addresses can be either tuples of varying lengths (AF_INET, AF_INET6,\r
+# AF_NETLINK, AF_TIPC) or strings (AF_UNIX).\r
+\r
+# TODO AF_PACKET and AF_BLUETOOTH address objects\r
+\r
+_CMSG = Tuple[int, int, bytes]\r
+_SelfT = TypeVar('_SelfT', bound=socket)\r
+\r
+# ----- classes -----\r
+class socket:\r
+    family: int\r
+    type: int\r
+    proto: int\r
+\r
+    if sys.version_info < (3,):\r
+        def __init__(self, family: int = ..., type: int = ...,\r
+                 proto: int = ...) -> None: ...\r
+    else:\r
+        def __init__(self, family: int = ..., type: int = ...,\r
+                     proto: int = ..., fileno: Optional[int] = ...) -> None: ...\r
+\r
+    if sys.version_info >= (3, 2):\r
+        def __enter__(self: _SelfT) -> _SelfT: ...\r
+        def __exit__(self, *args: Any) -> None: ...\r
+\r
+    # --- methods ---\r
+    # second tuple item is an address\r
+    def accept(self) -> Tuple['socket', Any]: ...\r
+    def bind(self, address: Union[tuple, str, bytes]) -> None: ...\r
+    def close(self) -> None: ...\r
+    def connect(self, address: Union[tuple, str, bytes]) -> None: ...\r
+    def connect_ex(self, address: Union[tuple, str, bytes]) -> int: ...\r
+    def detach(self) -> int: ...\r
+    def fileno(self) -> int: ...\r
+\r
+    # return value is an address\r
+    def getpeername(self) -> Any: ...\r
+    def getsockname(self) -> Any: ...\r
+\r
+    @overload\r
+    def getsockopt(self, level: int, optname: int) -> int: ...\r
+    @overload\r
+    def getsockopt(self, level: int, optname: int, buflen: int) -> bytes: ...\r
+\r
+    def gettimeout(self) -> float: ...\r
+    def ioctl(self, control: object,\r
+              option: Tuple[int, int, int]) -> None: ...\r
+    def listen(self, backlog: int) -> None: ...\r
+    # TODO the return value may be BinaryIO or TextIO, depending on mode\r
+    def makefile(self, mode: str = ..., buffering: int = ...,\r
+                 encoding: str = ..., errors: str = ...,\r
+                 newline: str = ...) -> Any:\r
+        ...\r
+    def recv(self, bufsize: int, flags: int = ...) -> bytes: ...\r
+\r
+    # return type is an address\r
+    def recvfrom(self, bufsize: int, flags: int = ...) -> Any: ...\r
+    def recvfrom_into(self, buffer: _WriteBuffer, nbytes: int,\r
+                      flags: int = ...) -> Any: ...\r
+    def recv_into(self, buffer: _WriteBuffer, nbytes: int,\r
+                  flags: int = ...) -> Any: ...\r
+    def send(self, data: bytes, flags: int = ...) -> int: ...\r
+    def sendall(self, data: bytes, flags: int =...) -> None:\r
+        ...  # return type: None on success\r
+    @overload\r
+    def sendto(self, data: bytes, address: Union[tuple, str]) -> int: ...\r
+    @overload\r
+    def sendto(self, data: bytes, flags: int, address: Union[tuple, str]) -> int: ...\r
+    def setblocking(self, flag: bool) -> None: ...\r
+    def settimeout(self, value: Optional[float]) -> None: ...\r
+    def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...\r
+    def shutdown(self, how: int) -> None: ...\r
+\r
+    if sys.version_info >= (3, 3):\r
+        def recvmsg(self, __bufsize: int, __ancbufsize: int = ...,\r
+                    __flags: int = ...) -> Tuple[bytes, List[_CMSG], int, Any]: ...\r
+        def recvmsg_into(self, __buffers: Iterable[_WriteBuffer], __ancbufsize: int = ...,\r
+                         __flags: int = ...) -> Tuple[int, List[_CMSG], int, Any]: ...\r
+        def sendmsg(self, __buffers: Iterable[bytes], __ancdata: Iterable[_CMSG] = ...,\r
+                    __flags: int = ..., __address: Any = ...) -> int: ...\r
+\r
+\r
+# ----- functions -----\r
+def create_connection(address: Tuple[Optional[str], int],\r
+                      timeout: float = ...,\r
+                      source_address: Tuple[str, int] = ...) -> socket: ...\r
+\r
+# the 5th tuple item is an address\r
+# TODO the "Tuple[Any, ...]" should be "Union[Tuple[str, int], Tuple[str, int, int, int]]" but that triggers\r
+# https://github.com/python/mypy/issues/2509\r
+def getaddrinfo(\r
+        host: Optional[str], port: Union[str, int, None], family: int = ...,\r
+        socktype: int = ..., proto: int = ...,\r
+        flags: int = ...) -> List[Tuple[int, int, int, str, Tuple[Any, ...]]]:\r
+    ...\r
+\r
+def getfqdn(name: str = ...) -> str: ...\r
+def gethostbyname(hostname: str) -> str: ...\r
+def gethostbyname_ex(hostname: str) -> Tuple[str, List[str], List[str]]: ...\r
+def gethostname() -> str: ...\r
+def gethostbyaddr(ip_address: str) -> Tuple[str, List[str], List[str]]: ...\r
+def getnameinfo(sockaddr: tuple, flags: int) -> Tuple[str, int]: ...\r
+def getprotobyname(protocolname: str) -> int: ...\r
+def getservbyname(servicename: str, protocolname: str = ...) -> int: ...\r
+def getservbyport(port: int, protocolname: str = ...) -> str: ...\r
+def socketpair(family: int = ...,\r
+               type: int = ...,\r
+               proto: int = ...) -> Tuple[socket, socket]: ...\r
+def fromfd(fd: int, family: int, type: int, proto: int = ...) -> socket: ...\r
+def ntohl(x: int) -> int: ...  # param & ret val are 32-bit ints\r
+def ntohs(x: int) -> int: ...  # param & ret val are 16-bit ints\r
+def htonl(x: int) -> int: ...  # param & ret val are 32-bit ints\r
+def htons(x: int) -> int: ...  # param & ret val are 16-bit ints\r
+def inet_aton(ip_string: str) -> bytes: ...  # ret val 4 bytes in length\r
+def inet_ntoa(packed_ip: bytes) -> str: ...\r
+def inet_pton(address_family: int, ip_string: str) -> bytes: ...\r
+def inet_ntop(address_family: int, packed_ip: bytes) -> str: ...\r
+def getdefaulttimeout() -> Optional[float]: ...\r
+def setdefaulttimeout(timeout: Optional[float]) -> None: ...\r
+\r
+if sys.version_info >= (3, 3):\r
+    def CMSG_LEN(length: int) -> int: ...\r
+    def CMSG_SPACE(length: int) -> int: ...\r
+    def sethostname(name: str) -> None: ...\r
+    def if_nameindex() -> List[Tuple[int, str]]: ...\r
+    def if_nametoindex(name: str) -> int: ...\r
+    def if_indextoname(index: int) -> str: ...\r