From f82ce522209d2d3dcbd1a871ec3bfccd1d7173cb Mon Sep 17 00:00:00 2001 From: zevav Date: Fri, 27 Jul 2018 16:00:17 -0400 Subject: [PATCH] added type hints for new stuff --- imbox/parser.py | 2 ++ imbox/parser.pyi | 4 ++++ imbox/vendors/__init__.pyi | 9 +++++++++ imbox/vendors/gmail.pyi | 14 ++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 imbox/vendors/__init__.pyi create mode 100644 imbox/vendors/gmail.pyi diff --git a/imbox/parser.py b/imbox/parser.py index 070d730..3351452 100644 --- a/imbox/parser.py +++ b/imbox/parser.py @@ -138,6 +138,8 @@ def fetch_email_by_uid(uid, connection, parser_policy): email_object = parse_email(raw_email, policy=parser_policy) flags = parse_flags(raw_headers.decode()) + if len(flags) > 0: + print(type(flags[0])) email_object.__dict__['flags'] = flags return email_object diff --git a/imbox/parser.pyi b/imbox/parser.pyi index bebbb21..355061e 100644 --- a/imbox/parser.pyi +++ b/imbox/parser.pyi @@ -26,5 +26,9 @@ def parse_attachment(message_part: Message) -> Optional[Dict[str, Union[int, str def decode_content(message: Message) -> str: ... def fetch_email_by_uid(uid: bytes, connection: IMAP4_SSL, parser_policy: Optional[Policy]) -> Struct: ... + raw_headers: bytes + raw_email: bytes + +def parse_flags(headers: str) -> Union[list, List[bytes]]: ... def parse_email(raw_email: bytes, policy: Optional[Policy]) -> Struct: ... diff --git a/imbox/vendors/__init__.pyi b/imbox/vendors/__init__.pyi new file mode 100644 index 0000000..d66c4c6 --- /dev/null +++ b/imbox/vendors/__init__.pyi @@ -0,0 +1,9 @@ +from typing import List, Dict, Optional + +from imbox.messages import Messages + +vendors: List[Messages] + +hostname_vendorname_dict: Dict[str, str] +name_authentication_string_dict: Dict[str, Optional[str]] + diff --git a/imbox/vendors/gmail.pyi b/imbox/vendors/gmail.pyi new file mode 100644 index 0000000..e8c7ade --- /dev/null +++ b/imbox/vendors/gmail.pyi @@ -0,0 +1,14 @@ +import datetime +from email._policybase import Policy +from imaplib import IMAP4, IMAP4_SSL +from typing import Union + +from imbox.messages import Messages + + +class GmailMessages(Messages): + + def __init__(self, + connection: Union[IMAP4, IMAP4_SSL], + parser_policy: Policy, + **kwargs: Union[bool, str, datetime.date]) -> None: ...