massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / coc-python-data / languageServer.0.5.59 / Typeshed / stdlib / 2and3 / socket.pyi
1 # Stubs for socket\r
2 # Ron Murawski <ron@horizonchess.com>\r
3 \r
4 # based on: http://docs.python.org/3.2/library/socket.html\r
5 # see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py\r
6 # see: http://nullege.com/codes/search/socket\r
7 # adapted for Python 2.7 by Michal Pokorny\r
8 import sys\r
9 from typing import Any, Iterable, Tuple, List, Optional, Union, overload, TypeVar\r
10 \r
11 _WriteBuffer = Union[bytearray, memoryview]\r
12 \r
13 # ----- variables and constants -----\r
14 \r
15 AF_UNIX: AddressFamily\r
16 AF_INET: AddressFamily\r
17 AF_INET6: AddressFamily\r
18 SOCK_STREAM: SocketKind\r
19 SOCK_DGRAM: SocketKind\r
20 SOCK_RAW: SocketKind\r
21 SOCK_RDM: SocketKind\r
22 SOCK_SEQPACKET: SocketKind\r
23 SOCK_CLOEXEC: SocketKind\r
24 SOCK_NONBLOCK: SocketKind\r
25 SOMAXCONN: int\r
26 has_ipv6: bool\r
27 _GLOBAL_DEFAULT_TIMEOUT: Any\r
28 SocketType: Any\r
29 SocketIO: Any\r
30 \r
31 # These are flags that may exist on Python 3.6. Many don't exist on all platforms.\r
32 AF_AAL5: AddressFamily\r
33 AF_APPLETALK: AddressFamily\r
34 AF_ASH: AddressFamily\r
35 AF_ATMPVC: AddressFamily\r
36 AF_ATMSVC: AddressFamily\r
37 AF_AX25: AddressFamily\r
38 AF_BLUETOOTH: AddressFamily\r
39 AF_BRIDGE: AddressFamily\r
40 AF_CAN: AddressFamily\r
41 AF_DECnet: AddressFamily\r
42 AF_ECONET: AddressFamily\r
43 AF_IPX: AddressFamily\r
44 AF_IRDA: AddressFamily\r
45 AF_KEY: AddressFamily\r
46 AF_LLC: AddressFamily\r
47 AF_NETBEUI: AddressFamily\r
48 AF_NETLINK: AddressFamily\r
49 AF_NETROM: AddressFamily\r
50 AF_PACKET: AddressFamily\r
51 AF_PPPOX: AddressFamily\r
52 AF_RDS: AddressFamily\r
53 AF_ROSE: AddressFamily\r
54 AF_ROUTE: AddressFamily\r
55 AF_SECURITY: AddressFamily\r
56 AF_SNA: AddressFamily\r
57 AF_SYSTEM: AddressFamily\r
58 AF_TIPC: AddressFamily\r
59 AF_UNSPEC: AddressFamily\r
60 AF_WANPIPE: AddressFamily\r
61 AF_X25: AddressFamily\r
62 AI_ADDRCONFIG: AddressInfo\r
63 AI_ALL: AddressInfo\r
64 AI_CANONNAME: AddressInfo\r
65 AI_DEFAULT: AddressInfo\r
66 AI_MASK: AddressInfo\r
67 AI_NUMERICHOST: AddressInfo\r
68 AI_NUMERICSERV: AddressInfo\r
69 AI_PASSIVE: AddressInfo\r
70 AI_V4MAPPED: AddressInfo\r
71 AI_V4MAPPED_CFG: AddressInfo\r
72 BDADDR_ANY: str\r
73 BDADDR_LOCAL: str\r
74 BTPROTO_HCI: int\r
75 BTPROTO_L2CAP: int\r
76 BTPROTO_RFCOMM: int\r
77 BTPROTO_SCO: int\r
78 CAN_EFF_FLAG: int\r
79 CAN_EFF_MASK: int\r
80 CAN_ERR_FLAG: int\r
81 CAN_ERR_MASK: int\r
82 CAN_RAW: int\r
83 CAN_RAW_ERR_FILTER: int\r
84 CAN_RAW_FILTER: int\r
85 CAN_RAW_LOOPBACK: int\r
86 CAN_RAW_RECV_OWN_MSGS: int\r
87 CAN_RTR_FLAG: int\r
88 CAN_SFF_MASK: int\r
89 CAPI: int\r
90 EAGAIN: int\r
91 EAI_ADDRFAMILY: int\r
92 EAI_AGAIN: int\r
93 EAI_BADFLAGS: int\r
94 EAI_BADHINTS: int\r
95 EAI_FAIL: int\r
96 EAI_FAMILY: int\r
97 EAI_MAX: int\r
98 EAI_MEMORY: int\r
99 EAI_NODATA: int\r
100 EAI_NONAME: int\r
101 EAI_OVERFLOW: int\r
102 EAI_PROTOCOL: int\r
103 EAI_SERVICE: int\r
104 EAI_SOCKTYPE: int\r
105 EAI_SYSTEM: int\r
106 EBADF: int\r
107 EINTR: int\r
108 EWOULDBLOCK: int\r
109 HCI_DATA_DIR: int\r
110 HCI_FILTER: int\r
111 HCI_TIME_STAMP: int\r
112 INADDR_ALLHOSTS_GROUP: int\r
113 INADDR_ANY: int\r
114 INADDR_BROADCAST: int\r
115 INADDR_LOOPBACK: int\r
116 INADDR_MAX_LOCAL_GROUP: int\r
117 INADDR_NONE: int\r
118 INADDR_UNSPEC_GROUP: int\r
119 IPPORT_RESERVED: int\r
120 IPPORT_USERRESERVED: int\r
121 IPPROTO_AH: int\r
122 IPPROTO_BIP: int\r
123 IPPROTO_DSTOPTS: int\r
124 IPPROTO_EGP: int\r
125 IPPROTO_EON: int\r
126 IPPROTO_ESP: int\r
127 IPPROTO_FRAGMENT: int\r
128 IPPROTO_GGP: int\r
129 IPPROTO_GRE: int\r
130 IPPROTO_HELLO: int\r
131 IPPROTO_HOPOPTS: int\r
132 IPPROTO_ICMP: int\r
133 IPPROTO_ICMPV6: int\r
134 IPPROTO_IDP: int\r
135 IPPROTO_IGMP: int\r
136 IPPROTO_IP: int\r
137 IPPROTO_IPCOMP: int\r
138 IPPROTO_IPIP: int\r
139 IPPROTO_IPV4: int\r
140 IPPROTO_IPV6: int\r
141 IPPROTO_MAX: int\r
142 IPPROTO_MOBILE: int\r
143 IPPROTO_ND: int\r
144 IPPROTO_NONE: int\r
145 IPPROTO_PIM: int\r
146 IPPROTO_PUP: int\r
147 IPPROTO_RAW: int\r
148 IPPROTO_ROUTING: int\r
149 IPPROTO_RSVP: int\r
150 IPPROTO_SCTP: int\r
151 IPPROTO_TCP: int\r
152 IPPROTO_TP: int\r
153 IPPROTO_UDP: int\r
154 IPPROTO_VRRP: int\r
155 IPPROTO_XTP: int\r
156 IPV6_CHECKSUM: int\r
157 IPV6_DONTFRAG: int\r
158 IPV6_DSTOPTS: int\r
159 IPV6_HOPLIMIT: int\r
160 IPV6_HOPOPTS: int\r
161 IPV6_JOIN_GROUP: int\r
162 IPV6_LEAVE_GROUP: int\r
163 IPV6_MULTICAST_HOPS: int\r
164 IPV6_MULTICAST_IF: int\r
165 IPV6_MULTICAST_LOOP: int\r
166 IPV6_NEXTHOP: int\r
167 IPV6_PATHMTU: int\r
168 IPV6_PKTINFO: int\r
169 IPV6_RECVDSTOPTS: int\r
170 IPV6_RECVHOPLIMIT: int\r
171 IPV6_RECVHOPOPTS: int\r
172 IPV6_RECVPATHMTU: int\r
173 IPV6_RECVPKTINFO: int\r
174 IPV6_RECVRTHDR: int\r
175 IPV6_RECVTCLASS: int\r
176 IPV6_RTHDR: int\r
177 IPV6_RTHDR_TYPE_0: int\r
178 IPV6_RTHDRDSTOPTS: int\r
179 IPV6_TCLASS: int\r
180 IPV6_UNICAST_HOPS: int\r
181 IPV6_USE_MIN_MTU: int\r
182 IPV6_V6ONLY: int\r
183 IP_ADD_MEMBERSHIP: int\r
184 IP_DEFAULT_MULTICAST_LOOP: int\r
185 IP_DEFAULT_MULTICAST_TTL: int\r
186 IP_DROP_MEMBERSHIP: int\r
187 IP_HDRINCL: int\r
188 IP_MAX_MEMBERSHIPS: int\r
189 IP_MULTICAST_IF: int\r
190 IP_MULTICAST_LOOP: int\r
191 IP_MULTICAST_TTL: int\r
192 IP_OPTIONS: int\r
193 IP_RECVDSTADDR: int\r
194 IP_RECVOPTS: int\r
195 IP_RECVRETOPTS: int\r
196 IP_RETOPTS: int\r
197 IP_TOS: int\r
198 IP_TRANSPARENT: int\r
199 IP_TTL: int\r
200 IPX_TYPE: int\r
201 LOCAL_PEERCRED: int\r
202 MSG_BCAST: MsgFlag\r
203 MSG_BTAG: MsgFlag\r
204 MSG_CMSG_CLOEXEC: MsgFlag\r
205 MSG_CONFIRM: MsgFlag\r
206 MSG_CTRUNC: MsgFlag\r
207 MSG_DONTROUTE: MsgFlag\r
208 MSG_DONTWAIT: MsgFlag\r
209 MSG_EOF: MsgFlag\r
210 MSG_EOR: MsgFlag\r
211 MSG_ERRQUEUE: MsgFlag\r
212 MSG_ETAG: MsgFlag\r
213 MSG_FASTOPEN: MsgFlag\r
214 MSG_MCAST: MsgFlag\r
215 MSG_MORE: MsgFlag\r
216 MSG_NOSIGNAL: MsgFlag\r
217 MSG_NOTIFICATION: MsgFlag\r
218 MSG_OOB: MsgFlag\r
219 MSG_PEEK: MsgFlag\r
220 MSG_TRUNC: MsgFlag\r
221 MSG_WAITALL: MsgFlag\r
222 NETLINK_ARPD: int\r
223 NETLINK_CRYPTO: int\r
224 NETLINK_DNRTMSG: int\r
225 NETLINK_FIREWALL: int\r
226 NETLINK_IP6_FW: int\r
227 NETLINK_NFLOG: int\r
228 NETLINK_ROUTE6: int\r
229 NETLINK_ROUTE: int\r
230 NETLINK_SKIP: int\r
231 NETLINK_TAPBASE: int\r
232 NETLINK_TCPDIAG: int\r
233 NETLINK_USERSOCK: int\r
234 NETLINK_W1: int\r
235 NETLINK_XFRM: int\r
236 NI_DGRAM: int\r
237 NI_MAXHOST: int\r
238 NI_MAXSERV: int\r
239 NI_NAMEREQD: int\r
240 NI_NOFQDN: int\r
241 NI_NUMERICHOST: int\r
242 NI_NUMERICSERV: int\r
243 PACKET_BROADCAST: int\r
244 PACKET_FASTROUTE: int\r
245 PACKET_HOST: int\r
246 PACKET_LOOPBACK: int\r
247 PACKET_MULTICAST: int\r
248 PACKET_OTHERHOST: int\r
249 PACKET_OUTGOING: int\r
250 PF_CAN: int\r
251 PF_PACKET: int\r
252 PF_RDS: int\r
253 PF_SYSTEM: int\r
254 SCM_CREDENTIALS: int\r
255 SCM_CREDS: int\r
256 SCM_RIGHTS: int\r
257 SHUT_RD: int\r
258 SHUT_RDWR: int\r
259 SHUT_WR: int\r
260 SOL_ATALK: int\r
261 SOL_AX25: int\r
262 SOL_CAN_BASE: int\r
263 SOL_CAN_RAW: int\r
264 SOL_HCI: int\r
265 SOL_IP: int\r
266 SOL_IPX: int\r
267 SOL_NETROM: int\r
268 SOL_RDS: int\r
269 SOL_ROSE: int\r
270 SOL_SOCKET: int\r
271 SOL_TCP: int\r
272 SOL_TIPC: int\r
273 SOL_UDP: int\r
274 SO_ACCEPTCONN: int\r
275 SO_BINDTODEVICE: int\r
276 SO_BROADCAST: int\r
277 SO_DEBUG: int\r
278 SO_DONTROUTE: int\r
279 SO_ERROR: int\r
280 SO_EXCLUSIVEADDRUSE: int\r
281 SO_KEEPALIVE: int\r
282 SO_LINGER: int\r
283 SO_MARK: int\r
284 SO_OOBINLINE: int\r
285 SO_PASSCRED: int\r
286 SO_PEERCRED: int\r
287 SO_PRIORITY: int\r
288 SO_RCVBUF: int\r
289 SO_RCVLOWAT: int\r
290 SO_RCVTIMEO: int\r
291 SO_REUSEADDR: int\r
292 SO_REUSEPORT: int\r
293 SO_SETFIB: int\r
294 SO_SNDBUF: int\r
295 SO_SNDLOWAT: int\r
296 SO_SNDTIMEO: int\r
297 SO_TYPE: int\r
298 SO_USELOOPBACK: int\r
299 SYSPROTO_CONTROL: int\r
300 TCP_CORK: int\r
301 TCP_DEFER_ACCEPT: int\r
302 TCP_FASTOPEN: int\r
303 TCP_INFO: int\r
304 TCP_KEEPCNT: int\r
305 TCP_KEEPIDLE: int\r
306 TCP_KEEPINTVL: int\r
307 TCP_LINGER2: int\r
308 TCP_MAXSEG: int\r
309 TCP_NODELAY: int\r
310 TCP_NOTSENT_LOWAT: int\r
311 TCP_QUICKACK: int\r
312 TCP_SYNCNT: int\r
313 TCP_WINDOW_CLAMP: int\r
314 TIPC_ADDR_ID: int\r
315 TIPC_ADDR_NAME: int\r
316 TIPC_ADDR_NAMESEQ: int\r
317 TIPC_CFG_SRV: int\r
318 TIPC_CLUSTER_SCOPE: int\r
319 TIPC_CONN_TIMEOUT: int\r
320 TIPC_CRITICAL_IMPORTANCE: int\r
321 TIPC_DEST_DROPPABLE: int\r
322 TIPC_HIGH_IMPORTANCE: int\r
323 TIPC_IMPORTANCE: int\r
324 TIPC_LOW_IMPORTANCE: int\r
325 TIPC_MEDIUM_IMPORTANCE: int\r
326 TIPC_NODE_SCOPE: int\r
327 TIPC_PUBLISHED: int\r
328 TIPC_SRC_DROPPABLE: int\r
329 TIPC_SUB_CANCEL: int\r
330 TIPC_SUB_PORTS: int\r
331 TIPC_SUB_SERVICE: int\r
332 TIPC_SUBSCR_TIMEOUT: int\r
333 TIPC_TOP_SRV: int\r
334 TIPC_WAIT_FOREVER: int\r
335 TIPC_WITHDRAWN: int\r
336 TIPC_ZONE_SCOPE: int\r
337 \r
338 if sys.version_info >= (3, 3):\r
339     RDS_CANCEL_SENT_TO: int\r
340     RDS_CMSG_RDMA_ARGS: int\r
341     RDS_CMSG_RDMA_DEST: int\r
342     RDS_CMSG_RDMA_MAP: int\r
343     RDS_CMSG_RDMA_STATUS: int\r
344     RDS_CMSG_RDMA_UPDATE: int\r
345     RDS_CONG_MONITOR: int\r
346     RDS_FREE_MR: int\r
347     RDS_GET_MR: int\r
348     RDS_GET_MR_FOR_DEST: int\r
349     RDS_RDMA_DONTWAIT: int\r
350     RDS_RDMA_FENCE: int\r
351     RDS_RDMA_INVALIDATE: int\r
352     RDS_RDMA_NOTIFY_ME: int\r
353     RDS_RDMA_READWRITE: int\r
354     RDS_RDMA_SILENT: int\r
355     RDS_RDMA_USE_ONCE: int\r
356     RDS_RECVERR: int\r
357 \r
358 if sys.version_info >= (3, 4):\r
359     CAN_BCM: int\r
360     CAN_BCM_TX_SETUP: int\r
361     CAN_BCM_TX_DELETE: int\r
362     CAN_BCM_TX_READ: int\r
363     CAN_BCM_TX_SEND: int\r
364     CAN_BCM_RX_SETUP: int\r
365     CAN_BCM_RX_DELETE: int\r
366     CAN_BCM_RX_READ: int\r
367     CAN_BCM_TX_STATUS: int\r
368     CAN_BCM_TX_EXPIRED: int\r
369     CAN_BCM_RX_STATUS: int\r
370     CAN_BCM_RX_TIMEOUT: int\r
371     CAN_BCM_RX_CHANGED: int\r
372     AF_LINK: AddressFamily\r
373 \r
374 if sys.version_info >= (3, 5):\r
375     CAN_RAW_FD_FRAMES: int\r
376 \r
377 if sys.version_info >= (3, 6):\r
378     SO_DOMAIN: int\r
379     SO_PROTOCOL: int\r
380     SO_PEERSEC: int\r
381     SO_PASSSEC: int\r
382     TCP_USER_TIMEOUT: int\r
383     TCP_CONGESTION: int\r
384     AF_ALG: AddressFamily\r
385     SOL_ALG: int\r
386     ALG_SET_KEY: int\r
387     ALG_SET_IV: int\r
388     ALG_SET_OP: int\r
389     ALG_SET_AEAD_ASSOCLEN: int\r
390     ALG_SET_AEAD_AUTHSIZE: int\r
391     ALG_SET_PUBKEY: int\r
392     ALG_OP_DECRYPT: int\r
393     ALG_OP_ENCRYPT: int\r
394     ALG_OP_SIGN: int\r
395     ALG_OP_VERIFY: int\r
396 \r
397 if sys.platform == 'win32':\r
398     SIO_RCVALL: int\r
399     SIO_KEEPALIVE_VALS: int\r
400     RCVALL_IPLEVEL: int\r
401     RCVALL_MAX: int\r
402     RCVALL_OFF: int\r
403     RCVALL_ON: int\r
404     RCVALL_SOCKETLEVELONLY: int\r
405 \r
406     if sys.version_info >= (3, 6):\r
407         SIO_LOOPBACK_FAST_PATH: int\r
408 \r
409 # enum versions of above flags py 3.4+\r
410 if sys.version_info >= (3, 4):\r
411     from enum import IntEnum\r
412 \r
413     class AddressFamily(IntEnum):\r
414         AF_UNIX = ...\r
415         AF_INET = ...\r
416         AF_INET6 = ...\r
417         AF_APPLETALK = ...\r
418         AF_ASH = ...\r
419         AF_ATMPVC = ...\r
420         AF_ATMSVC = ...\r
421         AF_AX25 = ...\r
422         AF_BLUETOOTH = ...\r
423         AF_BRIDGE = ...\r
424         AF_DECnet = ...\r
425         AF_ECONET = ...\r
426         AF_IPX = ...\r
427         AF_IRDA = ...\r
428         AF_KEY = ...\r
429         AF_LLC = ...\r
430         AF_NETBEUI = ...\r
431         AF_NETLINK = ...\r
432         AF_NETROM = ...\r
433         AF_PACKET = ...\r
434         AF_PPPOX = ...\r
435         AF_ROSE = ...\r
436         AF_ROUTE = ...\r
437         AF_SECURITY = ...\r
438         AF_SNA = ...\r
439         AF_TIPC = ...\r
440         AF_UNSPEC = ...\r
441         AF_WANPIPE = ...\r
442         AF_X25 = ...\r
443         AF_LINK = ...\r
444 \r
445     class SocketKind(IntEnum):\r
446         SOCK_STREAM = ...\r
447         SOCK_DGRAM = ...\r
448         SOCK_RAW = ...\r
449         SOCK_RDM = ...\r
450         SOCK_SEQPACKET = ...\r
451         SOCK_CLOEXEC = ...\r
452         SOCK_NONBLOCK = ...\r
453 else:\r
454     AddressFamily = int\r
455     SocketKind = int\r
456 \r
457 if sys.version_info >= (3, 6):\r
458     from enum import IntFlag\r
459 \r
460     class AddressInfo(IntFlag):\r
461         AI_ADDRCONFIG = ...\r
462         AI_ALL = ...\r
463         AI_CANONNAME = ...\r
464         AI_NUMERICHOST = ...\r
465         AI_NUMERICSERV = ...\r
466         AI_PASSIVE = ...\r
467         AI_V4MAPPED = ...\r
468 \r
469     class MsgFlag(IntFlag):\r
470         MSG_CTRUNC = ...\r
471         MSG_DONTROUTE = ...\r
472         MSG_DONTWAIT = ...\r
473         MSG_EOR = ...\r
474         MSG_OOB = ...\r
475         MSG_PEEK = ...\r
476         MSG_TRUNC = ...\r
477         MSG_WAITALL = ...\r
478 else:\r
479     AddressInfo = int\r
480     MsgFlag = int\r
481 \r
482 \r
483 # ----- exceptions -----\r
484 class error(IOError):\r
485     ...\r
486 \r
487 class herror(error):\r
488     def __init__(self, herror: int, string: str) -> None: ...\r
489 \r
490 class gaierror(error):\r
491     def __init__(self, error: int, string: str) -> None: ...\r
492 \r
493 class timeout(error):\r
494     ...\r
495 \r
496 \r
497 # Addresses can be either tuples of varying lengths (AF_INET, AF_INET6,\r
498 # AF_NETLINK, AF_TIPC) or strings (AF_UNIX).\r
499 \r
500 # TODO AF_PACKET and AF_BLUETOOTH address objects\r
501 \r
502 _CMSG = Tuple[int, int, bytes]\r
503 _SelfT = TypeVar('_SelfT', bound=socket)\r
504 \r
505 # ----- classes -----\r
506 class socket:\r
507     family: int\r
508     type: int\r
509     proto: int\r
510 \r
511     if sys.version_info < (3,):\r
512         def __init__(self, family: int = ..., type: int = ...,\r
513                  proto: int = ...) -> None: ...\r
514     else:\r
515         def __init__(self, family: int = ..., type: int = ...,\r
516                      proto: int = ..., fileno: Optional[int] = ...) -> None: ...\r
517 \r
518     if sys.version_info >= (3, 2):\r
519         def __enter__(self: _SelfT) -> _SelfT: ...\r
520         def __exit__(self, *args: Any) -> None: ...\r
521 \r
522     # --- methods ---\r
523     # second tuple item is an address\r
524     def accept(self) -> Tuple['socket', Any]: ...\r
525     def bind(self, address: Union[tuple, str, bytes]) -> None: ...\r
526     def close(self) -> None: ...\r
527     def connect(self, address: Union[tuple, str, bytes]) -> None: ...\r
528     def connect_ex(self, address: Union[tuple, str, bytes]) -> int: ...\r
529     def detach(self) -> int: ...\r
530     def fileno(self) -> int: ...\r
531 \r
532     # return value is an address\r
533     def getpeername(self) -> Any: ...\r
534     def getsockname(self) -> Any: ...\r
535 \r
536     @overload\r
537     def getsockopt(self, level: int, optname: int) -> int: ...\r
538     @overload\r
539     def getsockopt(self, level: int, optname: int, buflen: int) -> bytes: ...\r
540 \r
541     def gettimeout(self) -> float: ...\r
542     def ioctl(self, control: object,\r
543               option: Tuple[int, int, int]) -> None: ...\r
544     def listen(self, backlog: int) -> None: ...\r
545     # TODO the return value may be BinaryIO or TextIO, depending on mode\r
546     def makefile(self, mode: str = ..., buffering: int = ...,\r
547                  encoding: str = ..., errors: str = ...,\r
548                  newline: str = ...) -> Any:\r
549         ...\r
550     def recv(self, bufsize: int, flags: int = ...) -> bytes: ...\r
551 \r
552     # return type is an address\r
553     def recvfrom(self, bufsize: int, flags: int = ...) -> Any: ...\r
554     def recvfrom_into(self, buffer: _WriteBuffer, nbytes: int,\r
555                       flags: int = ...) -> Any: ...\r
556     def recv_into(self, buffer: _WriteBuffer, nbytes: int,\r
557                   flags: int = ...) -> Any: ...\r
558     def send(self, data: bytes, flags: int = ...) -> int: ...\r
559     def sendall(self, data: bytes, flags: int =...) -> None:\r
560         ...  # return type: None on success\r
561     @overload\r
562     def sendto(self, data: bytes, address: Union[tuple, str]) -> int: ...\r
563     @overload\r
564     def sendto(self, data: bytes, flags: int, address: Union[tuple, str]) -> int: ...\r
565     def setblocking(self, flag: bool) -> None: ...\r
566     def settimeout(self, value: Optional[float]) -> None: ...\r
567     def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...\r
568     def shutdown(self, how: int) -> None: ...\r
569 \r
570     if sys.version_info >= (3, 3):\r
571         def recvmsg(self, __bufsize: int, __ancbufsize: int = ...,\r
572                     __flags: int = ...) -> Tuple[bytes, List[_CMSG], int, Any]: ...\r
573         def recvmsg_into(self, __buffers: Iterable[_WriteBuffer], __ancbufsize: int = ...,\r
574                          __flags: int = ...) -> Tuple[int, List[_CMSG], int, Any]: ...\r
575         def sendmsg(self, __buffers: Iterable[bytes], __ancdata: Iterable[_CMSG] = ...,\r
576                     __flags: int = ..., __address: Any = ...) -> int: ...\r
577 \r
578 \r
579 # ----- functions -----\r
580 def create_connection(address: Tuple[Optional[str], int],\r
581                       timeout: float = ...,\r
582                       source_address: Tuple[str, int] = ...) -> socket: ...\r
583 \r
584 # the 5th tuple item is an address\r
585 # TODO the "Tuple[Any, ...]" should be "Union[Tuple[str, int], Tuple[str, int, int, int]]" but that triggers\r
586 # https://github.com/python/mypy/issues/2509\r
587 def getaddrinfo(\r
588         host: Optional[str], port: Union[str, int, None], family: int = ...,\r
589         socktype: int = ..., proto: int = ...,\r
590         flags: int = ...) -> List[Tuple[int, int, int, str, Tuple[Any, ...]]]:\r
591     ...\r
592 \r
593 def getfqdn(name: str = ...) -> str: ...\r
594 def gethostbyname(hostname: str) -> str: ...\r
595 def gethostbyname_ex(hostname: str) -> Tuple[str, List[str], List[str]]: ...\r
596 def gethostname() -> str: ...\r
597 def gethostbyaddr(ip_address: str) -> Tuple[str, List[str], List[str]]: ...\r
598 def getnameinfo(sockaddr: tuple, flags: int) -> Tuple[str, int]: ...\r
599 def getprotobyname(protocolname: str) -> int: ...\r
600 def getservbyname(servicename: str, protocolname: str = ...) -> int: ...\r
601 def getservbyport(port: int, protocolname: str = ...) -> str: ...\r
602 def socketpair(family: int = ...,\r
603                type: int = ...,\r
604                proto: int = ...) -> Tuple[socket, socket]: ...\r
605 def fromfd(fd: int, family: int, type: int, proto: int = ...) -> socket: ...\r
606 def ntohl(x: int) -> int: ...  # param & ret val are 32-bit ints\r
607 def ntohs(x: int) -> int: ...  # param & ret val are 16-bit ints\r
608 def htonl(x: int) -> int: ...  # param & ret val are 32-bit ints\r
609 def htons(x: int) -> int: ...  # param & ret val are 16-bit ints\r
610 def inet_aton(ip_string: str) -> bytes: ...  # ret val 4 bytes in length\r
611 def inet_ntoa(packed_ip: bytes) -> str: ...\r
612 def inet_pton(address_family: int, ip_string: str) -> bytes: ...\r
613 def inet_ntop(address_family: int, packed_ip: bytes) -> str: ...\r
614 def getdefaulttimeout() -> Optional[float]: ...\r
615 def setdefaulttimeout(timeout: Optional[float]) -> None: ...\r
616 \r
617 if sys.version_info >= (3, 3):\r
618     def CMSG_LEN(length: int) -> int: ...\r
619     def CMSG_SPACE(length: int) -> int: ...\r
620     def sethostname(name: str) -> None: ...\r
621     def if_nameindex() -> List[Tuple[int, str]]: ...\r
622     def if_nametoindex(name: str) -> int: ...\r
623     def if_indextoname(index: int) -> str: ...\r