Skip to content

Commit 89c6596

Browse files
Sync typeshed (#15792)
Source commit: python/typeshed@fe2ebd6 Co-authored-by: Shantanu <[email protected]> Co-authored-by: hauntsaninja <[email protected]>
1 parent 7f22aaa commit 89c6596

40 files changed

+326
-100
lines changed

mypy/typeshed/stdlib/_collections_abc.pyi

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ _VT_co = TypeVar("_VT_co", covariant=True) # Value type covariant containers.
6969

7070
@final
7171
class dict_keys(KeysView[_KT_co], Generic[_KT_co, _VT_co]): # undocumented
72+
def __eq__(self, __value: object) -> bool: ...
7273
if sys.version_info >= (3, 10):
7374
@property
7475
def mapping(self) -> MappingProxyType[_KT_co, _VT_co]: ...
@@ -81,6 +82,7 @@ class dict_values(ValuesView[_VT_co], Generic[_KT_co, _VT_co]): # undocumented
8182

8283
@final
8384
class dict_items(ItemsView[_KT_co, _VT_co], Generic[_KT_co, _VT_co]): # undocumented
85+
def __eq__(self, __value: object) -> bool: ...
8486
if sys.version_info >= (3, 10):
8587
@property
8688
def mapping(self) -> MappingProxyType[_KT_co, _VT_co]: ...

mypy/typeshed/stdlib/_weakref.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,20 @@ _T = TypeVar("_T")
1111

1212
@final
1313
class CallableProxyType(Generic[_C]): # "weakcallableproxy"
14+
def __eq__(self, __value: object) -> bool: ...
1415
def __getattr__(self, attr: str) -> Any: ...
1516
__call__: _C
1617

1718
@final
1819
class ProxyType(Generic[_T]): # "weakproxy"
20+
def __eq__(self, __value: object) -> bool: ...
1921
def __getattr__(self, attr: str) -> Any: ...
2022

2123
class ReferenceType(Generic[_T]):
2224
__callback__: Callable[[ReferenceType[_T]], Any]
2325
def __new__(cls, __o: _T, __callback: Callable[[ReferenceType[_T]], Any] | None = ...) -> Self: ...
2426
def __call__(self) -> _T | None: ...
27+
def __eq__(self, __value: object) -> bool: ...
2528
def __hash__(self) -> int: ...
2629
if sys.version_info >= (3, 9):
2730
def __class_getitem__(cls, item: Any) -> GenericAlias: ...

mypy/typeshed/stdlib/abc.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def abstractmethod(funcobj: _FuncT) -> _FuncT: ...
3131

3232
class abstractclassmethod(classmethod[_T, _P, _R_co]):
3333
__isabstractmethod__: Literal[True]
34-
def __init__(self, callable: Callable[Concatenate[_T, _P], _R_co]) -> None: ...
34+
def __init__(self, callable: Callable[Concatenate[type[_T], _P], _R_co]) -> None: ...
3535

3636
class abstractstaticmethod(staticmethod[_P, _R_co]):
3737
__isabstractmethod__: Literal[True]

mypy/typeshed/stdlib/argparse.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class _ActionsContainer:
8585
self,
8686
*name_or_flags: str,
8787
action: _ActionStr | type[Action] = ...,
88-
nargs: int | _NArgsStr | _SUPPRESS_T = ...,
88+
nargs: int | _NArgsStr | _SUPPRESS_T | None = None,
8989
const: Any = ...,
9090
default: Any = ...,
9191
type: Callable[[str], _T] | FileType = ...,
@@ -171,7 +171,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
171171
) -> None: ...
172172

173173
@overload
174-
def parse_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> Namespace: ... # type: ignore[misc]
174+
def parse_args(self, args: Sequence[str] | None = None, namespace: None = None) -> Namespace: ... # type: ignore[misc]
175175
@overload
176176
def parse_args(self, args: Sequence[str] | None, namespace: _N) -> _N: ...
177177
@overload
@@ -210,7 +210,7 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
210210
def format_usage(self) -> str: ...
211211
def format_help(self) -> str: ...
212212
@overload
213-
def parse_known_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
213+
def parse_known_args(self, args: Sequence[str] | None = None, namespace: None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
214214
@overload
215215
def parse_known_args(self, args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]]: ...
216216
@overload
@@ -219,13 +219,13 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
219219
def exit(self, status: int = 0, message: str | None = None) -> NoReturn: ...
220220
def error(self, message: str) -> NoReturn: ...
221221
@overload
222-
def parse_intermixed_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> Namespace: ... # type: ignore[misc]
222+
def parse_intermixed_args(self, args: Sequence[str] | None = None, namespace: None = None) -> Namespace: ... # type: ignore[misc]
223223
@overload
224224
def parse_intermixed_args(self, args: Sequence[str] | None, namespace: _N) -> _N: ...
225225
@overload
226226
def parse_intermixed_args(self, *, namespace: _N) -> _N: ...
227227
@overload
228-
def parse_known_intermixed_args(self, args: Sequence[str] | None = None, namespace: Namespace | None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
228+
def parse_known_intermixed_args(self, args: Sequence[str] | None = None, namespace: None = None) -> tuple[Namespace, list[str]]: ... # type: ignore[misc]
229229
@overload
230230
def parse_known_intermixed_args(self, args: Sequence[str] | None, namespace: _N) -> tuple[_N, list[str]]: ...
231231
@overload

mypy/typeshed/stdlib/array.pyi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ from collections.abc import Iterable
66
from typing import Any, Generic, MutableSequence, TypeVar, overload # noqa: Y022
77
from typing_extensions import Literal, Self, SupportsIndex, TypeAlias
88

9+
if sys.version_info >= (3, 12):
10+
from types import GenericAlias
11+
912
_IntTypeCode: TypeAlias = Literal["b", "B", "h", "H", "i", "I", "l", "L", "q", "Q"]
1013
_FloatTypeCode: TypeAlias = Literal["f", "d"]
1114
_UnicodeTypeCode: TypeAlias = Literal["u"]
@@ -70,6 +73,7 @@ class array(MutableSequence[_T], Generic[_T]):
7073
def __setitem__(self, __key: slice, __value: array[_T]) -> None: ...
7174
def __delitem__(self, __key: SupportsIndex | slice) -> None: ...
7275
def __add__(self, __value: array[_T]) -> array[_T]: ...
76+
def __eq__(self, __value: object) -> bool: ...
7377
def __ge__(self, __value: array[_T]) -> bool: ...
7478
def __gt__(self, __value: array[_T]) -> bool: ...
7579
def __iadd__(self, __value: array[_T]) -> Self: ... # type: ignore[override]
@@ -82,5 +86,7 @@ class array(MutableSequence[_T], Generic[_T]):
8286
def __deepcopy__(self, __unused: Any) -> array[_T]: ...
8387
def __buffer__(self, __flags: int) -> memoryview: ...
8488
def __release_buffer__(self, __buffer: memoryview) -> None: ...
89+
if sys.version_info >= (3, 12):
90+
def __class_getitem__(cls, item: Any) -> GenericAlias: ...
8591

8692
ArrayType = array

mypy/typeshed/stdlib/asyncio/futures.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def isfuture(obj: object) -> TypeGuard[Future[Any]]: ...
3131
class Future(Awaitable[_T], Iterable[_T]):
3232
_state: str
3333
@property
34-
def _exception(self) -> BaseException: ...
34+
def _exception(self) -> BaseException | None: ...
3535
_blocking: bool
3636
@property
3737
def _log_traceback(self) -> bool: ...

mypy/typeshed/stdlib/builtins.pyi

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ class staticmethod(Generic[_P, _R_co]):
131131
@property
132132
def __isabstractmethod__(self) -> bool: ...
133133
def __init__(self, __f: Callable[_P, _R_co]) -> None: ...
134+
@overload
135+
def __get__(self, __instance: None, __owner: type) -> Callable[_P, _R_co]: ...
136+
@overload
134137
def __get__(self, __instance: _T, __owner: type[_T] | None = None) -> Callable[_P, _R_co]: ...
135138
if sys.version_info >= (3, 10):
136139
__name__: str
@@ -141,16 +144,19 @@ class staticmethod(Generic[_P, _R_co]):
141144

142145
class classmethod(Generic[_T, _P, _R_co]):
143146
@property
144-
def __func__(self) -> Callable[Concatenate[_T, _P], _R_co]: ...
147+
def __func__(self) -> Callable[Concatenate[type[_T], _P], _R_co]: ...
145148
@property
146149
def __isabstractmethod__(self) -> bool: ...
147-
def __init__(self, __f: Callable[Concatenate[_T, _P], _R_co]) -> None: ...
150+
def __init__(self, __f: Callable[Concatenate[type[_T], _P], _R_co]) -> None: ...
151+
@overload
148152
def __get__(self, __instance: _T, __owner: type[_T] | None = None) -> Callable[_P, _R_co]: ...
153+
@overload
154+
def __get__(self, __instance: None, __owner: type[_T]) -> Callable[_P, _R_co]: ...
149155
if sys.version_info >= (3, 10):
150156
__name__: str
151157
__qualname__: str
152158
@property
153-
def __wrapped__(self) -> Callable[Concatenate[_T, _P], _R_co]: ...
159+
def __wrapped__(self) -> Callable[Concatenate[type[_T], _P], _R_co]: ...
154160

155161
class type:
156162
@property
@@ -781,6 +787,8 @@ class memoryview(Sequence[int]):
781787
def __contains__(self, __x: object) -> bool: ...
782788
def __iter__(self) -> Iterator[int]: ...
783789
def __len__(self) -> int: ...
790+
def __eq__(self, __value: object) -> bool: ...
791+
def __hash__(self) -> int: ...
784792
@overload
785793
def __setitem__(self, __key: slice, __value: ReadableBuffer) -> None: ...
786794
@overload
@@ -848,6 +856,7 @@ class slice:
848856
def __init__(self, __stop: Any) -> None: ...
849857
@overload
850858
def __init__(self, __start: Any, __stop: Any, __step: Any = ...) -> None: ...
859+
def __eq__(self, __value: object) -> bool: ...
851860
__hash__: ClassVar[None] # type: ignore[assignment]
852861
def indices(self, __len: SupportsIndex) -> tuple[int, int, int]: ...
853862

@@ -864,6 +873,8 @@ class tuple(Sequence[_T_co], Generic[_T_co]):
864873
def __le__(self, __value: tuple[_T_co, ...]) -> bool: ...
865874
def __gt__(self, __value: tuple[_T_co, ...]) -> bool: ...
866875
def __ge__(self, __value: tuple[_T_co, ...]) -> bool: ...
876+
def __eq__(self, __value: object) -> bool: ...
877+
def __hash__(self) -> int: ...
867878
@overload
868879
def __add__(self, __value: tuple[_T_co, ...]) -> tuple[_T_co, ...]: ...
869880
@overload
@@ -952,6 +963,7 @@ class list(MutableSequence[_T], Generic[_T]):
952963
def __ge__(self, __value: list[_T]) -> bool: ...
953964
def __lt__(self, __value: list[_T]) -> bool: ...
954965
def __le__(self, __value: list[_T]) -> bool: ...
966+
def __eq__(self, __value: object) -> bool: ...
955967
if sys.version_info >= (3, 9):
956968
def __class_getitem__(cls, __item: Any) -> GenericAlias: ...
957969

@@ -991,19 +1003,24 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
9911003
@overload
9921004
def fromkeys(cls, __iterable: Iterable[_T], __value: _S) -> dict[_T, _S]: ...
9931005
# Positional-only in dict, but not in MutableMapping
994-
@overload
1006+
@overload # type: ignore[override]
9951007
def get(self, __key: _KT) -> _VT | None: ...
9961008
@overload
997-
def get(self, __key: _KT, __default: _VT | _T) -> _VT | _T: ...
1009+
def get(self, __key: _KT, __default: _VT) -> _VT: ...
1010+
@overload
1011+
def get(self, __key: _KT, __default: _T) -> _VT | _T: ...
9981012
@overload
9991013
def pop(self, __key: _KT) -> _VT: ...
10001014
@overload
1001-
def pop(self, __key: _KT, __default: _VT | _T) -> _VT | _T: ...
1015+
def pop(self, __key: _KT, __default: _VT) -> _VT: ...
1016+
@overload
1017+
def pop(self, __key: _KT, __default: _T) -> _VT | _T: ...
10021018
def __len__(self) -> int: ...
10031019
def __getitem__(self, __key: _KT) -> _VT: ...
10041020
def __setitem__(self, __key: _KT, __value: _VT) -> None: ...
10051021
def __delitem__(self, __key: _KT) -> None: ...
10061022
def __iter__(self) -> Iterator[_KT]: ...
1023+
def __eq__(self, __value: object) -> bool: ...
10071024
if sys.version_info >= (3, 8):
10081025
def __reversed__(self) -> Iterator[_KT]: ...
10091026
__hash__: ClassVar[None] # type: ignore[assignment]
@@ -1058,6 +1075,7 @@ class set(MutableSet[_T], Generic[_T]):
10581075
def __lt__(self, __value: AbstractSet[object]) -> bool: ...
10591076
def __ge__(self, __value: AbstractSet[object]) -> bool: ...
10601077
def __gt__(self, __value: AbstractSet[object]) -> bool: ...
1078+
def __eq__(self, __value: object) -> bool: ...
10611079
__hash__: ClassVar[None] # type: ignore[assignment]
10621080
if sys.version_info >= (3, 9):
10631081
def __class_getitem__(cls, __item: Any) -> GenericAlias: ...
@@ -1086,6 +1104,8 @@ class frozenset(AbstractSet[_T_co], Generic[_T_co]):
10861104
def __lt__(self, __value: AbstractSet[object]) -> bool: ...
10871105
def __ge__(self, __value: AbstractSet[object]) -> bool: ...
10881106
def __gt__(self, __value: AbstractSet[object]) -> bool: ...
1107+
def __eq__(self, __value: object) -> bool: ...
1108+
def __hash__(self) -> int: ...
10891109
if sys.version_info >= (3, 9):
10901110
def __class_getitem__(cls, __item: Any) -> GenericAlias: ...
10911111

@@ -1111,6 +1131,8 @@ class range(Sequence[int]):
11111131
def count(self, __value: int) -> int: ...
11121132
def index(self, __value: int) -> int: ... # type: ignore[override]
11131133
def __len__(self) -> int: ...
1134+
def __eq__(self, __value: object) -> bool: ...
1135+
def __hash__(self) -> int: ...
11141136
def __contains__(self, __key: object) -> bool: ...
11151137
def __iter__(self) -> Iterator[int]: ...
11161138
@overload

mypy/typeshed/stdlib/collections/__init__.pyi

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ class UserString(Sequence[UserString]):
153153
def __gt__(self, string: str | UserString) -> bool: ...
154154
def __ge__(self, string: str | UserString) -> bool: ...
155155
def __eq__(self, string: object) -> bool: ...
156+
def __hash__(self) -> int: ...
156157
def __contains__(self, char: object) -> bool: ...
157158
def __len__(self) -> int: ...
158159
def __getitem__(self, index: SupportsIndex | slice) -> Self: ...
@@ -257,6 +258,7 @@ class deque(MutableSequence[_T], Generic[_T]):
257258
def __le__(self, __value: deque[_T]) -> bool: ...
258259
def __gt__(self, __value: deque[_T]) -> bool: ...
259260
def __ge__(self, __value: deque[_T]) -> bool: ...
261+
def __eq__(self, __value: object) -> bool: ...
260262
if sys.version_info >= (3, 9):
261263
def __class_getitem__(cls, __item: Any) -> GenericAlias: ...
262264

@@ -365,6 +367,7 @@ class OrderedDict(dict[_KT, _VT], Reversible[_KT], Generic[_KT, _VT]):
365367
def setdefault(self: OrderedDict[_KT, _T | None], key: _KT, default: None = None) -> _T | None: ...
366368
@overload
367369
def setdefault(self, key: _KT, default: _VT) -> _VT: ...
370+
def __eq__(self, __value: object) -> bool: ...
368371

369372
class defaultdict(dict[_KT, _VT], Generic[_KT, _VT]):
370373
default_factory: Callable[[], _VT] | None
@@ -429,7 +432,9 @@ class ChainMap(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
429432
@overload
430433
def pop(self, key: _KT) -> _VT: ...
431434
@overload
432-
def pop(self, key: _KT, default: _VT | _T) -> _VT | _T: ...
435+
def pop(self, key: _KT, default: _VT) -> _VT: ...
436+
@overload
437+
def pop(self, key: _KT, default: _T) -> _VT | _T: ...
433438
def copy(self) -> Self: ...
434439
__copy__ = copy
435440
# All arguments to `fromkeys` are passed to `dict.fromkeys` at runtime, so the signature should be kept in line with `dict.fromkeys`.

mypy/typeshed/stdlib/contextvars.pyi

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,21 @@ class ContextVar(Generic[_T]):
1818
def __init__(self, name: str) -> None: ...
1919
@overload
2020
def __init__(self, name: str, *, default: _T) -> None: ...
21+
def __hash__(self) -> int: ...
2122
@property
2223
def name(self) -> str: ...
2324
@overload
2425
def get(self) -> _T: ...
2526
if sys.version_info >= (3, 8):
2627
@overload
27-
def get(self, default: _D | _T) -> _D | _T: ...
28+
def get(self, default: _T) -> _T: ...
29+
@overload
30+
def get(self, default: _D) -> _D | _T: ...
2831
else:
2932
@overload
30-
def get(self, __default: _D | _T) -> _D | _T: ...
33+
def get(self, __default: _T) -> _T: ...
34+
@overload
35+
def get(self, __default: _D) -> _D | _T: ...
3136

3237
def set(self, __value: _T) -> Token[_T]: ...
3338
def reset(self, __token: Token[_T]) -> None: ...
@@ -52,11 +57,14 @@ def copy_context() -> Context: ...
5257
class Context(Mapping[ContextVar[Any], Any]):
5358
def __init__(self) -> None: ...
5459
@overload
55-
def get(self, __key: ContextVar[_T]) -> _T | None: ...
60+
def get(self, __key: ContextVar[_T], __default: None = None) -> _T | None: ... # type: ignore[misc] # overlapping overloads
61+
@overload
62+
def get(self, __key: ContextVar[_T], __default: _T) -> _T: ...
5663
@overload
5764
def get(self, __key: ContextVar[_T], __default: _D) -> _T | _D: ...
5865
def run(self, callable: Callable[_P, _T], *args: _P.args, **kwargs: _P.kwargs) -> _T: ...
5966
def copy(self) -> Context: ...
6067
def __getitem__(self, __key: ContextVar[_T]) -> _T: ...
6168
def __iter__(self) -> Iterator[ContextVar[Any]]: ...
6269
def __len__(self) -> int: ...
70+
def __eq__(self, __value: object) -> bool: ...

mypy/typeshed/stdlib/datetime.pyi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class timezone(tzinfo):
3636
def utcoffset(self, __dt: datetime | None) -> timedelta: ...
3737
def dst(self, __dt: datetime | None) -> None: ...
3838
def __hash__(self) -> int: ...
39+
def __eq__(self, __value: object) -> bool: ...
3940

4041
if sys.version_info >= (3, 11):
4142
UTC: timezone
@@ -87,6 +88,7 @@ class date:
8788
def __lt__(self, __value: date) -> bool: ...
8889
def __ge__(self, __value: date) -> bool: ...
8990
def __gt__(self, __value: date) -> bool: ...
91+
def __eq__(self, __value: object) -> bool: ...
9092
if sys.version_info >= (3, 8):
9193
def __add__(self, __value: timedelta) -> Self: ...
9294
def __radd__(self, __value: timedelta) -> Self: ...
@@ -145,6 +147,7 @@ class time:
145147
def __lt__(self, __value: time) -> bool: ...
146148
def __ge__(self, __value: time) -> bool: ...
147149
def __gt__(self, __value: time) -> bool: ...
150+
def __eq__(self, __value: object) -> bool: ...
148151
def __hash__(self) -> int: ...
149152
def isoformat(self, timespec: str = ...) -> str: ...
150153
@classmethod
@@ -219,6 +222,7 @@ class timedelta:
219222
def __lt__(self, __value: timedelta) -> bool: ...
220223
def __ge__(self, __value: timedelta) -> bool: ...
221224
def __gt__(self, __value: timedelta) -> bool: ...
225+
def __eq__(self, __value: object) -> bool: ...
222226
def __bool__(self) -> bool: ...
223227
def __hash__(self) -> int: ...
224228

@@ -310,6 +314,8 @@ class datetime(date):
310314
def __lt__(self, __value: datetime) -> bool: ... # type: ignore[override]
311315
def __ge__(self, __value: datetime) -> bool: ... # type: ignore[override]
312316
def __gt__(self, __value: datetime) -> bool: ... # type: ignore[override]
317+
def __eq__(self, __value: object) -> bool: ...
318+
def __hash__(self) -> int: ...
313319
if sys.version_info >= (3, 8):
314320
@overload # type: ignore[override]
315321
def __sub__(self, __value: timedelta) -> Self: ...

mypy/typeshed/stdlib/email/charset.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ class Charset:
1919
def get_body_encoding(self) -> str | Callable[[Message], None]: ...
2020
def get_output_charset(self) -> str | None: ...
2121
def header_encode(self, string: str) -> str: ...
22-
def header_encode_lines(self, string: str, maxlengths: Iterator[int]) -> list[str]: ...
22+
def header_encode_lines(self, string: str, maxlengths: Iterator[int]) -> list[str | None]: ...
2323
@overload
2424
def body_encode(self, string: None) -> None: ...
2525
@overload
26-
def body_encode(self, string: str) -> str: ...
26+
def body_encode(self, string: str | bytes) -> str: ...
2727
def __eq__(self, other: object) -> bool: ...
2828
def __ne__(self, __value: object) -> bool: ...
2929

mypy/typeshed/stdlib/email/policy.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ compat32: Compat32
5353
class EmailPolicy(Policy):
5454
utf8: bool
5555
refold_source: str
56-
header_factory: Callable[[str, str], str]
56+
header_factory: Callable[[str, Any], Any]
5757
content_manager: ContentManager
5858
def __init__(
5959
self,
@@ -70,9 +70,9 @@ class EmailPolicy(Policy):
7070
content_manager: ContentManager = ...,
7171
) -> None: ...
7272
def header_source_parse(self, sourcelines: list[str]) -> tuple[str, str]: ...
73-
def header_store_parse(self, name: str, value: str) -> tuple[str, str]: ...
74-
def header_fetch_parse(self, name: str, value: str) -> str: ...
75-
def fold(self, name: str, value: str) -> str: ...
73+
def header_store_parse(self, name: str, value: Any) -> tuple[str, Any]: ...
74+
def header_fetch_parse(self, name: str, value: str) -> Any: ...
75+
def fold(self, name: str, value: str) -> Any: ...
7676
def fold_binary(self, name: str, value: str) -> bytes: ...
7777

7878
default: EmailPolicy

0 commit comments

Comments
 (0)