11import email .message
2+ import io
23import sys
3- from _typeshed import Self , StrOrBytesPath
4+ from _typeshed import Self , StrPath , SupportsNoArgReadline , SupportsRead
45from abc import ABCMeta , abstractmethod
56from collections .abc import Callable , Iterable , Iterator , Mapping , Sequence
67from types import TracebackType
@@ -32,7 +33,10 @@ __all__ = [
3233
3334_T = TypeVar ("_T" )
3435_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
3640
3741class _HasIteritems (Protocol ):
3842 def iteritems (self ) -> Iterator [tuple [str , _MessageData ]]: ...
@@ -43,13 +47,12 @@ class _HasItems(Protocol):
4347linesep : bytes
4448
4549class Mailbox (Generic [_MessageT ]):
46-
47- _path : bytes | str # undocumented
50+ _path : str # undocumented
4851 _factory : Callable [[IO [Any ]], _MessageT ] | None # undocumented
4952 @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 : ...
5154 @overload
52- def __init__ (self , path : StrOrBytesPath , factory : None = ..., create : bool = ...) -> None : ...
55+ def __init__ (self , path : StrPath , factory : None = ..., create : bool = ...) -> None : ...
5356 @abstractmethod
5457 def add (self , message : _MessageData ) -> str : ...
5558 @abstractmethod
@@ -105,7 +108,7 @@ class Maildir(Mailbox[MaildirMessage]):
105108
106109 colon : str
107110 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 = ...
109112 ) -> None : ...
110113 def add (self , message : _MessageData ) -> str : ...
111114 def remove (self , key : str ) -> None : ...
@@ -146,19 +149,13 @@ class _mboxMMDF(_singlefileMailbox[_MessageT]):
146149 def get_string (self , key : str , from_ : bool = ...) -> str : ...
147150
148151class 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 : ...
152153
153154class 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 : ...
157156
158157class 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 : ...
162159 def add (self , message : _MessageData ) -> str : ...
163160 def remove (self , key : str ) -> None : ...
164161 def __setitem__ (self , key : str , message : _MessageData ) -> None : ...
@@ -173,17 +170,15 @@ class MH(Mailbox[MHMessage]):
173170 def unlock (self ) -> None : ...
174171 def close (self ) -> None : ...
175172 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 : ...
179176 def get_sequences (self ) -> dict [str , list [int ]]: ...
180177 def set_sequences (self , sequences : Mapping [str , Sequence [int ]]) -> None : ...
181178 def pack (self ) -> None : ...
182179
183180class 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 : ...
187182 def get_message (self , key : str ) -> BabylMessage : ...
188183 def get_bytes (self , key : str ) -> bytes : ...
189184 def get_file (self , key : str ) -> IO [bytes ]: ...
0 commit comments