@@ -3,8 +3,8 @@ from _codecs import *
33from _typeshed import ReadableBuffer
44from abc import abstractmethod
55from collections .abc import Callable , Generator , Iterable
6- from typing import Any , BinaryIO , ClassVar , Final , Literal , Protocol , TextIO
7- from typing_extensions import Self
6+ from typing import Any , BinaryIO , ClassVar , Final , Literal , Protocol , TextIO , overload
7+ from typing_extensions import Self , TypeAlias
88
99__all__ = [
1010 "register" ,
@@ -58,6 +58,21 @@ BOM32_LE: Final = b"\xff\xfe"
5858BOM64_BE : Final = b"\x00 \x00 \xfe \xff "
5959BOM64_LE : Final = b"\xff \xfe \x00 \x00 "
6060
61+ _BufferedEncoding : TypeAlias = Literal [
62+ "idna" ,
63+ "raw-unicode-escape" ,
64+ "unicode-escape" ,
65+ "utf-16" ,
66+ "utf-16-be" ,
67+ "utf-16-le" ,
68+ "utf-32" ,
69+ "utf-32-be" ,
70+ "utf-32-le" ,
71+ "utf-7" ,
72+ "utf-8" ,
73+ "utf-8-sig" ,
74+ ]
75+
6176class _WritableStream (Protocol ):
6277 def write (self , data : bytes , / ) -> object : ...
6378 def seek (self , offset : int , whence : int , / ) -> object : ...
@@ -94,6 +109,9 @@ class _IncrementalEncoder(Protocol):
94109class _IncrementalDecoder (Protocol ):
95110 def __call__ (self , errors : str = ...) -> IncrementalDecoder : ...
96111
112+ class _BufferedIncrementalDecoder (Protocol ):
113+ def __call__ (self , errors : str = ...) -> BufferedIncrementalDecoder : ...
114+
97115class CodecInfo (tuple [_Encoder , _Decoder , _StreamReader , _StreamWriter ]):
98116 _is_text_encoding : bool
99117 @property
@@ -125,6 +143,9 @@ class CodecInfo(tuple[_Encoder, _Decoder, _StreamReader, _StreamWriter]):
125143def getencoder (encoding : str ) -> _Encoder : ...
126144def getdecoder (encoding : str ) -> _Decoder : ...
127145def getincrementalencoder (encoding : str ) -> _IncrementalEncoder : ...
146+ @overload
147+ def getincrementaldecoder (encoding : _BufferedEncoding ) -> _BufferedIncrementalDecoder : ...
148+ @overload
128149def getincrementaldecoder (encoding : str ) -> _IncrementalDecoder : ...
129150def getreader (encoding : str ) -> _StreamReader : ...
130151def getwriter (encoding : str ) -> _StreamWriter : ...
0 commit comments