--- /dev/null
+# Stubs for poplib (Python 2 and 3)\r
+\r
+import socket\r
+import ssl\r
+import sys\r
+from typing import (\r
+ Any, BinaryIO, Dict, List, NoReturn, Optional, overload, Pattern, Text,\r
+ Tuple,\r
+)\r
+\r
+_LongResp = Tuple[bytes, List[bytes], int]\r
+\r
+class error_proto(Exception): ...\r
+\r
+POP3_PORT: int\r
+POP3_SSL_PORT: int\r
+CR: bytes\r
+LF: bytes\r
+CRLF: bytes\r
+\r
+\r
+class POP3:\r
+ if sys.version_info >= (3, 0):\r
+ encoding: Text\r
+\r
+ host: Text\r
+ port: int\r
+ sock: socket.socket\r
+ file: BinaryIO\r
+ welcome: bytes\r
+\r
+ def __init__(self, host: Text, port: int = ..., timeout: float = ...) -> None: ...\r
+ def getwelcome(self) -> bytes: ...\r
+ def set_debuglevel(self, level: int) -> None: ...\r
+ def user(self, user: Text) -> bytes: ...\r
+ def pass_(self, pswd: Text) -> bytes: ...\r
+ def stat(self) -> Tuple[int, int]: ...\r
+ def list(self, which: Optional[Any] = ...) -> _LongResp: ...\r
+ def retr(self, which: Any) -> _LongResp: ...\r
+ def dele(self, which: Any) -> bytes: ...\r
+ def noop(self) -> bytes: ...\r
+ def rset(self) -> bytes: ...\r
+ def quit(self) -> bytes: ...\r
+ def close(self) -> None: ...\r
+ def rpop(self, user: Text) -> bytes: ...\r
+\r
+ timestamp: Pattern[Text]\r
+\r
+ if sys.version_info < (3, 0):\r
+ def apop(self, user: Text, secret: Text) -> bytes: ...\r
+ else:\r
+ def apop(self, user: Text, password: Text) -> bytes: ...\r
+ def top(self, which: Any, howmuch: int) -> _LongResp: ...\r
+\r
+ @overload\r
+ def uidl(self) -> _LongResp: ...\r
+ @overload\r
+ def uidl(self, which: Any) -> bytes: ...\r
+\r
+ if sys.version_info >= (3, 5):\r
+ def utf8(self) -> bytes: ...\r
+ if sys.version_info >= (3, 4):\r
+ def capa(self) -> Dict[Text, List[Text]]: ...\r
+ def stls(self, context: Optional[ssl.SSLContext] = ...) -> bytes: ...\r
+\r
+\r
+class POP3_SSL(POP3):\r
+ if sys.version_info >= (3, 0):\r
+ def __init__(self, host: Text, port: int = ..., keyfile: Optional[Text] = ..., certfile: Optional[Text] = ...,\r
+ timeout: float = ..., context: Optional[ssl.SSLContext] = ...) -> None: ...\r
+ else:\r
+ def __init__(self, host: Text, port: int = ..., keyfile: Optional[Text] = ..., certfile: Optional[Text] = ...,\r
+ timeout: float = ...) -> None: ...\r
+\r
+ if sys.version_info >= (3, 4):\r
+ # "context" is actually the last argument, but that breaks LSP and it doesn't really matter because all the arguments are ignored\r
+ def stls(self, context: Any = ..., keyfile: Any = ..., certfile: Any = ...) -> bytes: ...\r