From d8b081130d3e3a7fde1a49ac787d304f5c4c1966 Mon Sep 17 00:00:00 2001 From: Shantanu Date: Sun, 8 Mar 2020 11:06:55 -0400 Subject: [PATCH] email.mime: add policy arguments (#3827) --- stdlib/3/email/mime/application.pyi | 25 +++++++++++++++++++++---- stdlib/3/email/mime/audio.pyi | 25 +++++++++++++++++++++---- stdlib/3/email/mime/base.pyi | 10 +++++++--- stdlib/3/email/mime/image.pyi | 25 +++++++++++++++++++++---- stdlib/3/email/mime/message.pyi | 8 +++++++- stdlib/3/email/mime/multipart.pyi | 25 +++++++++++++++++++++---- stdlib/3/email/mime/text.pyi | 12 +++++++++--- tests/stubtest_whitelists/py36.txt | 2 -- tests/stubtest_whitelists/py37.txt | 2 -- tests/stubtest_whitelists/py38.txt | 2 -- 10 files changed, 107 insertions(+), 29 deletions(-) diff --git a/stdlib/3/email/mime/application.pyi b/stdlib/3/email/mime/application.pyi index 1a40e281f..c27d808a4 100644 --- a/stdlib/3/email/mime/application.pyi +++ b/stdlib/3/email/mime/application.pyi @@ -1,11 +1,28 @@ # Stubs for email.mime.application (Python 3.4) -from typing import Callable, Optional, Tuple, Union +import sys from email.mime.nonmultipart import MIMENonMultipart +from email.policy import Policy +from typing import Callable, Optional, Tuple, Union _ParamsType = Union[str, None, Tuple[str, Optional[str], str]] class MIMEApplication(MIMENonMultipart): - def __init__(self, _data: Union[str, bytes], _subtype: str = ..., - _encoder: Callable[[MIMEApplication], None] = ..., - **_params: _ParamsType) -> None: ... + if sys.version_info >= (3, 6): + def __init__( + self, + _data: Union[str, bytes], + _subtype: str = ..., + _encoder: Callable[[MIMEApplication], None] = ..., + *, + policy: Optional[Policy] = ..., + **_params: _ParamsType, + ) -> None: ... + else: + def __init__( + self, + _data: Union[str, bytes], + _subtype: str = ..., + _encoder: Callable[[MIMEApplication], None] = ..., + **_params: _ParamsType, + ) -> None: ... diff --git a/stdlib/3/email/mime/audio.pyi b/stdlib/3/email/mime/audio.pyi index 5bb57d3a5..71d060bcb 100644 --- a/stdlib/3/email/mime/audio.pyi +++ b/stdlib/3/email/mime/audio.pyi @@ -1,11 +1,28 @@ # Stubs for email.mime.audio (Python 3.4) -from typing import Callable, Optional, Tuple, Union +import sys from email.mime.nonmultipart import MIMENonMultipart +from email.policy import Policy +from typing import Callable, Optional, Tuple, Union _ParamsType = Union[str, None, Tuple[str, Optional[str], str]] class MIMEAudio(MIMENonMultipart): - def __init__(self, _audiodata: Union[str, bytes], _subtype: Optional[str] = ..., - _encoder: Callable[[MIMEAudio], None] = ..., - **_params: _ParamsType) -> None: ... + if sys.version_info >= (3, 6): + def __init__( + self, + _audiodata: Union[str, bytes], + _subtype: Optional[str] = ..., + _encoder: Callable[[MIMEAudio], None] = ..., + *, + policy: Optional[Policy] = ..., + **_params: _ParamsType, + ) -> None: ... + else: + def __init__( + self, + _audiodata: Union[str, bytes], + _subtype: Optional[str] = ..., + _encoder: Callable[[MIMEAudio], None] = ..., + **_params: _ParamsType, + ) -> None: ... diff --git a/stdlib/3/email/mime/base.pyi b/stdlib/3/email/mime/base.pyi index 448d34be1..38c6130de 100644 --- a/stdlib/3/email/mime/base.pyi +++ b/stdlib/3/email/mime/base.pyi @@ -1,10 +1,14 @@ # Stubs for email.mime.base (Python 3.4) -from typing import Optional, Tuple, Union import email.message +import sys +from email.policy import Policy +from typing import Optional, Tuple, Union _ParamsType = Union[str, None, Tuple[str, Optional[str], str]] class MIMEBase(email.message.Message): - def __init__(self, _maintype: str, _subtype: str, - **_params: _ParamsType) -> None: ... + if sys.version_info >= (3, 6): + def __init__(self, _maintype: str, _subtype: str, *, policy: Optional[Policy] = ..., **_params: _ParamsType) -> None: ... + else: + def __init__(self, _maintype: str, _subtype: str, **_params: _ParamsType) -> None: ... diff --git a/stdlib/3/email/mime/image.pyi b/stdlib/3/email/mime/image.pyi index d32d9ee65..d6d019ce5 100644 --- a/stdlib/3/email/mime/image.pyi +++ b/stdlib/3/email/mime/image.pyi @@ -1,11 +1,28 @@ # Stubs for email.mime.image (Python 3.4) -from typing import Callable, Optional, Tuple, Union +import sys from email.mime.nonmultipart import MIMENonMultipart +from email.policy import Policy +from typing import Callable, Optional, Tuple, Union _ParamsType = Union[str, None, Tuple[str, Optional[str], str]] class MIMEImage(MIMENonMultipart): - def __init__(self, _imagedata: Union[str, bytes], _subtype: Optional[str] = ..., - _encoder: Callable[[MIMEImage], None] = ..., - **_params: _ParamsType) -> None: ... + if sys.version_info >= (3, 6): + def __init__( + self, + _imagedata: Union[str, bytes], + _subtype: Optional[str] = ..., + _encoder: Callable[[MIMEImage], None] = ..., + *, + policy: Optional[Policy] = ..., + **_params: _ParamsType, + ) -> None: ... + else: + def __init__( + self, + _imagedata: Union[str, bytes], + _subtype: Optional[str] = ..., + _encoder: Callable[[MIMEImage], None] = ..., + **_params: _ParamsType, + ) -> None: ... diff --git a/stdlib/3/email/mime/message.pyi b/stdlib/3/email/mime/message.pyi index 561e8c35f..1c56208f1 100644 --- a/stdlib/3/email/mime/message.pyi +++ b/stdlib/3/email/mime/message.pyi @@ -1,7 +1,13 @@ # Stubs for email.mime.message (Python 3.4) +import sys from email.message import Message from email.mime.nonmultipart import MIMENonMultipart +from email.policy import Policy +from typing import Optional class MIMEMessage(MIMENonMultipart): - def __init__(self, _msg: Message, _subtype: str = ...) -> None: ... + if sys.version_info >= (3, 6): + def __init__(self, _msg: Message, _subtype: str = ..., *, policy: Optional[Policy] = ...) -> None: ... + else: + def __init__(self, _msg: Message, _subtype: str = ...) -> None: ... diff --git a/stdlib/3/email/mime/multipart.pyi b/stdlib/3/email/mime/multipart.pyi index ea5eba15e..4c78fd4d5 100644 --- a/stdlib/3/email/mime/multipart.pyi +++ b/stdlib/3/email/mime/multipart.pyi @@ -1,12 +1,29 @@ # Stubs for email.mime.multipart (Python 3.4) -from typing import Optional, Sequence, Tuple, Union +import sys from email.message import Message from email.mime.base import MIMEBase +from email.policy import Policy +from typing import Optional, Sequence, Tuple, Union _ParamsType = Union[str, None, Tuple[str, Optional[str], str]] class MIMEMultipart(MIMEBase): - def __init__(self, _subtype: str = ..., boundary: Optional[str] = ..., - _subparts: Optional[Sequence[Message]] = ..., - **_params: _ParamsType) -> None: ... + if sys.version_info >= (3, 6): + def __init__( + self, + _subtype: str = ..., + boundary: Optional[str] = ..., + _subparts: Optional[Sequence[Message]] = ..., + *, + policy: Optional[Policy] = ..., + **_params: _ParamsType, + ) -> None: ... + else: + def __init__( + self, + _subtype: str = ..., + boundary: Optional[str] = ..., + _subparts: Optional[Sequence[Message]] = ..., + **_params: _ParamsType, + ) -> None: ... diff --git a/stdlib/3/email/mime/text.pyi b/stdlib/3/email/mime/text.pyi index 73adaf5f6..f219e843b 100644 --- a/stdlib/3/email/mime/text.pyi +++ b/stdlib/3/email/mime/text.pyi @@ -1,8 +1,14 @@ # Stubs for email.mime.text (Python 3.4) -from typing import Optional +import sys from email.mime.nonmultipart import MIMENonMultipart +from email.policy import Policy +from typing import Optional class MIMEText(MIMENonMultipart): - def __init__(self, _text: str, _subtype: str = ..., - _charset: Optional[str] = ...) -> None: ... + if sys.version_info >= (3, 6): + def __init__( + self, _text: str, _subtype: str = ..., _charset: Optional[str] = ..., *, policy: Optional[Policy] = ... + ) -> None: ... + else: + def __init__(self, _text: str, _subtype: str = ..., _charset: Optional[str] = ...) -> None: ... diff --git a/tests/stubtest_whitelists/py36.txt b/tests/stubtest_whitelists/py36.txt index f8cd57b13..4addbbcd4 100644 --- a/tests/stubtest_whitelists/py36.txt +++ b/tests/stubtest_whitelists/py36.txt @@ -27,8 +27,6 @@ collections.abc.AsyncGenerator.ag_running copy.PyStringMap ctypes.CDLL.__init__ email.message.MIMEPart.as_string -email.mime.message.MIMEMessage.__init__ -email.mime.text.MIMEText.__init__ enum.Enum._generate_next_value_ gettext.NullTranslations.npgettext gettext.NullTranslations.pgettext diff --git a/tests/stubtest_whitelists/py37.txt b/tests/stubtest_whitelists/py37.txt index f20edb249..6a7f8cd6e 100644 --- a/tests/stubtest_whitelists/py37.txt +++ b/tests/stubtest_whitelists/py37.txt @@ -45,8 +45,6 @@ dataclasses.dataclass dataclasses.field dataclasses.make_dataclass email.message.MIMEPart.as_string -email.mime.message.MIMEMessage.__init__ -email.mime.text.MIMEText.__init__ enum.Enum._generate_next_value_ gettext.NullTranslations.npgettext gettext.NullTranslations.pgettext diff --git a/tests/stubtest_whitelists/py38.txt b/tests/stubtest_whitelists/py38.txt index bac2b48a0..a1bc6b042 100644 --- a/tests/stubtest_whitelists/py38.txt +++ b/tests/stubtest_whitelists/py38.txt @@ -99,8 +99,6 @@ decimal.Decimal.from_float decimal.setcontext dis.stack_effect email.message.MIMEPart.as_string -email.mime.message.MIMEMessage.__init__ -email.mime.text.MIMEText.__init__ enum.Enum._generate_next_value_ functools.partialmethod.__get__ gettext.install