1
1
import email .message
2
+ import io
2
3
import sys
3
- from _typeshed import Self , StrOrBytesPath
4
+ from _typeshed import Self , StrPath , SupportsNoArgReadline , SupportsRead
4
5
from abc import ABCMeta , abstractmethod
5
6
from collections .abc import Callable , Iterable , Iterator , Mapping , Sequence
6
7
from types import TracebackType
@@ -32,7 +33,10 @@ __all__ = [
32
33
33
34
_T = TypeVar ("_T" )
34
35
_MessageT = TypeVar ("_MessageT" , bound = Message )
35
- _MessageData : TypeAlias = email .message .Message | bytes | str | IO [str ] | IO [bytes ]
36
+
37
+ class _SupportsReadAndReadline (SupportsRead [bytes ], SupportsNoArgReadline [bytes ], Protocol ): ...
38
+
39
+ _MessageData : TypeAlias = email .message .Message | bytes | str | io .StringIO | _SupportsReadAndReadline
36
40
37
41
class _HasIteritems (Protocol ):
38
42
def iteritems (self ) -> Iterator [tuple [str , _MessageData ]]: ...
@@ -43,13 +47,12 @@ class _HasItems(Protocol):
43
47
linesep : bytes
44
48
45
49
class Mailbox (Generic [_MessageT ]):
46
-
47
- _path : bytes | str # undocumented
50
+ _path : str # undocumented
48
51
_factory : Callable [[IO [Any ]], _MessageT ] | None # undocumented
49
52
@overload
50
- def __init__ (self , path : StrOrBytesPath , factory : Callable [[IO [Any ]], _MessageT ], create : bool = ...) -> None : ...
53
+ def __init__ (self , path : StrPath , factory : Callable [[IO [Any ]], _MessageT ], create : bool = ...) -> None : ...
51
54
@overload
52
- def __init__ (self , path : StrOrBytesPath , factory : None = ..., create : bool = ...) -> None : ...
55
+ def __init__ (self , path : StrPath , factory : None = ..., create : bool = ...) -> None : ...
53
56
@abstractmethod
54
57
def add (self , message : _MessageData ) -> str : ...
55
58
@abstractmethod
@@ -105,7 +108,7 @@ class Maildir(Mailbox[MaildirMessage]):
105
108
106
109
colon : str
107
110
def __init__ (
108
- self , dirname : StrOrBytesPath , factory : Callable [[IO [Any ]], MaildirMessage ] | None = ..., create : bool = ...
111
+ self , dirname : StrPath , factory : Callable [[IO [Any ]], MaildirMessage ] | None = ..., create : bool = ...
109
112
) -> None : ...
110
113
def add (self , message : _MessageData ) -> str : ...
111
114
def remove (self , key : str ) -> None : ...
@@ -146,19 +149,13 @@ class _mboxMMDF(_singlefileMailbox[_MessageT]):
146
149
def get_string (self , key : str , from_ : bool = ...) -> str : ...
147
150
148
151
class mbox (_mboxMMDF [mboxMessage ]):
149
- def __init__ (
150
- self , path : StrOrBytesPath , factory : Callable [[IO [Any ]], mboxMessage ] | None = ..., create : bool = ...
151
- ) -> None : ...
152
+ def __init__ (self , path : StrPath , factory : Callable [[IO [Any ]], mboxMessage ] | None = ..., create : bool = ...) -> None : ...
152
153
153
154
class MMDF (_mboxMMDF [MMDFMessage ]):
154
- def __init__ (
155
- self , path : StrOrBytesPath , factory : Callable [[IO [Any ]], MMDFMessage ] | None = ..., create : bool = ...
156
- ) -> None : ...
155
+ def __init__ (self , path : StrPath , factory : Callable [[IO [Any ]], MMDFMessage ] | None = ..., create : bool = ...) -> None : ...
157
156
158
157
class MH (Mailbox [MHMessage ]):
159
- def __init__ (
160
- self , path : StrOrBytesPath , factory : Callable [[IO [Any ]], MHMessage ] | None = ..., create : bool = ...
161
- ) -> None : ...
158
+ def __init__ (self , path : StrPath , factory : Callable [[IO [Any ]], MHMessage ] | None = ..., create : bool = ...) -> None : ...
162
159
def add (self , message : _MessageData ) -> str : ...
163
160
def remove (self , key : str ) -> None : ...
164
161
def __setitem__ (self , key : str , message : _MessageData ) -> None : ...
@@ -173,17 +170,15 @@ class MH(Mailbox[MHMessage]):
173
170
def unlock (self ) -> None : ...
174
171
def close (self ) -> None : ...
175
172
def list_folders (self ) -> list [str ]: ...
176
- def get_folder (self , folder : StrOrBytesPath ) -> MH : ...
177
- def add_folder (self , folder : StrOrBytesPath ) -> MH : ...
178
- def remove_folder (self , folder : StrOrBytesPath ) -> None : ...
173
+ def get_folder (self , folder : StrPath ) -> MH : ...
174
+ def add_folder (self , folder : StrPath ) -> MH : ...
175
+ def remove_folder (self , folder : StrPath ) -> None : ...
179
176
def get_sequences (self ) -> dict [str , list [int ]]: ...
180
177
def set_sequences (self , sequences : Mapping [str , Sequence [int ]]) -> None : ...
181
178
def pack (self ) -> None : ...
182
179
183
180
class Babyl (_singlefileMailbox [BabylMessage ]):
184
- def __init__ (
185
- self , path : StrOrBytesPath , factory : Callable [[IO [Any ]], BabylMessage ] | None = ..., create : bool = ...
186
- ) -> None : ...
181
+ def __init__ (self , path : StrPath , factory : Callable [[IO [Any ]], BabylMessage ] | None = ..., create : bool = ...) -> None : ...
187
182
def get_message (self , key : str ) -> BabylMessage : ...
188
183
def get_bytes (self , key : str ) -> bytes : ...
189
184
def get_file (self , key : str ) -> IO [bytes ]: ...
0 commit comments