From 6d527a2f1d26ee00b9ccf2320e11e45f6ce141cb Mon Sep 17 00:00:00 2001 From: zevav Date: Thu, 26 Jul 2018 15:24:20 -0400 Subject: [PATCH] added type hint stubs for all modules --- imbox/__init__.pyi | 58 ++++++++++++++++++++++++++++++++++++++++++++++ imbox/imap.pyi | 13 +++++++++++ imbox/parser.pyi | 0 imbox/query.pyi | 0 imbox/utils.pyi | 0 5 files changed, 71 insertions(+) create mode 100644 imbox/__init__.pyi create mode 100644 imbox/imap.pyi create mode 100644 imbox/parser.pyi create mode 100644 imbox/query.pyi create mode 100644 imbox/utils.pyi diff --git a/imbox/__init__.pyi b/imbox/__init__.pyi new file mode 100644 index 0000000..1979263 --- /dev/null +++ b/imbox/__init__.pyi @@ -0,0 +1,58 @@ +import datetime +from email._policybase import Policy +from imaplib import IMAP4, IMAP4_SSL +from inspect import Traceback +from ssl import SSLContext +from typing import Optional, Union, List, Tuple, Generator + +from imbox.parser import Struct + + +class Imbox: + + def __init__(self, hostname: str, username: Optional[str], password: Optional[str], ssl: bool, + port: Optional[int], ssl_context: Optional[SSLContext], policy: Optional[Policy], starttls: bool): ... + + def __enter__(self) -> 'Imbox': ... + + def __exit__(self, type: Exception, value: str, traceback: Traceback) -> None: ... + + def logout(self) -> None: ... + + def mark_seen(self, uid: bytes) -> None: ... + + def mark_flag(self, uid: bytes) -> None: ... + + def delete(self, uid: bytes) -> None: ... + + def copy(self, uid: bytes, destination_folder: Union[bytes, str]) -> Tuple[str, Union[list, List[None, bytes]]]: ... + + def move(self, uid: bytes, destination_folder: Union[bytes, str]) -> None: ... + + def messages(self, **kwargs: Union[bool, str, datetime.date]) -> 'Messages': ... + + def folders(self) -> Tuple[str, List[bytes]]: ... + + +class Messages: + + def __init__(self, + connection: Union[IMAP4, IMAP4_SSL], + parser_policy: Policy, + **kwargs: Union[bool, str, datetime.date]) -> None: ... + + def _fetch_email(self, uid: bytes) -> 'Struct': ... + + def _query_uids(self, **kwargs: Union[bool, str, datetime.date]) -> List[bytes]: ... + + def _fetch_email_list(self) -> Generator[Tuple[bytes, 'Struct']]: ... + + def __repr__(self) -> str: ... + + def __iter__(self) -> Generator[Tuple[bytes, 'Struct']]: ... + + def __next__(self) -> 'Messages': ... + + def __len__(self) -> int: ... + + def __getitem__(self, index) -> Union['Struct', List['Struct']]: ... diff --git a/imbox/imap.pyi b/imbox/imap.pyi new file mode 100644 index 0000000..16797a0 --- /dev/null +++ b/imbox/imap.pyi @@ -0,0 +1,13 @@ +from imaplib import IMAP4, IMAP4_SSL +from ssl import SSLContext +from typing import Optional, Union, Tuple, List + + +class ImapTransport: + + def __init__(self, hostname: str, port: Optional[int], ssl: bool, + ssl_context: Optional[SSLContext], starttls: bool) -> None: ... + + def list_folders(self) -> Tuple[str, List[bytes]]: ... + + def connect(self, username: str, password: str) -> Union[IMAP4, IMAP4_SSL]: ... diff --git a/imbox/parser.pyi b/imbox/parser.pyi new file mode 100644 index 0000000..e69de29 diff --git a/imbox/query.pyi b/imbox/query.pyi new file mode 100644 index 0000000..e69de29 diff --git a/imbox/utils.pyi b/imbox/utils.pyi new file mode 100644 index 0000000..e69de29