From ad103f21b4cc8dc6c11c078c320c3b9abfad2fbd Mon Sep 17 00:00:00 2001 From: John Reese Date: Thu, 30 Mar 2017 18:47:12 -0700 Subject: [PATCH 1/3] 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. --- stdlib/3/socket.pyi | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index 0675df1c1c91..b568574c7aab 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -5,7 +5,9 @@ # 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 +from enum import IntEnum # ----- variables and constants ----- @@ -250,6 +252,68 @@ TIPC_WITHDRAWN = 0 TIPC_ZONE_SCOPE = 0 +# enum versions of above flags py 3.4+ +if sys.version_info >= (3, 4): + class AddressInfo(IntEnum): + AI_ADDRCONFIG = ... + AI_ALL = ... + AI_CANONNAME = ... + AI_NUMERICHOST = ... + AI_NUMERICSERV = ... + AI_PASSIVE = ... + AI_V4MAPPED = ... + + 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 MsgFlag(IntEnum): + MSG_CTRUNC = ... + MSG_DONTROUTE = ... + MSG_DONTWAIT = ... + MSG_EOR = ... + MSG_OOB = ... + MSG_PEEK = ... + MSG_TRUNC = ... + MSG_WAITALL = ... + + class SocketKind(IntEnum): + SOCK_STREAM = ... + SOCK_DGRAM = ... + SOCK_RAW = ... + SOCK_RDM = ... + SOCK_SEQPACKET = ... + SOCK_CLOEXEC = ... + SOCK_NONBLOCK = ... + + # ----- exceptions ----- class error(IOError): ... From 3957ebea868825597f58279c5b1e68b2c8f42b1e Mon Sep 17 00:00:00 2001 From: John Reese Date: Fri, 31 Mar 2017 10:25:01 -0700 Subject: [PATCH 2/3] Update socket AddressInfo/MsgFlag to use IntFlag type --- stdlib/3/socket.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index b568574c7aab..65d4c6927f1d 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -7,7 +7,7 @@ import sys from typing import Any, Tuple, List, Optional, Union, overload -from enum import IntEnum +from enum import IntEnum, IntFlag # ----- variables and constants ----- @@ -254,7 +254,7 @@ TIPC_ZONE_SCOPE = 0 # enum versions of above flags py 3.4+ if sys.version_info >= (3, 4): - class AddressInfo(IntEnum): + class AddressInfo(IntFlag): AI_ADDRCONFIG = ... AI_ALL = ... AI_CANONNAME = ... @@ -294,7 +294,7 @@ if sys.version_info >= (3, 4): AF_WANPIPE = ... AF_X25 = ... - class MsgFlag(IntEnum): + class MsgFlag(IntFlag): MSG_CTRUNC = ... MSG_DONTROUTE = ... MSG_DONTWAIT = ... From 82d6594c010a113f5e12c257d1302e4f990d05f6 Mon Sep 17 00:00:00 2001 From: John Reese Date: Fri, 31 Mar 2017 10:42:00 -0700 Subject: [PATCH 3/3] IntFlag, AddressInfo, and MsgFlag are py 3.6+ --- stdlib/3/socket.pyi | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index 65d4c6927f1d..47c574e6ede7 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -7,7 +7,6 @@ import sys from typing import Any, Tuple, List, Optional, Union, overload -from enum import IntEnum, IntFlag # ----- variables and constants ----- @@ -254,14 +253,7 @@ TIPC_ZONE_SCOPE = 0 # enum versions of above flags py 3.4+ if sys.version_info >= (3, 4): - class AddressInfo(IntFlag): - AI_ADDRCONFIG = ... - AI_ALL = ... - AI_CANONNAME = ... - AI_NUMERICHOST = ... - AI_NUMERICSERV = ... - AI_PASSIVE = ... - AI_V4MAPPED = ... + from enum import IntEnum class AddressFamily(IntEnum): AF_UNIX = ... @@ -294,6 +286,27 @@ if sys.version_info >= (3, 4): 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 = ... @@ -304,15 +317,6 @@ if sys.version_info >= (3, 4): MSG_TRUNC = ... MSG_WAITALL = ... - class SocketKind(IntEnum): - SOCK_STREAM = ... - SOCK_DGRAM = ... - SOCK_RAW = ... - SOCK_RDM = ... - SOCK_SEQPACKET = ... - SOCK_CLOEXEC = ... - SOCK_NONBLOCK = ... - # ----- exceptions ----- class error(IOError):