--- /dev/null
+# Stubs for email.message (Python 3.4)\r
+\r
+from typing import (\r
+ List, Optional, Union, Tuple, TypeVar, Generator, Sequence, Iterator, Any\r
+)\r
+import sys\r
+from email.charset import Charset\r
+from email.errors import MessageDefect\r
+from email.header import Header\r
+from email.policy import Policy\r
+from email.contentmanager import ContentManager\r
+\r
+_T = TypeVar('_T')\r
+\r
+_PayloadType = Union[List[Message], str, bytes]\r
+_CharsetType = Union[Charset, str, None]\r
+_ParamsType = Union[str, None, Tuple[str, Optional[str], str]]\r
+_ParamType = Union[str, Tuple[Optional[str], Optional[str], str]]\r
+_HeaderType = Union[str, Header]\r
+\r
+class Message:\r
+ preamble = ... # type: Optional[str]\r
+ epilogue = ... # type: Optional[str]\r
+ defects = ... # type: List[MessageDefect]\r
+ def __str__(self) -> str: ...\r
+ def is_multipart(self) -> bool: ...\r
+ def set_unixfrom(self, unixfrom: str) -> None: ...\r
+ def get_unixfrom(self) -> Optional[str]: ...\r
+ def attach(self, payload: 'Message') -> None: ...\r
+ def get_payload(self, i: int = ..., decode: bool = ...) -> Optional[_PayloadType]: ...\r
+ def set_payload(self, payload: _PayloadType,\r
+ charset: _CharsetType = ...) -> None: ...\r
+ def set_charset(self, charset: _CharsetType) -> None: ...\r
+ def get_charset(self) -> _CharsetType: ...\r
+ def __len__(self) -> int: ...\r
+ def __contains__(self, name: str) -> bool: ...\r
+ def __getitem__(self, name: str) -> Optional[_HeaderType]: ...\r
+ def __setitem__(self, name: str, val: _HeaderType) -> None: ...\r
+ def __delitem__(self, name: str) -> None: ...\r
+ def keys(self) -> List[str]: ...\r
+ def values(self) -> List[_HeaderType]: ...\r
+ def items(self) -> List[Tuple[str, _HeaderType]]: ...\r
+ def get(self, name: str, failobj: _T = ...) -> Union[_HeaderType, _T]: ...\r
+ def get_all(self, name: str, failobj: _T = ...) -> Union[List[_HeaderType], _T]: ...\r
+ def add_header(self, _name: str, _value: str, **_params: _ParamsType) -> None: ...\r
+ def replace_header(self, _name: str, _value: _HeaderType) -> None: ...\r
+ def get_content_type(self) -> str: ...\r
+ def get_content_maintype(self) -> str: ...\r
+ def get_content_subtype(self) -> str: ...\r
+ def get_default_type(self) -> str: ...\r
+ def set_default_type(self, ctype: str) -> None: ...\r
+ def get_params(self, failobj: _T = ..., header: str = ...,\r
+ unquote: bool = ...) -> Union[List[Tuple[str, str]], _T]: ...\r
+ def get_param(self, param: str, failobj: _T = ..., header: str = ...,\r
+ unquote: bool = ...) -> Union[_T, _ParamType]: ...\r
+ def del_param(self, param: str, header: str = ...,\r
+ requote: bool = ...) -> None: ...\r
+ def set_type(self, type: str, header: str = ...,\r
+ requote: bool = ...) -> None: ...\r
+ def get_filename(self, failobj: _T = ...) -> Union[_T, str]: ...\r
+ def get_boundary(self, failobj: _T = ...) -> Union[_T, str]: ...\r
+ def set_boundary(self, boundary: str) -> None: ...\r
+ def get_content_charset(self, failobj: _T = ...) -> Union[_T, str]: ...\r
+ def get_charsets(self, failobj: _T = ...) -> Union[_T, List[str]]: ...\r
+ def walk(self) -> Generator['Message', None, None]: ...\r
+ if sys.version_info >= (3, 5):\r
+ def get_content_disposition(self) -> Optional[str]: ...\r
+ def as_string(self, unixfrom: bool = ..., maxheaderlen: int = ...,\r
+ policy: Optional[Policy] = ...) -> str: ...\r
+ def as_bytes(self, unixfrom: bool = ...,\r
+ policy: Optional[Policy] = ...) -> bytes: ...\r
+ def __bytes__(self) -> bytes: ...\r
+ def set_param(self, param: str, value: str, header: str = ...,\r
+ requote: bool = ..., charset: str = ...,\r
+ language: str = ..., replace: bool = ...) -> None: ...\r
+ def __init__(self, policy: Policy = ...) -> None: ...\r
+\r
+class MIMEPart(Message):\r
+ def get_body(self,\r
+ preferencelist: Sequence[str] = ...) -> Optional[Message]: ...\r
+ def iter_attachments(self) -> Iterator[Message]: ...\r
+ def iter_parts(self) -> Iterator[Message]: ...\r
+ def get_content(self, *args: Any,\r
+ content_manager: Optional[ContentManager] = ...,\r
+ **kw: Any) -> Any: ...\r
+ def set_content(self, *args: Any,\r
+ content_manager: Optional[ContentManager] = ...,\r
+ **kw: Any) -> None: ...\r
+ def make_related(self, boundary: Optional[str] = ...) -> None: ...\r
+ def make_alternative(self, boundary: Optional[str] = ...) -> None: ...\r
+ def make_mixed(self, boundary: Optional[str] = ...) -> None: ...\r
+ def add_related(self, *args: Any,\r
+ content_manager: Optional[ContentManager] = ...,\r
+ **kw: Any) -> None: ...\r
+ def add_alternative(self, *args: Any,\r
+ content_manager: Optional[ContentManager] = ...,\r
+ **kw: Any) -> None: ...\r
+ def add_attachement(self, *args: Any,\r
+ content_manager: Optional[ContentManager] = ...,\r
+ **kw: Any) -> None: ...\r
+ def clear(self) -> None: ...\r
+ def clear_content(self) -> None: ...\r
+ def is_attachment(self) -> bool: ...\r
+\r
+class EmailMessage(MIMEPart): ...\r