massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / mailbox.pyi
1 import email.message
2 import sys
3 from _typeshed import Self, StrOrBytesPath
4 from types import TracebackType
5 from typing import (
6     IO,
7     Any,
8     AnyStr,
9     Callable,
10     Generic,
11     Iterable,
12     Iterator,
13     Mapping,
14     Protocol,
15     Sequence,
16     Type,
17     TypeVar,
18     Union,
19     overload,
20 )
21 from typing_extensions import Literal
22
23 if sys.version_info >= (3, 9):
24     from types import GenericAlias
25
26 _T = TypeVar("_T")
27 _MessageT = TypeVar("_MessageT", bound=Message)
28 _MessageData = Union[email.message.Message, bytes, str, IO[str], IO[bytes]]
29
30 class _HasIteritems(Protocol):
31     def iteritems(self) -> Iterator[tuple[str, _MessageData]]: ...
32
33 class _HasItems(Protocol):
34     def items(self) -> Iterator[tuple[str, _MessageData]]: ...
35
36 linesep: bytes
37
38 class Mailbox(Generic[_MessageT]):
39
40     _path: bytes | str  # undocumented
41     _factory: Callable[[IO[Any]], _MessageT] | None  # undocumented
42     def __init__(
43         self, path: StrOrBytesPath, factory: Callable[[IO[Any]], _MessageT] | None = ..., create: bool = ...
44     ) -> None: ...
45     def add(self, message: _MessageData) -> str: ...
46     def remove(self, key: str) -> None: ...
47     def __delitem__(self, key: str) -> None: ...
48     def discard(self, key: str) -> None: ...
49     def __setitem__(self, key: str, message: _MessageData) -> None: ...
50     @overload
51     def get(self, key: str, default: None = ...) -> _MessageT | None: ...
52     @overload
53     def get(self, key: str, default: _T) -> _MessageT | _T: ...
54     def __getitem__(self, key: str) -> _MessageT: ...
55     def get_message(self, key: str) -> _MessageT: ...
56     def get_string(self, key: str) -> str: ...
57     def get_bytes(self, key: str) -> bytes: ...
58     # As '_ProxyFile' doesn't implement the full IO spec, and BytesIO is incompatible with it, get_file return is Any here
59     def get_file(self, key: str) -> Any: ...
60     def iterkeys(self) -> Iterator[str]: ...
61     def keys(self) -> list[str]: ...
62     def itervalues(self) -> Iterator[_MessageT]: ...
63     def __iter__(self) -> Iterator[_MessageT]: ...
64     def values(self) -> list[_MessageT]: ...
65     def iteritems(self) -> Iterator[tuple[str, _MessageT]]: ...
66     def items(self) -> list[tuple[str, _MessageT]]: ...
67     def __contains__(self, key: str) -> bool: ...
68     def __len__(self) -> int: ...
69     def clear(self) -> None: ...
70     @overload
71     def pop(self, key: str, default: None = ...) -> _MessageT | None: ...
72     @overload
73     def pop(self, key: str, default: _T = ...) -> _MessageT | _T: ...
74     def popitem(self) -> tuple[str, _MessageT]: ...
75     def update(self, arg: _HasIteritems | _HasItems | Iterable[tuple[str, _MessageData]] | None = ...) -> None: ...
76     def flush(self) -> None: ...
77     def lock(self) -> None: ...
78     def unlock(self) -> None: ...
79     def close(self) -> None: ...
80     if sys.version_info >= (3, 9):
81         def __class_getitem__(cls, item: Any) -> GenericAlias: ...
82
83 class Maildir(Mailbox[MaildirMessage]):
84
85     colon: str
86     def __init__(
87         self, dirname: StrOrBytesPath, factory: Callable[[IO[Any]], MaildirMessage] | None = ..., create: bool = ...
88     ) -> None: ...
89     def get_file(self, key: str) -> _ProxyFile[bytes]: ...
90     def list_folders(self) -> list[str]: ...
91     def get_folder(self, folder: str) -> Maildir: ...
92     def add_folder(self, folder: str) -> Maildir: ...
93     def remove_folder(self, folder: str) -> None: ...
94     def clean(self) -> None: ...
95     def next(self) -> str | None: ...
96
97 class _singlefileMailbox(Mailbox[_MessageT]): ...
98
99 class _mboxMMDF(_singlefileMailbox[_MessageT]):
100     def get_file(self, key: str, from_: bool = ...) -> _PartialFile[bytes]: ...
101     def get_bytes(self, key: str, from_: bool = ...) -> bytes: ...
102     def get_string(self, key: str, from_: bool = ...) -> str: ...
103
104 class mbox(_mboxMMDF[mboxMessage]):
105     def __init__(
106         self, path: StrOrBytesPath, factory: Callable[[IO[Any]], mboxMessage] | None = ..., create: bool = ...
107     ) -> None: ...
108
109 class MMDF(_mboxMMDF[MMDFMessage]):
110     def __init__(
111         self, path: StrOrBytesPath, factory: Callable[[IO[Any]], MMDFMessage] | None = ..., create: bool = ...
112     ) -> None: ...
113
114 class MH(Mailbox[MHMessage]):
115     def __init__(
116         self, path: StrOrBytesPath, factory: Callable[[IO[Any]], MHMessage] | None = ..., create: bool = ...
117     ) -> None: ...
118     def get_file(self, key: str) -> _ProxyFile[bytes]: ...
119     def list_folders(self) -> list[str]: ...
120     def get_folder(self, folder: StrOrBytesPath) -> MH: ...
121     def add_folder(self, folder: StrOrBytesPath) -> MH: ...
122     def remove_folder(self, folder: StrOrBytesPath) -> None: ...
123     def get_sequences(self) -> dict[str, list[int]]: ...
124     def set_sequences(self, sequences: Mapping[str, Sequence[int]]) -> None: ...
125     def pack(self) -> None: ...
126
127 class Babyl(_singlefileMailbox[BabylMessage]):
128     def __init__(
129         self, path: StrOrBytesPath, factory: Callable[[IO[Any]], BabylMessage] | None = ..., create: bool = ...
130     ) -> None: ...
131     def get_file(self, key: str) -> IO[bytes]: ...
132     def get_labels(self) -> list[str]: ...
133
134 class Message(email.message.Message):
135     def __init__(self, message: _MessageData | None = ...) -> None: ...
136
137 class MaildirMessage(Message):
138     def get_subdir(self) -> str: ...
139     def set_subdir(self, subdir: Literal["new", "cur"]) -> None: ...
140     def get_flags(self) -> str: ...
141     def set_flags(self, flags: Iterable[str]) -> None: ...
142     def add_flag(self, flag: str) -> None: ...
143     def remove_flag(self, flag: str) -> None: ...
144     def get_date(self) -> int: ...
145     def set_date(self, date: float) -> None: ...
146     def get_info(self) -> str: ...
147     def set_info(self, info: str) -> None: ...
148
149 class _mboxMMDFMessage(Message):
150     def get_from(self) -> str: ...
151     def set_from(self, from_: str, time_: bool | tuple[int, int, int, int, int, int, int, int, int] | None = ...) -> None: ...
152     def get_flags(self) -> str: ...
153     def set_flags(self, flags: Iterable[str]) -> None: ...
154     def add_flag(self, flag: str) -> None: ...
155     def remove_flag(self, flag: str) -> None: ...
156
157 class mboxMessage(_mboxMMDFMessage): ...
158
159 class MHMessage(Message):
160     def get_sequences(self) -> list[str]: ...
161     def set_sequences(self, sequences: Iterable[str]) -> None: ...
162     def add_sequence(self, sequence: str) -> None: ...
163     def remove_sequence(self, sequence: str) -> None: ...
164
165 class BabylMessage(Message):
166     def get_labels(self) -> list[str]: ...
167     def set_labels(self, labels: Iterable[str]) -> None: ...
168     def add_label(self, label: str) -> None: ...
169     def remove_label(self, label: str) -> None: ...
170     def get_visible(self) -> Message: ...
171     def set_visible(self, visible: _MessageData) -> None: ...
172     def update_visible(self) -> None: ...
173
174 class MMDFMessage(_mboxMMDFMessage): ...
175
176 class _ProxyFile(Generic[AnyStr]):
177     def __init__(self, f: IO[AnyStr], pos: int | None = ...) -> None: ...
178     def read(self, size: int | None = ...) -> AnyStr: ...
179     def read1(self, size: int | None = ...) -> AnyStr: ...
180     def readline(self, size: int | None = ...) -> AnyStr: ...
181     def readlines(self, sizehint: int | None = ...) -> list[AnyStr]: ...
182     def __iter__(self) -> Iterator[AnyStr]: ...
183     def tell(self) -> int: ...
184     def seek(self, offset: int, whence: int = ...) -> None: ...
185     def close(self) -> None: ...
186     def __enter__(self: Self) -> Self: ...
187     def __exit__(self, exc_type: Type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None) -> None: ...
188     def readable(self) -> bool: ...
189     def writable(self) -> bool: ...
190     def seekable(self) -> bool: ...
191     def flush(self) -> None: ...
192     @property
193     def closed(self) -> bool: ...
194     if sys.version_info >= (3, 9):
195         def __class_getitem__(cls, item: Any) -> GenericAlias: ...
196
197 class _PartialFile(_ProxyFile[AnyStr]):
198     def __init__(self, f: IO[AnyStr], start: int | None = ..., stop: int | None = ...) -> None: ...
199
200 class Error(Exception): ...
201 class NoSuchMailboxError(Error): ...
202 class NotEmptyError(Error): ...
203 class ExternalClashError(Error): ...
204 class FormatError(Error): ...