Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-35848: Move all documentation regarding the readinto #11893

Merged
merged 1 commit into from Apr 9, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 6 additions & 8 deletions Doc/library/io.rst
Expand Up @@ -226,17 +226,15 @@ I/O Base Classes
implementations represent a file that cannot be read, written or
seeked.

Even though :class:`IOBase` does not declare :meth:`read`, :meth:`readinto`,
Even though :class:`IOBase` does not declare :meth:`read`
or :meth:`write` because their signatures will vary, implementations and
clients should consider those methods part of the interface. Also,
implementations may raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`)
when operations they do not support are called.

The basic type used for binary data read from or written to a file is
:class:`bytes`. Other :term:`bytes-like objects <bytes-like object>` are
accepted as method arguments too. In some cases, such as
:meth:`~RawIOBase.readinto`, a writable object such as :class:`bytearray`
is required. Text I/O classes work with :class:`str` data.
accepted as method arguments too. Text I/O classes work with :class:`str` data.

Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise :exc:`ValueError` in this case.
Expand Down Expand Up @@ -405,7 +403,8 @@ I/O Base Classes

Read bytes into a pre-allocated, writable
:term:`bytes-like object` *b*, and return the
number of bytes read. If the object is in non-blocking mode and no bytes
number of bytes read. For example, *b* might be a :class:`bytearray`.
If the object is in non-blocking mode and no bytes
are available, ``None`` is returned.

.. method:: write(b)
Expand Down Expand Up @@ -495,6 +494,7 @@ I/O Base Classes

Read bytes into a pre-allocated, writable
:term:`bytes-like object` *b* and return the number of bytes read.
For example, *b* might be a :class:`bytearray`.

Like :meth:`read`, multiple reads may be issued to the underlying raw
stream, unless the latter is interactive.
Expand Down Expand Up @@ -757,8 +757,7 @@ Text I/O
.. class:: TextIOBase

Base class for text streams. This class provides a character and line based
interface to stream I/O. There is no :meth:`readinto` method because
Python's character strings are immutable. It inherits :class:`IOBase`.
interface to stream I/O. It inherits :class:`IOBase`.
There is no public constructor.

:class:`TextIOBase` provides or overrides these data attributes and
Expand Down Expand Up @@ -1048,4 +1047,3 @@ The above implicitly extends to text files, since the :func:`open()` function
will wrap a buffered object inside a :class:`TextIOWrapper`. This includes
standard streams and therefore affects the built-in function :func:`print()` as
well.

10 changes: 4 additions & 6 deletions Lib/_pyio.py
Expand Up @@ -292,16 +292,15 @@ class IOBase(metaclass=abc.ABCMeta):
derived classes can override selectively; the default implementations
represent a file that cannot be read, written or seeked.

Even though IOBase does not declare read, readinto, or write because
Even though IOBase does not declare read or write because
their signatures will vary, implementations and clients should
consider those methods part of the interface. Also, implementations
may raise UnsupportedOperation when operations they do not support are
called.

The basic type used for binary data read from or written to a file is
bytes. Other bytes-like objects are accepted as method arguments too. In
some cases (such as readinto), a writable object is required. Text I/O
classes work with str data.
bytes. Other bytes-like objects are accepted as method arguments too.
Text I/O classes work with str data.

Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise OSError in this case.
Expand Down Expand Up @@ -1763,8 +1762,7 @@ class TextIOBase(IOBase):
"""Base class for text I/O.

This class provides a character and line based interface to stream
I/O. There is no readinto method because Python's character strings
are immutable. There is no public constructor.
I/O. There is no public constructor.
"""

def read(self, size=-1):
Expand Down