Add socket enum classes from py3.4+ (#1121)

* Add socket enum classes from py3.4+

Adds four IntEnum classes in the socket module that mirror the
AF_, AI_, MSG_, and SOCK_ sets of constants.

* Update socket AddressInfo/MsgFlag to use IntFlag type

* IntFlag, AddressInfo, and MsgFlag are py 3.6+
This commit is contained in:
John Reese
2017-04-04 23:49:01 -07:00
committed by Jelle Zijlstra
parent f44e461d19
commit 8510adfe05

View File

@@ -5,6 +5,7 @@
# see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py
# see: http://nullege.com/codes/search/socket
import sys
from typing import Any, Tuple, List, Optional, Union, overload
# ----- variables and constants -----
@@ -250,6 +251,73 @@ TIPC_WITHDRAWN = 0
TIPC_ZONE_SCOPE = 0
# enum versions of above flags py 3.4+
if sys.version_info >= (3, 4):
from enum import IntEnum
class AddressFamily(IntEnum):
AF_UNIX = ...
AF_INET = ...
AF_INET6 = ...
AF_APPLETALK = ...
AF_ASH = ...
AF_ATMPVC = ...
AF_ATMSVC = ...
AF_AX25 = ...
AF_BLUETOOTH = ...
AF_BRIDGE = ...
AF_DECnet = ...
AF_ECONET = ...
AF_IPX = ...
AF_IRDA = ...
AF_KEY = ...
AF_LLC = ...
AF_NETBEUI = ...
AF_NETLINK = ...
AF_NETROM = ...
AF_PACKET = ...
AF_PPPOX = ...
AF_ROSE = ...
AF_ROUTE = ...
AF_SECURITY = ...
AF_SNA = ...
AF_TIPC = ...
AF_UNSPEC = ...
AF_WANPIPE = ...
AF_X25 = ...
class SocketKind(IntEnum):
SOCK_STREAM = ...
SOCK_DGRAM = ...
SOCK_RAW = ...
SOCK_RDM = ...
SOCK_SEQPACKET = ...
SOCK_CLOEXEC = ...
SOCK_NONBLOCK = ...
if sys.version_info >= (3, 6):
from enum import IntFlag
class AddressInfo(IntFlag):
AI_ADDRCONFIG = ...
AI_ALL = ...
AI_CANONNAME = ...
AI_NUMERICHOST = ...
AI_NUMERICSERV = ...
AI_PASSIVE = ...
AI_V4MAPPED = ...
class MsgFlag(IntFlag):
MSG_CTRUNC = ...
MSG_DONTROUTE = ...
MSG_DONTWAIT = ...
MSG_EOR = ...
MSG_OOB = ...
MSG_PEEK = ...
MSG_TRUNC = ...
MSG_WAITALL = ...
# ----- exceptions -----
class error(IOError):
...