From 2ae555c14499f80dea58e745b56824093b96d319 Mon Sep 17 00:00:00 2001 From: Filip Hron Date: Wed, 2 Mar 2016 14:07:37 +0100 Subject: [PATCH 1/5] refractoring overload --- stdlib/3/socket.pyi | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index d2f3c9716..8261a090a 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -5,7 +5,7 @@ # see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py # see: http://nullege.com/codes/search/socket -from typing import Any, Tuple, overload, List +from typing import Any, Tuple, Union, List # ----- variables and constants ----- @@ -282,36 +282,17 @@ class socket: # --- methods --- # second tuple item is an address def accept(self) -> Tuple['socket', Any]: ... - - @overload - def bind(self, address: tuple) -> None: ... - @overload - def bind(self, address: str) -> None: ... - + def bind(self, address: Union[tuple, str]) -> None: ... def close(self) -> None: ... - - @overload - def connect(self, address: tuple) -> None: ... - @overload - def connect(self, address: str) -> None: ... - - @overload - def connect_ex(self, address: tuple) -> int: ... - @overload - def connect_ex(self, address: str) -> int: ... - + def connect(self, address: Union[tuple, str]) -> None: ... + def connect_ex(self, address: Union[tuple, str]) -> int: ... def detach(self) -> int: ... def fileno(self) -> int: ... # return value is an address def getpeername(self) -> Any: ... def getsockname(self) -> Any: ... - - @overload - def getsockopt(self, level: int, optname: str) -> bytes: ... - @overload def getsockopt(self, level: int, optname: str, buflen: int) -> bytes: ... - def gettimeout(self) -> float: ... def ioctl(self, control: object, option: Tuple[int, int, int]) -> None: ... @@ -332,21 +313,11 @@ class socket: def send(self, data: bytes, flags=...) -> int: ... def sendall(self, data: bytes, flags=...) -> Any: ... # return type: None on success - - @overload - def sendto(self, data: bytes, address: tuple, flags: int = ...) -> int: ... - @overload - def sendto(self, data: bytes, address: str, flags: int = ...) -> int: ... - + def sendto(self, data: bytes, address: Union[tuple, str], flags: int = ...) -> int: ... def setblocking(self, flag: bool) -> None: ... # TODO None valid for the value argument def settimeout(self, value: float) -> None: ... - - @overload - def setsockopt(self, level: int, optname: str, value: int) -> None: ... - @overload - def setsockopt(self, level: int, optname: str, value: bytes) -> None: ... - + def setsockopt(self, level: int, optname: str, value: Union[int, bytes]) -> None: ... def shutdown(self, how: int) -> None: ... From d5cf02390fa2a419a47d8ba7e5d34bf9252989ff Mon Sep 17 00:00:00 2001 From: Filip Hron Date: Wed, 2 Mar 2016 23:09:27 +0100 Subject: [PATCH 2/5] refractoring py2 socket by removing override decorator --- stdlib/2.7/socket.pyi | 41 ++++++----------------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/stdlib/2.7/socket.pyi b/stdlib/2.7/socket.pyi index 807c0f1c4..5b146c89c 100644 --- a/stdlib/2.7/socket.pyi +++ b/stdlib/2.7/socket.pyi @@ -6,7 +6,7 @@ # see: http://nullege.com/codes/search/socket # adapted for Python 2.7 by Michal Pokorny -from typing import Any, Tuple, overload, List, Optional, Union +from typing import Any, Tuple, List, Optional, Union # ----- variables and constants ----- @@ -283,36 +283,17 @@ class socket: # --- methods --- # second tuple item is an address def accept(self) -> Tuple['socket', Any]: ... - - @overload - def bind(self, address: tuple) -> None: ... - @overload - def bind(self, address: str) -> None: ... - + def bind(self, address: Union[tuple, str]) -> None: ... def close(self) -> None: ... - - @overload - def connect(self, address: tuple) -> None: ... - @overload - def connect(self, address: str) -> None: ... - - @overload - def connect_ex(self, address: tuple) -> int: ... - @overload - def connect_ex(self, address: str) -> int: ... - + def connect(self, address: Union[tuple, str]) -> None: ... + def connect_ex(self, address: Union[tuple, str]) -> int: ... def detach(self) -> int: ... def fileno(self) -> int: ... # return value is an address def getpeername(self) -> Any: ... def getsockname(self) -> Any: ... - - @overload - def getsockopt(self, level: int, optname: str) -> str: ... - @overload def getsockopt(self, level: int, optname: str, buflen: int) -> str: ... - def gettimeout(self) -> float: ... def ioctl(self, control: object, option: Tuple[int, int, int]) -> None: ... @@ -333,21 +314,11 @@ class socket: def send(self, data: str, flags=...) -> int: ... def sendall(self, data: str, flags=...) -> Any: ... # return type: None on success - - @overload - def sendto(self, data: str, address: tuple, flags: int = ...) -> int: ... - @overload - def sendto(self, data: str, address: str, flags: int = ...) -> int: ... - + def sendto(self, data: str, address: Union[tuple, str], flags: int = ...) -> int: ... def setblocking(self, flag: bool) -> None: ... # TODO None valid for the value argument def settimeout(self, value: float) -> None: ... - - @overload - def setsockopt(self, level: int, optname: str, value: int) -> None: ... - @overload - def setsockopt(self, level: int, optname: str, value: str) -> None: ... - + def setsockopt(self, level: int, optname: str, value: Union[int, str]) -> None: ... def shutdown(self, how: int) -> None: ... From 0a11b5e89879154ee518f6145f7df64079704ebe Mon Sep 17 00:00:00 2001 From: Filip Hron Date: Wed, 2 Mar 2016 23:09:27 +0100 Subject: [PATCH 3/5] putting @overload decorator back to getsockopt method --- stdlib/2.7/socket.pyi | 40 ++++++++-------------------------------- stdlib/3/socket.pyi | 7 ++++++- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/stdlib/2.7/socket.pyi b/stdlib/2.7/socket.pyi index 807c0f1c4..1c0c83396 100644 --- a/stdlib/2.7/socket.pyi +++ b/stdlib/2.7/socket.pyi @@ -6,7 +6,7 @@ # see: http://nullege.com/codes/search/socket # adapted for Python 2.7 by Michal Pokorny -from typing import Any, Tuple, overload, List, Optional, Union +from typing import Any, Tuple, List, Optional, Union, overload # ----- variables and constants ----- @@ -283,24 +283,10 @@ class socket: # --- methods --- # second tuple item is an address def accept(self) -> Tuple['socket', Any]: ... - - @overload - def bind(self, address: tuple) -> None: ... - @overload - def bind(self, address: str) -> None: ... - + def bind(self, address: Union[tuple, str]) -> None: ... def close(self) -> None: ... - - @overload - def connect(self, address: tuple) -> None: ... - @overload - def connect(self, address: str) -> None: ... - - @overload - def connect_ex(self, address: tuple) -> int: ... - @overload - def connect_ex(self, address: str) -> int: ... - + def connect(self, address: Union[tuple, str]) -> None: ... + def connect_ex(self, address: Union[tuple, str]) -> int: ... def detach(self) -> int: ... def fileno(self) -> int: ... @@ -309,9 +295,9 @@ class socket: def getsockname(self) -> Any: ... @overload - def getsockopt(self, level: int, optname: str) -> str: ... + def getsockopt(self, level: int, optname: str) -> int: ... @overload - def getsockopt(self, level: int, optname: str, buflen: int) -> str: ... + def getsockopt(self, level: int, optname: str, buflen: int) -> bytes: ... def gettimeout(self) -> float: ... def ioctl(self, control: object, @@ -333,21 +319,11 @@ class socket: def send(self, data: str, flags=...) -> int: ... def sendall(self, data: str, flags=...) -> Any: ... # return type: None on success - - @overload - def sendto(self, data: str, address: tuple, flags: int = ...) -> int: ... - @overload - def sendto(self, data: str, address: str, flags: int = ...) -> int: ... - + def sendto(self, data: str, address: Union[tuple, str], flags: int = ...) -> int: ... def setblocking(self, flag: bool) -> None: ... # TODO None valid for the value argument def settimeout(self, value: float) -> None: ... - - @overload - def setsockopt(self, level: int, optname: str, value: int) -> None: ... - @overload - def setsockopt(self, level: int, optname: str, value: str) -> None: ... - + def setsockopt(self, level: int, optname: str, value: Union[int, str]) -> None: ... def shutdown(self, how: int) -> None: ... diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index 8261a090a..aeed3508f 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -5,7 +5,7 @@ # see: http://hg.python.org/cpython/file/3d0686d90f55/Lib/socket.py # see: http://nullege.com/codes/search/socket -from typing import Any, Tuple, Union, List +from typing import Any, Tuple, Union, List, overload # ----- variables and constants ----- @@ -292,7 +292,12 @@ class socket: # return value is an address def getpeername(self) -> Any: ... def getsockname(self) -> Any: ... + + @overload + def getsockopt(self, level: int, optname: str) -> int: ... + @overload def getsockopt(self, level: int, optname: str, buflen: int) -> bytes: ... + def gettimeout(self) -> float: ... def ioctl(self, control: object, option: Tuple[int, int, int]) -> None: ... From 5b92f7cbc5095d59da8130246354ff1c11948531 Mon Sep 17 00:00:00 2001 From: Filip Hron Date: Thu, 3 Mar 2016 10:15:56 +0100 Subject: [PATCH 4/5] putting @overload decorator back to getsockopt method --- stdlib/2.7/socket.pyi | 4 ---- 1 file changed, 4 deletions(-) diff --git a/stdlib/2.7/socket.pyi b/stdlib/2.7/socket.pyi index 2d42323a8..1c0c83396 100644 --- a/stdlib/2.7/socket.pyi +++ b/stdlib/2.7/socket.pyi @@ -6,11 +6,7 @@ # see: http://nullege.com/codes/search/socket # adapted for Python 2.7 by Michal Pokorny -<<<<<<< HEAD from typing import Any, Tuple, List, Optional, Union, overload -======= -from typing import Any, Tuple, List, Optional, Union ->>>>>>> d5cf02390fa2a419a47d8ba7e5d34bf9252989ff # ----- variables and constants ----- From e7e50b6997ea745a558ad3e2f8e652847b64b7e7 Mon Sep 17 00:00:00 2001 From: Filip Hron Date: Thu, 3 Mar 2016 16:55:33 +0100 Subject: [PATCH 5/5] attempt to get rid of TODOS, should i edit tests too? --- stdlib/2.7/socket.pyi | 6 ++---- stdlib/3/socket.pyi | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/stdlib/2.7/socket.pyi b/stdlib/2.7/socket.pyi index 1c0c83396..93864c303 100644 --- a/stdlib/2.7/socket.pyi +++ b/stdlib/2.7/socket.pyi @@ -321,8 +321,7 @@ class socket: ... # return type: None on success def sendto(self, data: str, address: Union[tuple, str], flags: int = ...) -> int: ... def setblocking(self, flag: bool) -> None: ... - # TODO None valid for the value argument - def settimeout(self, value: float) -> None: ... + def settimeout(self, value: Union[float, None]) -> None: ... def setsockopt(self, level: int, optname: str, value: Union[int, str]) -> None: ... def shutdown(self, how: int) -> None: ... @@ -359,6 +358,5 @@ def inet_aton(ip_string: str) -> str: ... # ret val 4 bytes in length def inet_ntoa(packed_ip: str) -> str: ... def inet_pton(address_family: int, ip_string: str) -> str: ... def inet_ntop(address_family: int, packed_ip: str) -> str: ... -# TODO the timeout may be None -def getdefaulttimeout() -> float: ... +def getdefaulttimeout() -> Union[float, None]: ... def setdefaulttimeout(timeout: float) -> None: ... diff --git a/stdlib/3/socket.pyi b/stdlib/3/socket.pyi index aeed3508f..dba7b526f 100644 --- a/stdlib/3/socket.pyi +++ b/stdlib/3/socket.pyi @@ -320,8 +320,7 @@ class socket: ... # return type: None on success def sendto(self, data: bytes, address: Union[tuple, str], flags: int = ...) -> int: ... def setblocking(self, flag: bool) -> None: ... - # TODO None valid for the value argument - def settimeout(self, value: float) -> None: ... + def settimeout(self, value: Union[float, None]) -> None: ... def setsockopt(self, level: int, optname: str, value: Union[int, bytes]) -> None: ... def shutdown(self, how: int) -> None: ... @@ -358,6 +357,5 @@ 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: ... -# TODO the timeout may be None -def getdefaulttimeout() -> float: ... +def getdefaulttimeout() -> Union[float, None]: ... def setdefaulttimeout(timeout: float) -> None: ...