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
+7 -3
View File
@@ -129,9 +129,6 @@ importlib.machinery.__all__
importlib.machinery.AppleFrameworkLoader
importlib.util.__all__
importlib.util.Loader
io.__all__
io.Reader
io.Writer
ipaddress._IPAddressBase.version
logging.handlers.SysLogHandler.__init__
marshal.dump
@@ -299,6 +296,13 @@ typing(_extensions)?\.IO\.writelines
.*\.ForwardRef\.__owner__
.*\.ForwardRef\.__stringifier_dict__
# These protocols use ABC hackery at runtime.
io.Reader.__class_getitem__
io.Reader.read
io.Writer.__class_getitem__
io.Writer.write
# =============================================================
# Allowlist entries that cannot or should not be fixed; >= 3.13
# =============================================================
+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: ...