Clean up and fix email message types (#13532)

* Unify the `_MessageT` type var in `email._policybase`.
* Use explicit type arguments for `Message` type in `_MessageT` type var.
  In particular, change bound from `Message[str, str]` to `Message[Any, Any]`.
* Change `__init__()` overloads of `Parser` and `BytesParser` to accept
  `Message` objects that are not `Message[str, str]` if `_class` is not also given.
This commit is contained in:
Sebastian Rittau
2025-05-05 17:59:51 +02:00
committed by GitHub
parent a43e0a4c02
commit 0eb44e574c
11 changed files with 42 additions and 25 deletions
+1 -1
View File
@@ -4,6 +4,7 @@ import sys
from _typeshed import StrPath, SupportsNoArgReadline, SupportsRead
from abc import ABCMeta, abstractmethod
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
from email._policybase import _MessageT
from types import GenericAlias, TracebackType
from typing import IO, Any, AnyStr, Generic, Literal, Protocol, TypeVar, overload
from typing_extensions import Self, TypeAlias
@@ -29,7 +30,6 @@ __all__ = [
]
_T = TypeVar("_T")
_MessageT = TypeVar("_MessageT", bound=Message)
class _SupportsReadAndReadline(SupportsRead[bytes], SupportsNoArgReadline[bytes], Protocol): ...