Add io.{Reader,Writer} (#14013)

This commit is contained in:
Sebastian Rittau
2025-05-11 15:41:46 +02:00
committed by GitHub
parent 78fc518ab8
commit 4118cf8a45
2 changed files with 21 additions and 4 deletions
+14 -1
View File
@@ -20,7 +20,7 @@ from _io import (
open as open,
open_code as open_code,
)
from typing import Final
from typing import Final, Protocol, TypeVar
__all__ = [
"BlockingIOError",
@@ -44,11 +44,17 @@ __all__ = [
"SEEK_END",
]
if sys.version_info >= (3, 14):
__all__ += ["Reader", "Writer"]
if sys.version_info >= (3, 11):
from _io import text_encoding as text_encoding
__all__ += ["DEFAULT_BUFFER_SIZE", "IncrementalNewlineDecoder", "text_encoding"]
_T_co = TypeVar("_T_co", covariant=True)
_T_contra = TypeVar("_T_contra", contravariant=True)
SEEK_SET: Final = 0
SEEK_CUR: Final = 1
SEEK_END: Final = 2
@@ -58,3 +64,10 @@ class IOBase(_IOBase, metaclass=abc.ABCMeta): ...
class RawIOBase(_RawIOBase, IOBase): ...
class BufferedIOBase(_BufferedIOBase, IOBase): ...
class TextIOBase(_TextIOBase, IOBase): ...
if sys.version_info >= (3, 14):
class Reader(Protocol[_T_co]):
def read(self, size: int = ..., /) -> _T_co: ...
class Writer(Protocol[_T_contra]):
def write(self, data: _T_contra, /) -> int: ...