mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-06 12:14:27 +08:00
Update stub for socket module (#3451)
* Add new socket constants from 3.7 and 3.8
* Also move TCP_NOTSENT_LOWAT to 3.7 section and add AF_ALG to AddressFamily
* Add missing and updated socket module (and class) methods
* Improve formatting of socket.pyi
* Add missing line breaks in long function parameters
* Reorder to mirror module documentations
* Fix type of create_server's family parameter
* Add more system conditionals
* Remove CAPI; it isn't an int (it's a PyCapsule)
* Slightly improve version conditions in socket.pyi
* Add incomplete signatures for socket.sendfile and .sendmsg_afalg
* Add VM_SOCKETS_INVALID_VERSION to socket.pyi
* Remove private _GLOBAL_DEFAULT_TIMEOUT from socket.pyi
* Add mode-dependent return types to socket.makefile
- For Python 2, return and mode types are based on those of 'open'
- For Python 3, types are based on actual behaviors
* Mark recv_into and recvfrom_into's nbytes argument as optional
* Improve docstring for socket stub
This commit is contained in:
committed by
Sebastian Rittau
parent
4766ca0846
commit
39ebd62e71
@@ -1,43 +1,73 @@
|
||||
# Stubs for socket
|
||||
# Ron Murawski <ron@horizonchess.com>
|
||||
"""Stub for the socket module
|
||||
|
||||
# based on: http://docs.python.org/3.2/library/socket.html
|
||||
# see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py
|
||||
# see: http://nullege.com/codes/search/socket
|
||||
# adapted for Python 2.7 by Michal Pokorny
|
||||
This file is organized to mirror the module's documentation, with a very small
|
||||
number of exceptions.
|
||||
|
||||
To avoid requiring tests on all platforms, platform checks are included only
|
||||
where the documentation notes platform availability (as opposed to following
|
||||
actual availability), with one or two exceptions.
|
||||
|
||||
Module documentation: https://docs.python.org/3/library/socket.html
|
||||
CPython module source: https://github.com/python/cpython/blob/master/Lib/socket.py
|
||||
CPython C source: https://github.com/python/cpython/blob/master/Modules/socketmodule.c
|
||||
"""
|
||||
# Authorship from original mypy stubs (not in typeshed git history):
|
||||
# Ron Murawski <ron@horizonchess.com>
|
||||
# adapted for Python 2.7 by Michal Pokorny
|
||||
import sys
|
||||
from typing import Any, Iterable, Tuple, List, Optional, Union, overload, TypeVar, Text
|
||||
from typing import Any, BinaryIO, Iterable, List, Optional, Text, TextIO, Tuple, TypeVar, Union, overload
|
||||
|
||||
_WriteBuffer = Union[bytearray, memoryview]
|
||||
if sys.version_info >= (3, 8):
|
||||
from typing import Literal
|
||||
else:
|
||||
from typing_extensions import Literal
|
||||
|
||||
# ----- variables and constants -----
|
||||
|
||||
# ----- Constants -----
|
||||
# Some socket families are listed in the "Socket families" section of the docs,
|
||||
# but not the "Constants" section. These are listed at the end of the list of
|
||||
# constants.
|
||||
#
|
||||
# Besides those and the first few constants listed, the constants are listed in
|
||||
# documentation order.
|
||||
|
||||
# Constants defined by Python (i.e. not OS constants re-exported from C)
|
||||
has_ipv6: bool
|
||||
SocketType: Any
|
||||
if sys.version_info >= (3,):
|
||||
SocketIO: Any
|
||||
|
||||
# Re-exported errno
|
||||
EAGAIN: int
|
||||
EBADF: int
|
||||
EINTR: int
|
||||
EWOULDBLOCK: int
|
||||
|
||||
# Constants re-exported from C
|
||||
|
||||
# Per socketmodule.c, only these three families are portable
|
||||
AF_UNIX: AddressFamily
|
||||
AF_INET: AddressFamily
|
||||
AF_INET6: AddressFamily
|
||||
|
||||
SOCK_STREAM: SocketKind
|
||||
SOCK_DGRAM: SocketKind
|
||||
SOCK_RAW: SocketKind
|
||||
SOCK_RDM: SocketKind
|
||||
SOCK_SEQPACKET: SocketKind
|
||||
SOCK_CLOEXEC: SocketKind
|
||||
SOCK_NONBLOCK: SocketKind
|
||||
SOMAXCONN: int
|
||||
has_ipv6: bool
|
||||
_GLOBAL_DEFAULT_TIMEOUT: Any
|
||||
SocketType: Any
|
||||
SocketIO: Any
|
||||
|
||||
# These are flags that may exist on Python 3.6. Many don't exist on all platforms.
|
||||
if sys.platform == 'linux' and sys.version_info >= (3,):
|
||||
SOCK_CLOEXEC: SocketKind
|
||||
SOCK_NONBLOCK: SocketKind
|
||||
|
||||
# Address families not mentioned in the docs
|
||||
AF_AAL5: AddressFamily
|
||||
AF_APPLETALK: AddressFamily
|
||||
AF_ASH: AddressFamily
|
||||
AF_ATMPVC: AddressFamily
|
||||
AF_ATMSVC: AddressFamily
|
||||
AF_AX25: AddressFamily
|
||||
AF_BLUETOOTH: AddressFamily
|
||||
AF_BRIDGE: AddressFamily
|
||||
AF_CAN: AddressFamily
|
||||
AF_DECnet: AddressFamily
|
||||
AF_ECONET: AddressFamily
|
||||
AF_IPX: AddressFamily
|
||||
@@ -45,20 +75,19 @@ AF_IRDA: AddressFamily
|
||||
AF_KEY: AddressFamily
|
||||
AF_LLC: AddressFamily
|
||||
AF_NETBEUI: AddressFamily
|
||||
AF_NETLINK: AddressFamily
|
||||
AF_NETROM: AddressFamily
|
||||
AF_PACKET: AddressFamily
|
||||
AF_PPPOX: AddressFamily
|
||||
AF_RDS: AddressFamily
|
||||
AF_ROSE: AddressFamily
|
||||
AF_ROUTE: AddressFamily
|
||||
AF_SECURITY: AddressFamily
|
||||
AF_SNA: AddressFamily
|
||||
AF_SYSTEM: AddressFamily
|
||||
AF_TIPC: AddressFamily
|
||||
AF_UNSPEC: AddressFamily
|
||||
AF_WANPIPE: AddressFamily
|
||||
AF_X25: AddressFamily
|
||||
|
||||
# The "many constants" referenced by the docs
|
||||
SOMAXCONN: int
|
||||
AI_ADDRCONFIG: AddressInfo
|
||||
AI_ALL: AddressInfo
|
||||
AI_CANONNAME: AddressInfo
|
||||
@@ -69,26 +98,7 @@ AI_NUMERICSERV: AddressInfo
|
||||
AI_PASSIVE: AddressInfo
|
||||
AI_V4MAPPED: AddressInfo
|
||||
AI_V4MAPPED_CFG: AddressInfo
|
||||
BDADDR_ANY: str
|
||||
BDADDR_LOCAL: str
|
||||
BTPROTO_HCI: int
|
||||
BTPROTO_L2CAP: int
|
||||
BTPROTO_RFCOMM: int
|
||||
BTPROTO_SCO: int
|
||||
CAN_EFF_FLAG: int
|
||||
CAN_EFF_MASK: int
|
||||
CAN_ERR_FLAG: int
|
||||
CAN_ERR_MASK: int
|
||||
CAN_RAW: int
|
||||
CAN_RAW_ERR_FILTER: int
|
||||
CAN_RAW_FILTER: int
|
||||
CAN_RAW_LOOPBACK: int
|
||||
CAN_RAW_RECV_OWN_MSGS: int
|
||||
CAN_RTR_FLAG: int
|
||||
CAN_SFF_MASK: int
|
||||
CAPI: int
|
||||
EAGAIN: int
|
||||
EAI_ADDRFAMILY: int
|
||||
EAIEAI_ADDRFAMILY: int
|
||||
EAI_AGAIN: int
|
||||
EAI_BADFLAGS: int
|
||||
EAI_BADHINTS: int
|
||||
@@ -103,12 +113,6 @@ EAI_PROTOCOL: int
|
||||
EAI_SERVICE: int
|
||||
EAI_SOCKTYPE: int
|
||||
EAI_SYSTEM: int
|
||||
EBADF: int
|
||||
EINTR: int
|
||||
EWOULDBLOCK: int
|
||||
HCI_DATA_DIR: int
|
||||
HCI_FILTER: int
|
||||
HCI_TIME_STAMP: int
|
||||
INADDR_ALLHOSTS_GROUP: int
|
||||
INADDR_ANY: int
|
||||
INADDR_BROADCAST: int
|
||||
@@ -174,12 +178,13 @@ IPV6_RECVPKTINFO: int
|
||||
IPV6_RECVRTHDR: int
|
||||
IPV6_RECVTCLASS: int
|
||||
IPV6_RTHDR: int
|
||||
IPV6_RTHDR_TYPE_0: int
|
||||
IPV6_RTHDRDSTOPTS: int
|
||||
IPV6_RTHDR_TYPE_0: int
|
||||
IPV6_TCLASS: int
|
||||
IPV6_UNICAST_HOPS: int
|
||||
IPV6_USE_MIN_MTU: int
|
||||
IPV6_V6ONLY: int
|
||||
IPX_TYPE: int
|
||||
IP_ADD_MEMBERSHIP: int
|
||||
IP_DEFAULT_MULTICAST_LOOP: int
|
||||
IP_DEFAULT_MULTICAST_TTL: int
|
||||
@@ -197,7 +202,6 @@ IP_RETOPTS: int
|
||||
IP_TOS: int
|
||||
IP_TRANSPARENT: int
|
||||
IP_TTL: int
|
||||
IPX_TYPE: int
|
||||
LOCAL_PEERCRED: int
|
||||
MSG_BCAST: MsgFlag
|
||||
MSG_BTAG: MsgFlag
|
||||
@@ -219,20 +223,6 @@ MSG_OOB: MsgFlag
|
||||
MSG_PEEK: MsgFlag
|
||||
MSG_TRUNC: MsgFlag
|
||||
MSG_WAITALL: MsgFlag
|
||||
NETLINK_ARPD: int
|
||||
NETLINK_CRYPTO: int
|
||||
NETLINK_DNRTMSG: int
|
||||
NETLINK_FIREWALL: int
|
||||
NETLINK_IP6_FW: int
|
||||
NETLINK_NFLOG: int
|
||||
NETLINK_ROUTE6: int
|
||||
NETLINK_ROUTE: int
|
||||
NETLINK_SKIP: int
|
||||
NETLINK_TAPBASE: int
|
||||
NETLINK_TCPDIAG: int
|
||||
NETLINK_USERSOCK: int
|
||||
NETLINK_W1: int
|
||||
NETLINK_XFRM: int
|
||||
NI_DGRAM: int
|
||||
NI_MAXHOST: int
|
||||
NI_MAXSERV: int
|
||||
@@ -240,17 +230,6 @@ NI_NAMEREQD: int
|
||||
NI_NOFQDN: int
|
||||
NI_NUMERICHOST: int
|
||||
NI_NUMERICSERV: int
|
||||
PACKET_BROADCAST: int
|
||||
PACKET_FASTROUTE: int
|
||||
PACKET_HOST: int
|
||||
PACKET_LOOPBACK: int
|
||||
PACKET_MULTICAST: int
|
||||
PACKET_OTHERHOST: int
|
||||
PACKET_OUTGOING: int
|
||||
PF_CAN: int
|
||||
PF_PACKET: int
|
||||
PF_RDS: int
|
||||
PF_SYSTEM: int
|
||||
SCM_CREDENTIALS: int
|
||||
SCM_CREDS: int
|
||||
SCM_RIGHTS: int
|
||||
@@ -259,17 +238,13 @@ SHUT_RDWR: int
|
||||
SHUT_WR: int
|
||||
SOL_ATALK: int
|
||||
SOL_AX25: int
|
||||
SOL_CAN_BASE: int
|
||||
SOL_CAN_RAW: int
|
||||
SOL_HCI: int
|
||||
SOL_IP: int
|
||||
SOL_IPX: int
|
||||
SOL_NETROM: int
|
||||
SOL_RDS: int
|
||||
SOL_ROSE: int
|
||||
SOL_SOCKET: int
|
||||
SOL_TCP: int
|
||||
SOL_TIPC: int
|
||||
SOL_UDP: int
|
||||
SO_ACCEPTCONN: int
|
||||
SO_BINDTODEVICE: int
|
||||
@@ -296,7 +271,6 @@ SO_SNDLOWAT: int
|
||||
SO_SNDTIMEO: int
|
||||
SO_TYPE: int
|
||||
SO_USELOOPBACK: int
|
||||
SYSPROTO_CONTROL: int
|
||||
TCP_CORK: int
|
||||
TCP_DEFER_ACCEPT: int
|
||||
TCP_FASTOPEN: int
|
||||
@@ -307,35 +281,65 @@ TCP_KEEPINTVL: int
|
||||
TCP_LINGER2: int
|
||||
TCP_MAXSEG: int
|
||||
TCP_NODELAY: int
|
||||
TCP_NOTSENT_LOWAT: int
|
||||
TCP_QUICKACK: int
|
||||
TCP_SYNCNT: int
|
||||
TCP_WINDOW_CLAMP: int
|
||||
TIPC_ADDR_ID: int
|
||||
TIPC_ADDR_NAME: int
|
||||
TIPC_ADDR_NAMESEQ: int
|
||||
TIPC_CFG_SRV: int
|
||||
TIPC_CLUSTER_SCOPE: int
|
||||
TIPC_CONN_TIMEOUT: int
|
||||
TIPC_CRITICAL_IMPORTANCE: int
|
||||
TIPC_DEST_DROPPABLE: int
|
||||
TIPC_HIGH_IMPORTANCE: int
|
||||
TIPC_IMPORTANCE: int
|
||||
TIPC_LOW_IMPORTANCE: int
|
||||
TIPC_MEDIUM_IMPORTANCE: int
|
||||
TIPC_NODE_SCOPE: int
|
||||
TIPC_PUBLISHED: int
|
||||
TIPC_SRC_DROPPABLE: int
|
||||
TIPC_SUB_CANCEL: int
|
||||
TIPC_SUB_PORTS: int
|
||||
TIPC_SUB_SERVICE: int
|
||||
TIPC_SUBSCR_TIMEOUT: int
|
||||
TIPC_TOP_SRV: int
|
||||
TIPC_WAIT_FOREVER: int
|
||||
TIPC_WITHDRAWN: int
|
||||
TIPC_ZONE_SCOPE: int
|
||||
if sys.version_info >= (3, 7):
|
||||
TCP_NOTSENT_LOWAT: int
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
# Specifically-documented constants
|
||||
|
||||
if sys.platform == 'linux' and sys.version_info >= (3,):
|
||||
AF_CAN: AddressFamily
|
||||
PF_CAN: int
|
||||
SOL_CAN_BASE: int
|
||||
SOL_CAN_RAW: int
|
||||
CAN_EFF_FLAG: int
|
||||
CAN_EFF_MASK: int
|
||||
CAN_ERR_FLAG: int
|
||||
CAN_ERR_MASK: int
|
||||
CAN_RAW: int
|
||||
CAN_RAW_ERR_FILTER: int
|
||||
CAN_RAW_FILTER: int
|
||||
CAN_RAW_LOOPBACK: int
|
||||
CAN_RAW_RECV_OWN_MSGS: int
|
||||
CAN_RTR_FLAG: int
|
||||
CAN_SFF_MASK: int
|
||||
|
||||
CAN_BCM: int
|
||||
CAN_BCM_TX_SETUP: int
|
||||
CAN_BCM_TX_DELETE: int
|
||||
CAN_BCM_TX_READ: int
|
||||
CAN_BCM_TX_SEND: int
|
||||
CAN_BCM_RX_SETUP: int
|
||||
CAN_BCM_RX_DELETE: int
|
||||
CAN_BCM_RX_READ: int
|
||||
CAN_BCM_TX_STATUS: int
|
||||
CAN_BCM_TX_EXPIRED: int
|
||||
CAN_BCM_RX_STATUS: int
|
||||
CAN_BCM_RX_TIMEOUT: int
|
||||
CAN_BCM_RX_CHANGED: int
|
||||
|
||||
CAN_RAW_FD_FRAMES: int
|
||||
|
||||
if sys.platform == 'linux' and sys.version_info >= (3, 7):
|
||||
CAN_ISOTP: int
|
||||
|
||||
if sys.platform == 'linux':
|
||||
AF_PACKET: AddressFamily
|
||||
PF_PACKET: int
|
||||
PACKET_BROADCAST: int
|
||||
PACKET_FASTROUTE: int
|
||||
PACKET_HOST: int
|
||||
PACKET_LOOPBACK: int
|
||||
PACKET_MULTICAST: int
|
||||
PACKET_OTHERHOST: int
|
||||
PACKET_OUTGOING: int
|
||||
|
||||
if sys.platform == 'linux' and sys.version_info >= (3,):
|
||||
AF_RDS: AddressFamily
|
||||
PF_RDS: int
|
||||
SOL_RDS: int
|
||||
RDS_CANCEL_SENT_TO: int
|
||||
RDS_CMSG_RDMA_ARGS: int
|
||||
RDS_CMSG_RDMA_DEST: int
|
||||
@@ -355,58 +359,130 @@ if sys.version_info >= (3, 3):
|
||||
RDS_RDMA_USE_ONCE: int
|
||||
RDS_RECVERR: int
|
||||
|
||||
if sys.version_info >= (3, 4):
|
||||
CAN_BCM: int
|
||||
CAN_BCM_TX_SETUP: int
|
||||
CAN_BCM_TX_DELETE: int
|
||||
CAN_BCM_TX_READ: int
|
||||
CAN_BCM_TX_SEND: int
|
||||
CAN_BCM_RX_SETUP: int
|
||||
CAN_BCM_RX_DELETE: int
|
||||
CAN_BCM_RX_READ: int
|
||||
CAN_BCM_TX_STATUS: int
|
||||
CAN_BCM_TX_EXPIRED: int
|
||||
CAN_BCM_RX_STATUS: int
|
||||
CAN_BCM_RX_TIMEOUT: int
|
||||
CAN_BCM_RX_CHANGED: int
|
||||
AF_LINK: AddressFamily
|
||||
|
||||
if sys.version_info >= (3, 5):
|
||||
CAN_RAW_FD_FRAMES: int
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
SO_DOMAIN: int
|
||||
SO_PROTOCOL: int
|
||||
SO_PEERSEC: int
|
||||
SO_PASSSEC: int
|
||||
TCP_USER_TIMEOUT: int
|
||||
TCP_CONGESTION: int
|
||||
AF_ALG: AddressFamily
|
||||
SOL_ALG: int
|
||||
ALG_SET_KEY: int
|
||||
ALG_SET_IV: int
|
||||
ALG_SET_OP: int
|
||||
ALG_SET_AEAD_ASSOCLEN: int
|
||||
ALG_SET_AEAD_AUTHSIZE: int
|
||||
ALG_SET_PUBKEY: int
|
||||
ALG_OP_DECRYPT: int
|
||||
ALG_OP_ENCRYPT: int
|
||||
ALG_OP_SIGN: int
|
||||
ALG_OP_VERIFY: int
|
||||
|
||||
if sys.platform == 'win32':
|
||||
SIO_RCVALL: int
|
||||
SIO_KEEPALIVE_VALS: int
|
||||
if sys.version_info >= (3, 6):
|
||||
SIO_LOOPBACK_FAST_PATH: int
|
||||
RCVALL_IPLEVEL: int
|
||||
RCVALL_MAX: int
|
||||
RCVALL_OFF: int
|
||||
RCVALL_ON: int
|
||||
RCVALL_SOCKETLEVELONLY: int
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
SIO_LOOPBACK_FAST_PATH: int
|
||||
if sys.platform == 'linux':
|
||||
AF_TIPC: AddressFamily
|
||||
SOL_TIPC: int
|
||||
TIPC_ADDR_ID: int
|
||||
TIPC_ADDR_NAME: int
|
||||
TIPC_ADDR_NAMESEQ: int
|
||||
TIPC_CFG_SRV: int
|
||||
TIPC_CLUSTER_SCOPE: int
|
||||
TIPC_CONN_TIMEOUT: int
|
||||
TIPC_CRITICAL_IMPORTANCE: int
|
||||
TIPC_DEST_DROPPABLE: int
|
||||
TIPC_HIGH_IMPORTANCE: int
|
||||
TIPC_IMPORTANCE: int
|
||||
TIPC_LOW_IMPORTANCE: int
|
||||
TIPC_MEDIUM_IMPORTANCE: int
|
||||
TIPC_NODE_SCOPE: int
|
||||
TIPC_PUBLISHED: int
|
||||
TIPC_SRC_DROPPABLE: int
|
||||
TIPC_SUBSCR_TIMEOUT: int
|
||||
TIPC_SUB_CANCEL: int
|
||||
TIPC_SUB_PORTS: int
|
||||
TIPC_SUB_SERVICE: int
|
||||
TIPC_TOP_SRV: int
|
||||
TIPC_WAIT_FOREVER: int
|
||||
TIPC_WITHDRAWN: int
|
||||
TIPC_ZONE_SCOPE: int
|
||||
|
||||
# enum versions of above flags py 3.4+
|
||||
if sys.platform == 'linux' and sys.version_info >= (3, 6):
|
||||
AF_ALG: AddressFamily
|
||||
SOL_ALG: int
|
||||
ALG_OP_DECRYPT: int
|
||||
ALG_OP_ENCRYPT: int
|
||||
ALG_OP_SIGN: int
|
||||
ALG_OP_VERIFY: int
|
||||
ALG_SET_AEAD_ASSOCLEN: int
|
||||
ALG_SET_AEAD_AUTHSIZE: int
|
||||
ALG_SET_IV: int
|
||||
ALG_SET_KEY: int
|
||||
ALG_SET_OP: int
|
||||
ALG_SET_PUBKEY: int
|
||||
|
||||
if sys.platform == 'linux' and sys.version_info >= (3, 7):
|
||||
AF_VSOCK: AddressFamily
|
||||
IOCTL_VM_SOCKETS_GET_LOCAL_CID: int
|
||||
VMADDR_CID_ANY: int
|
||||
VMADDR_CID_HOST: int
|
||||
VMADDR_PORT_ANY: int
|
||||
SO_VM_SOCKETS_BUFFER_MAX_SIZE: int
|
||||
SO_VM_SOCKETS_BUFFER_SIZE: int
|
||||
SO_VM_SOCKETS_BUFFER_MIN_SIZE: int
|
||||
VM_SOCKETS_INVALID_VERSION: int
|
||||
|
||||
AF_LINK: AddressFamily # Availability: BSD, macOS
|
||||
|
||||
# BDADDR_* and HCI_* listed with other bluetooth constants below
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
SO_DOMAIN: int
|
||||
SO_PASSSEC: int
|
||||
SO_PEERSEC: int
|
||||
SO_PROTOCOL: int
|
||||
TCP_CONGESTION: int
|
||||
TCP_USER_TIMEOUT: int
|
||||
|
||||
if sys.platform == 'linux' and sys.version_info >= (3, 8):
|
||||
AF_QIPCRTR: AddressFamily
|
||||
|
||||
|
||||
# Semi-documented constants
|
||||
# (Listed under "Socket families" in the docs, but not "Constants")
|
||||
|
||||
if sys.platform == 'linux':
|
||||
# Netlink is defined by Linux
|
||||
AF_NETLINK: AddressFamily
|
||||
NETLINK_ARPD: int
|
||||
NETLINK_CRYPTO: int
|
||||
NETLINK_DNRTMSG: int
|
||||
NETLINK_FIREWALL: int
|
||||
NETLINK_IP6_FW: int
|
||||
NETLINK_NFLOG: int
|
||||
NETLINK_ROUTE6: int
|
||||
NETLINK_ROUTE: int
|
||||
NETLINK_SKIP: int
|
||||
NETLINK_TAPBASE: int
|
||||
NETLINK_TCPDIAG: int
|
||||
NETLINK_USERSOCK: int
|
||||
NETLINK_W1: int
|
||||
NETLINK_XFRM: int
|
||||
|
||||
if sys.platform != 'win32' and sys.platform != 'darwin':
|
||||
# Linux and some BSD support is explicit in the docs
|
||||
# Windows and macOS do not support in practice
|
||||
AF_BLUETOOTH: AddressFamily
|
||||
BTPROTO_HCI: int
|
||||
BTPROTO_L2CAP: int
|
||||
BTPROTO_RFCOMM: int
|
||||
BTPROTO_SCO: int # not in FreeBSD
|
||||
|
||||
BDADDR_ANY: str
|
||||
BDADDR_LOCAL: str
|
||||
|
||||
HCI_FILTER: int # not in NetBSD or DragonFlyBSD
|
||||
# not in FreeBSD, NetBSD, or DragonFlyBSD
|
||||
HCI_TIME_STAMP: int
|
||||
HCI_DATA_DIR: int
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
# PF_SYSTEM is defined by macOS
|
||||
PF_SYSTEM: int
|
||||
SYSPROTO_CONTROL: int
|
||||
|
||||
|
||||
# enum versions of above flags
|
||||
if sys.version_info >= (3, 4):
|
||||
from enum import IntEnum
|
||||
|
||||
@@ -414,6 +490,8 @@ if sys.version_info >= (3, 4):
|
||||
AF_UNIX: int
|
||||
AF_INET: int
|
||||
AF_INET6: int
|
||||
AF_AAL5: int
|
||||
AF_ALG: int
|
||||
AF_APPLETALK: int
|
||||
AF_ASH: int
|
||||
AF_ATMPVC: int
|
||||
@@ -421,26 +499,31 @@ if sys.version_info >= (3, 4):
|
||||
AF_AX25: int
|
||||
AF_BLUETOOTH: int
|
||||
AF_BRIDGE: int
|
||||
AF_CAN: int
|
||||
AF_DECnet: int
|
||||
AF_ECONET: int
|
||||
AF_IPX: int
|
||||
AF_IRDA: int
|
||||
AF_KEY: int
|
||||
AF_LINK: int
|
||||
AF_LLC: int
|
||||
AF_NETBEUI: int
|
||||
AF_NETLINK: int
|
||||
AF_NETROM: int
|
||||
AF_PACKET: int
|
||||
AF_PPPOX: int
|
||||
AF_QIPCRTR: int
|
||||
AF_RDS: int
|
||||
AF_ROSE: int
|
||||
AF_ROUTE: int
|
||||
AF_SECURITY: int
|
||||
AF_SNA: int
|
||||
AF_SYSTEM: int
|
||||
AF_TIPC: int
|
||||
AF_UNSPEC: int
|
||||
AF_VSOCK: int
|
||||
AF_WANPIPE: int
|
||||
AF_X25: int
|
||||
AF_LINK: int
|
||||
|
||||
class SocketKind(IntEnum):
|
||||
SOCK_STREAM: int
|
||||
@@ -480,7 +563,8 @@ else:
|
||||
MsgFlag = int
|
||||
|
||||
|
||||
# ----- exceptions -----
|
||||
# ----- Exceptions -----
|
||||
|
||||
if sys.version_info < (3,):
|
||||
class error(IOError): ...
|
||||
else:
|
||||
@@ -496,18 +580,19 @@ class timeout(error):
|
||||
def __init__(self, error: int = ..., string: str = ...) -> None: ...
|
||||
|
||||
|
||||
# ----- Classes -----
|
||||
|
||||
# Addresses can be either tuples of varying lengths (AF_INET, AF_INET6,
|
||||
# AF_NETLINK, AF_TIPC) or strings (AF_UNIX).
|
||||
|
||||
_Address = Union[tuple, str]
|
||||
_RetAddress = Any
|
||||
# TODO Most methods allow bytes as address objects
|
||||
|
||||
# TODO AF_PACKET and AF_BLUETOOTH address objects
|
||||
_WriteBuffer = Union[bytearray, memoryview]
|
||||
|
||||
_CMSG = Tuple[int, int, bytes]
|
||||
_SelfT = TypeVar('_SelfT', bound=socket)
|
||||
|
||||
# ----- classes -----
|
||||
class socket:
|
||||
family: int
|
||||
type: int
|
||||
@@ -517,8 +602,6 @@ class socket:
|
||||
def __init__(self, family: int = ..., type: int = ..., proto: int = ...) -> None: ...
|
||||
else:
|
||||
def __init__(self, family: int = ..., type: int = ..., proto: int = ..., fileno: Optional[int] = ...) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 2):
|
||||
def __enter__(self: _SelfT) -> _SelfT: ...
|
||||
def __exit__(self, *args: Any) -> None: ...
|
||||
|
||||
@@ -529,8 +612,10 @@ class socket:
|
||||
def connect(self, address: Union[_Address, bytes]) -> None: ...
|
||||
def connect_ex(self, address: Union[_Address, bytes]) -> int: ...
|
||||
def detach(self) -> int: ...
|
||||
def dup(self) -> socket: ...
|
||||
def fileno(self) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 4):
|
||||
def get_inheritable(self) -> bool: ...
|
||||
def getpeername(self) -> _RetAddress: ...
|
||||
def getsockname(self) -> _RetAddress: ...
|
||||
|
||||
@@ -539,71 +624,118 @@ class socket:
|
||||
@overload
|
||||
def getsockopt(self, level: int, optname: int, buflen: int) -> bytes: ...
|
||||
|
||||
if sys.version_info >= (3, 7):
|
||||
def getblocking(self) -> bool: ...
|
||||
def gettimeout(self) -> Optional[float]: ...
|
||||
def ioctl(self, control: object,
|
||||
option: Tuple[int, int, int]) -> None: ...
|
||||
if sys.version_info < (3, 5):
|
||||
def listen(self, backlog: int) -> None: ...
|
||||
else:
|
||||
def listen(self, backlog: int = ...) -> None: ...
|
||||
# TODO the return value may be BinaryIO or TextIO, depending on mode
|
||||
def makefile(self, mode: str = ..., buffering: int = ...,
|
||||
encoding: str = ..., errors: str = ...,
|
||||
newline: str = ...) -> Any:
|
||||
...
|
||||
def recv(self, bufsize: int, flags: int = ...) -> bytes: ...
|
||||
|
||||
if sys.platform == 'win32':
|
||||
def ioctl(self, control: object, option: Tuple[int, int, int]) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 5):
|
||||
def listen(self, __backlog: int = ...) -> None: ...
|
||||
else:
|
||||
def listen(self, __backlog: int) -> None: ...
|
||||
# Note that the makefile's documented windows-specific behavior is not represented
|
||||
if sys.version_info < (3,):
|
||||
def makefile(self, mode: unicode = ..., buffering: int = ...) -> BinaryIO: ...
|
||||
else:
|
||||
# mode strings with duplicates are intentionally excluded
|
||||
@overload
|
||||
def makefile(self,
|
||||
mode: Literal['r', 'w', 'rw', 'wr', ''],
|
||||
buffering: Optional[int] = ...,
|
||||
*,
|
||||
encoding: Optional[str] = ...,
|
||||
errors: Optional[str] = ...,
|
||||
newline: Optional[str] = ...) -> TextIO: ...
|
||||
@overload
|
||||
def makefile(self,
|
||||
mode: Literal['b', 'rb', 'br', 'wb', 'bw', 'rwb', 'rbw', 'wrb', 'wbr', 'brw', 'bwr'] = ...,
|
||||
buffering: Optional[int] = ...,
|
||||
*,
|
||||
encoding: Optional[str] = ...,
|
||||
errors: Optional[str] = ...,
|
||||
newline: Optional[str] = ...) -> BinaryIO: ...
|
||||
def recv(self, bufsize: int, flags: int = ...) -> bytes: ...
|
||||
def recvfrom(self, bufsize: int, flags: int = ...) -> Tuple[bytes, _RetAddress]: ...
|
||||
def recvfrom_into(self, buffer: _WriteBuffer, nbytes: int,
|
||||
flags: int = ...) -> Tuple[int, _RetAddress]: ...
|
||||
def recv_into(self, buffer: _WriteBuffer, nbytes: int,
|
||||
flags: int = ...) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
def recvmsg(self, __bufsize: int, __ancbufsize: int = ..., __flags: int = ...) -> Tuple[bytes, List[_CMSG], int, Any]: ...
|
||||
def recvmsg_into(self,
|
||||
__buffers: Iterable[_WriteBuffer],
|
||||
__ancbufsize: int = ...,
|
||||
__flags: int = ...) -> Tuple[int, List[_CMSG], int, Any]: ...
|
||||
def recvfrom_into(self, buffer: _WriteBuffer, nbytes: int = ..., flags: int = ...) -> Tuple[int, _RetAddress]: ...
|
||||
def recv_into(self, buffer: _WriteBuffer, nbytes: int = ..., flags: int = ...) -> int: ...
|
||||
def send(self, data: bytes, flags: int = ...) -> int: ...
|
||||
def sendall(self, data: bytes, flags: int = ...) -> None:
|
||||
... # return type: None on success
|
||||
def sendall(self, data: bytes, flags: int = ...) -> None: ... # return type: None on success
|
||||
@overload
|
||||
def sendto(self, data: bytes, address: _Address) -> int: ...
|
||||
@overload
|
||||
def sendto(self, data: bytes, flags: int, address: _Address) -> int: ...
|
||||
if sys.version_info >= (3, 3):
|
||||
def sendmsg(self,
|
||||
__buffers: Iterable[bytes],
|
||||
__ancdata: Iterable[_CMSG] = ...,
|
||||
__flags: int = ...,
|
||||
__address: _Address = ...) -> int: ...
|
||||
if sys.platform == 'linux' and sys.version_info >= (3, 6):
|
||||
# TODO add the parameter types for sendmsg_afalg
|
||||
def sendmsg_afalg(self, msg=..., *, op, iv=..., assoclen=..., flags=...) -> int: ...
|
||||
|
||||
if sys.version_info >= (3,):
|
||||
# TODO determine legal types for file parameter
|
||||
def sendfile(self, file, offset: int = ..., count: Optional[int] = ...) -> int: ...
|
||||
def set_inheritable(self, inheritable: bool) -> None: ...
|
||||
def setblocking(self, flag: bool) -> None: ...
|
||||
def settimeout(self, value: Optional[float]) -> None: ...
|
||||
def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...
|
||||
|
||||
if sys.version_info < (3, 6):
|
||||
def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...
|
||||
else:
|
||||
@overload
|
||||
def setsockopt(self, level: int, optname: int, value: Union[int, bytes]) -> None: ...
|
||||
@overload
|
||||
def setsockopt(self, level: int, optname: int, value: None, optlen: int) -> None: ...
|
||||
|
||||
if sys.platform == 'win32':
|
||||
def share(self, process_id: int) -> bytes: ...
|
||||
|
||||
def shutdown(self, how: int) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
def recvmsg(self, __bufsize: int, __ancbufsize: int = ...,
|
||||
__flags: int = ...) -> Tuple[bytes, List[_CMSG], int, Any]: ...
|
||||
def recvmsg_into(self, __buffers: Iterable[_WriteBuffer], __ancbufsize: int = ...,
|
||||
__flags: int = ...) -> Tuple[int, List[_CMSG], int, Any]: ...
|
||||
def sendmsg(self, __buffers: Iterable[bytes], __ancdata: Iterable[_CMSG] = ...,
|
||||
__flags: int = ..., __address: _Address = ...) -> int: ...
|
||||
if sys.version_info >= (3, 4):
|
||||
def set_inheritable(self, inheritable: bool) -> None: ...
|
||||
|
||||
# ----- Functions -----
|
||||
|
||||
if sys.version_info >= (3, 7):
|
||||
def close(fd: int) -> None: ...
|
||||
|
||||
# ----- functions -----
|
||||
def create_connection(address: Tuple[Optional[str], int],
|
||||
timeout: Optional[float] = ...,
|
||||
source_address: Tuple[Union[bytearray, bytes, Text], int] = ...) -> socket: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def create_server(address: _Address,
|
||||
*,
|
||||
family: int = ...,
|
||||
backlog: Optional[int] = ...,
|
||||
reuse_port: bool = ...,
|
||||
dualstack_ipv6: bool = ...) -> socket: ...
|
||||
def has_dualstack_ipv6() -> bool: ...
|
||||
def create_server(
|
||||
address: Tuple[str, int],
|
||||
*,
|
||||
family: AddressFamily = ...,
|
||||
backlog: Optional[int] = ...,
|
||||
reuse_port: bool = ...,
|
||||
dualstack_ipv6: bool = ...,
|
||||
) -> socket: ...
|
||||
|
||||
def fromfd(fd: int, family: int, type: int, proto: int = ...) -> socket: ...
|
||||
|
||||
if sys.platform == 'win32' and sys.version_info >= (3, 3):
|
||||
def fromshare(data: bytes) -> socket: ...
|
||||
|
||||
# the 5th tuple item is an address
|
||||
# TODO the "Tuple[Any, ...]" should be "Union[Tuple[str, int], Tuple[str, int, int, int]]" but that triggers
|
||||
# https://github.com/python/mypy/issues/2509
|
||||
def getaddrinfo(
|
||||
host: Optional[Union[bytearray, bytes, Text]], port: Union[str, int, None], family: int = ...,
|
||||
socktype: int = ..., proto: int = ...,
|
||||
flags: int = ...) -> List[Tuple[AddressFamily, SocketKind, int, str, Tuple[Any, ...]]]:
|
||||
...
|
||||
def getaddrinfo(host: Optional[Union[bytearray, bytes, Text]],
|
||||
port: Union[str, int, None],
|
||||
family: int = ...,
|
||||
socktype: int = ...,
|
||||
proto: int = ...,
|
||||
flags: int = ...) -> List[Tuple[AddressFamily, SocketKind, int, str, Tuple[Any, ...]]]: ...
|
||||
|
||||
def getfqdn(name: str = ...) -> str: ...
|
||||
def gethostbyname(hostname: str) -> str: ...
|
||||
@@ -614,10 +746,7 @@ def getnameinfo(sockaddr: Union[Tuple[str, int], Tuple[str, int, int, int]], fla
|
||||
def getprotobyname(protocolname: str) -> int: ...
|
||||
def getservbyname(servicename: str, protocolname: str = ...) -> int: ...
|
||||
def getservbyport(port: int, protocolname: str = ...) -> str: ...
|
||||
def socketpair(family: int = ...,
|
||||
type: int = ...,
|
||||
proto: int = ...) -> Tuple[socket, socket]: ...
|
||||
def fromfd(fd: int, family: int, type: int, proto: int = ...) -> socket: ...
|
||||
def socketpair(family: int = ..., type: int = ..., proto: int = ...) -> Tuple[socket, socket]: ...
|
||||
def ntohl(x: int) -> int: ... # param & ret val are 32-bit ints
|
||||
def ntohs(x: int) -> int: ... # param & ret val are 16-bit ints
|
||||
def htonl(x: int) -> int: ... # param & ret val are 32-bit ints
|
||||
@@ -626,12 +755,12 @@ def inet_aton(ip_string: str) -> bytes: ... # ret val 4 bytes in length
|
||||
def inet_ntoa(packed_ip: bytes) -> str: ...
|
||||
def inet_pton(address_family: int, ip_string: str) -> bytes: ...
|
||||
def inet_ntop(address_family: int, packed_ip: bytes) -> str: ...
|
||||
def getdefaulttimeout() -> Optional[float]: ...
|
||||
def setdefaulttimeout(timeout: Optional[float]) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
def CMSG_LEN(length: int) -> int: ...
|
||||
def CMSG_SPACE(length: int) -> int: ...
|
||||
def getdefaulttimeout() -> Optional[float]: ...
|
||||
def setdefaulttimeout(timeout: Optional[float]) -> None: ...
|
||||
if sys.version_info >= (3, 3):
|
||||
def sethostname(name: str) -> None: ...
|
||||
def if_nameindex() -> List[Tuple[int, str]]: ...
|
||||
def if_nametoindex(name: str) -> int: ...
|
||||
|
||||
Reference in New Issue
Block a user