Use re-exports instead of TypeAliases in email.parser (#7665)

This commit is contained in:
Alex Waygood
2022-04-20 15:31:52 +01:00
committed by GitHub
parent 4a701642f2
commit 85594df83b
3 changed files with 5 additions and 10 deletions

View File

@@ -1,11 +1,10 @@
from collections.abc import Callable
from email.message import Message
from email.policy import Policy
from typing import IO, TypeVar, Union
from typing import IO, Union
from typing_extensions import TypeAlias
# Definitions imported by multiple submodules in typeshed
_MessageT = TypeVar("_MessageT", bound=Message) # noqa: Y018
_ParamType: TypeAlias = Union[str, tuple[str | None, str | None, str]]
_ParamsType: TypeAlias = Union[str, None, tuple[str, str | None, str]]

View File

@@ -1,11 +1,12 @@
from collections.abc import Callable
from email import _MessageT
from email.message import Message
from email.policy import Policy
from typing import Generic, overload
from typing import Generic, TypeVar, overload
__all__ = ["FeedParser", "BytesFeedParser"]
_MessageT = TypeVar("_MessageT", bound=Message)
class FeedParser(Generic[_MessageT]):
@overload
def __init__(self: FeedParser[Message], _factory: None = ..., *, policy: Policy = ...) -> None: ...

View File

@@ -1,16 +1,11 @@
import email.feedparser
from collections.abc import Callable
from email import _MessageT
from email.feedparser import BytesFeedParser as BytesFeedParser, FeedParser as FeedParser
from email.message import Message
from email.policy import Policy
from typing import BinaryIO, TextIO
from typing_extensions import TypeAlias
__all__ = ["Parser", "HeaderParser", "BytesParser", "BytesHeaderParser", "FeedParser", "BytesFeedParser"]
FeedParser: TypeAlias = email.feedparser.FeedParser[_MessageT]
BytesFeedParser: TypeAlias = email.feedparser.BytesFeedParser[_MessageT]
class Parser:
def __init__(self, _class: Callable[[], Message] | None = ..., *, policy: Policy = ...) -> None: ...
def parse(self, fp: TextIO, headersonly: bool = ...) -> Message: ...