mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 20:54:28 +08:00
Reduce code duplication in the email module (#7558)
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
from email.message import Message
|
||||
from email.policy import Policy
|
||||
from typing import IO, Callable
|
||||
from typing import IO, Callable, TypeVar, Union
|
||||
|
||||
# Definitions imported by multiple submodules in typeshed
|
||||
_MessageT = TypeVar("_MessageT", bound=Message) # noqa: Y018
|
||||
_ParamType = Union[str, tuple[str | None, str | None, str]]
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
def message_from_string(s: str, _class: Callable[[], Message] = ..., *, policy: Policy = ...) -> Message: ...
|
||||
def message_from_bytes(s: bytes, _class: Callable[[], Message] = ..., *, policy: Policy = ...) -> Message: ...
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
from email import _MessageT
|
||||
from email.message import Message
|
||||
from email.policy import Policy
|
||||
from typing import Callable, Generic, TypeVar, overload
|
||||
from typing import Callable, Generic, overload
|
||||
|
||||
__all__ = ["FeedParser", "BytesFeedParser"]
|
||||
|
||||
_M = TypeVar("_M", bound=Message)
|
||||
|
||||
class FeedParser(Generic[_M]):
|
||||
class FeedParser(Generic[_MessageT]):
|
||||
@overload
|
||||
def __init__(self: FeedParser[Message], _factory: None = ..., *, policy: Policy = ...) -> None: ...
|
||||
@overload
|
||||
def __init__(self, _factory: Callable[[], _M], *, policy: Policy = ...) -> None: ...
|
||||
def __init__(self, _factory: Callable[[], _MessageT], *, policy: Policy = ...) -> None: ...
|
||||
def feed(self, data: str) -> None: ...
|
||||
def close(self) -> _M: ...
|
||||
def close(self) -> _MessageT: ...
|
||||
|
||||
class BytesFeedParser(Generic[_M]):
|
||||
class BytesFeedParser(Generic[_MessageT]):
|
||||
@overload
|
||||
def __init__(self: BytesFeedParser[Message], _factory: None = ..., *, policy: Policy = ...) -> None: ...
|
||||
@overload
|
||||
def __init__(self, _factory: Callable[[], _M], *, policy: Policy = ...) -> None: ...
|
||||
def __init__(self, _factory: Callable[[], _MessageT], *, policy: Policy = ...) -> None: ...
|
||||
def feed(self, data: bytes) -> None: ...
|
||||
def close(self) -> _M: ...
|
||||
def close(self) -> _MessageT: ...
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
from email import _ParamsType, _ParamType
|
||||
from email.charset import Charset
|
||||
from email.contentmanager import ContentManager
|
||||
from email.errors import MessageDefect
|
||||
from email.policy import Policy
|
||||
from typing import Any, Generator, Iterator, Sequence, TypeVar, Union
|
||||
from typing import Any, Generator, Iterator, Sequence, TypeVar
|
||||
|
||||
__all__ = ["Message", "EmailMessage"]
|
||||
|
||||
@@ -10,8 +11,6 @@ _T = TypeVar("_T")
|
||||
|
||||
_PayloadType = list[Message] | str | bytes
|
||||
_CharsetType = Charset | str | None
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
_ParamType = Union[str, tuple[str | None, str | None, str]]
|
||||
_HeaderType = Any
|
||||
|
||||
class Message:
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
from collections.abc import Callable
|
||||
from email import _ParamsType
|
||||
from email.mime.nonmultipart import MIMENonMultipart
|
||||
from email.policy import Policy
|
||||
from typing import Callable, Union
|
||||
|
||||
__all__ = ["MIMEApplication"]
|
||||
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
class MIMEApplication(MIMENonMultipart):
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
from collections.abc import Callable
|
||||
from email import _ParamsType
|
||||
from email.mime.nonmultipart import MIMENonMultipart
|
||||
from email.policy import Policy
|
||||
from typing import Callable, Union
|
||||
|
||||
__all__ = ["MIMEAudio"]
|
||||
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
class MIMEAudio(MIMENonMultipart):
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import email.message
|
||||
from email import _ParamsType
|
||||
from email.policy import Policy
|
||||
from typing import Union
|
||||
|
||||
__all__ = ["MIMEBase"]
|
||||
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
class MIMEBase(email.message.Message):
|
||||
def __init__(self, _maintype: str, _subtype: str, *, policy: Policy | None = ..., **_params: _ParamsType) -> None: ...
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
from collections.abc import Callable
|
||||
from email import _ParamsType
|
||||
from email.mime.nonmultipart import MIMENonMultipart
|
||||
from email.policy import Policy
|
||||
from typing import Callable, Union
|
||||
|
||||
__all__ = ["MIMEImage"]
|
||||
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
class MIMEImage(MIMENonMultipart):
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
from collections.abc import Sequence
|
||||
from email import _ParamsType
|
||||
from email.message import Message
|
||||
from email.mime.base import MIMEBase
|
||||
from email.policy import Policy
|
||||
from typing import Sequence, Union
|
||||
|
||||
__all__ = ["MIMEMultipart"]
|
||||
|
||||
_ParamsType = Union[str, None, tuple[str, str | None, str]]
|
||||
|
||||
class MIMEMultipart(MIMEBase):
|
||||
def __init__(
|
||||
self,
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import email.feedparser
|
||||
from email import _MessageT
|
||||
from email.message import Message
|
||||
from email.policy import Policy
|
||||
from typing import BinaryIO, Callable, TextIO, TypeVar
|
||||
from typing import BinaryIO, Callable, TextIO
|
||||
|
||||
__all__ = ["Parser", "HeaderParser", "BytesParser", "BytesHeaderParser", "FeedParser", "BytesFeedParser"]
|
||||
|
||||
_M = TypeVar("_M", bound=Message)
|
||||
|
||||
FeedParser = email.feedparser.FeedParser[_M]
|
||||
BytesFeedParser = email.feedparser.BytesFeedParser[_M]
|
||||
FeedParser = email.feedparser.FeedParser[_MessageT]
|
||||
BytesFeedParser = email.feedparser.BytesFeedParser[_MessageT]
|
||||
|
||||
class Parser:
|
||||
def __init__(self, _class: Callable[[], Message] | None = ..., *, policy: Policy = ...) -> None: ...
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import datetime
|
||||
import sys
|
||||
from email import _ParamType
|
||||
from email.charset import Charset
|
||||
from typing import Union, overload
|
||||
from typing import overload
|
||||
|
||||
__all__ = [
|
||||
"collapse_rfc2231_value",
|
||||
@@ -21,7 +22,6 @@ __all__ = [
|
||||
"unquote",
|
||||
]
|
||||
|
||||
_ParamType = Union[str, tuple[str | None, str | None, str]]
|
||||
_PDTZ = tuple[int, int, int, int, int, int, int, int, int, int | None]
|
||||
|
||||
def quote(str: str) -> str: ...
|
||||
|
||||
Reference in New Issue
Block a user