Commit 7b97ab35 authored by Steve Palmer's avatar Steve Palmer Committed by Benjamin Peterson

closes bpo-35848: Move all documentation regarding the readinto out of IOBase. (GH-11893)

Move all documentation regarding the readinto method into either io.RawIOBase or io.BufferedIOBase.

Corresponding changes to documentation in the _pyio.py module.
parent 8702b67d
...@@ -226,7 +226,7 @@ I/O Base Classes ...@@ -226,7 +226,7 @@ I/O Base Classes
implementations represent a file that cannot be read, written or implementations represent a file that cannot be read, written or
seeked. 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 or :meth:`write` because their signatures will vary, implementations and
clients should consider those methods part of the interface. Also, clients should consider those methods part of the interface. Also,
implementations may raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`) implementations may raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`)
...@@ -234,9 +234,7 @@ I/O Base Classes ...@@ -234,9 +234,7 @@ I/O Base Classes
The basic type used for binary data read from or written to a file is 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 :class:`bytes`. Other :term:`bytes-like objects <bytes-like object>` are
accepted as method arguments too. In some cases, such as accepted as method arguments too. Text I/O classes work with :class:`str` data.
:meth:`~RawIOBase.readinto`, a writable object such as :class:`bytearray`
is required. Text I/O classes work with :class:`str` data.
Note that calling any method (even inquiries) on a closed stream is Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise :exc:`ValueError` in this case. undefined. Implementations may raise :exc:`ValueError` in this case.
...@@ -405,7 +403,8 @@ I/O Base Classes ...@@ -405,7 +403,8 @@ I/O Base Classes
Read bytes into a pre-allocated, writable Read bytes into a pre-allocated, writable
:term:`bytes-like object` *b*, and return the :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. are available, ``None`` is returned.
.. method:: write(b) .. method:: write(b)
...@@ -495,6 +494,7 @@ I/O Base Classes ...@@ -495,6 +494,7 @@ I/O Base Classes
Read bytes into a pre-allocated, writable Read bytes into a pre-allocated, writable
:term:`bytes-like object` *b* and return the number of bytes read. :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 Like :meth:`read`, multiple reads may be issued to the underlying raw
stream, unless the latter is interactive. stream, unless the latter is interactive.
...@@ -757,8 +757,7 @@ Text I/O ...@@ -757,8 +757,7 @@ Text I/O
.. class:: TextIOBase .. class:: TextIOBase
Base class for text streams. This class provides a character and line based 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 interface to stream I/O. It inherits :class:`IOBase`.
Python's character strings are immutable. It inherits :class:`IOBase`.
There is no public constructor. There is no public constructor.
:class:`TextIOBase` provides or overrides these data attributes and :class:`TextIOBase` provides or overrides these data attributes and
...@@ -1048,4 +1047,3 @@ The above implicitly extends to text files, since the :func:`open()` function ...@@ -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 will wrap a buffered object inside a :class:`TextIOWrapper`. This includes
standard streams and therefore affects the built-in function :func:`print()` as standard streams and therefore affects the built-in function :func:`print()` as
well. well.
...@@ -292,16 +292,15 @@ class IOBase(metaclass=abc.ABCMeta): ...@@ -292,16 +292,15 @@ class IOBase(metaclass=abc.ABCMeta):
derived classes can override selectively; the default implementations derived classes can override selectively; the default implementations
represent a file that cannot be read, written or seeked. 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 their signatures will vary, implementations and clients should
consider those methods part of the interface. Also, implementations consider those methods part of the interface. Also, implementations
may raise UnsupportedOperation when operations they do not support are may raise UnsupportedOperation when operations they do not support are
called. called.
The basic type used for binary data read from or written to a file is 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 bytes. Other bytes-like objects are accepted as method arguments too.
some cases (such as readinto), a writable object is required. Text I/O Text I/O classes work with str data.
classes work with str data.
Note that calling any method (even inquiries) on a closed stream is Note that calling any method (even inquiries) on a closed stream is
undefined. Implementations may raise OSError in this case. undefined. Implementations may raise OSError in this case.
...@@ -1763,8 +1762,7 @@ class TextIOBase(IOBase): ...@@ -1763,8 +1762,7 @@ class TextIOBase(IOBase):
"""Base class for text I/O. """Base class for text I/O.
This class provides a character and line based interface to stream This class provides a character and line based interface to stream
I/O. There is no readinto method because Python's character strings I/O. There is no public constructor.
are immutable. There is no public constructor.
""" """
def read(self, size=-1): def read(self, size=-1):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment