Issue #12213: make it clear that BufferedRWPair shouldn't be called with the

same object as reader and writer, and deemphasize it in document order.
This commit is contained in:
Antoine Pitrou 2011-08-20 19:51:31 +02:00
parent 9b68092d1d
commit b384356b9b
1 changed files with 23 additions and 19 deletions

View File

@ -604,25 +604,6 @@ than raw I/O does.
if the buffer needs to be written out but the raw stream blocks. if the buffer needs to be written out but the raw stream blocks.
.. class:: BufferedRWPair(reader, writer, buffer_size=DEFAULT_BUFFER_SIZE)
A buffered I/O object giving a combined, higher-level access to two
sequential :class:`RawIOBase` objects: one readable, the other writeable.
It is useful for pairs of unidirectional communication channels
(pipes, for instance). It inherits :class:`BufferedIOBase`.
*reader* and *writer* are :class:`RawIOBase` objects that are readable and
writeable respectively. If the *buffer_size* is omitted it defaults to
:data:`DEFAULT_BUFFER_SIZE`.
A fourth argument, *max_buffer_size*, is supported, but unused and
deprecated.
:class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\'s methods
except for :meth:`~BufferedIOBase.detach`, which raises
:exc:`UnsupportedOperation`.
.. class:: BufferedRandom(raw, buffer_size=DEFAULT_BUFFER_SIZE) .. class:: BufferedRandom(raw, buffer_size=DEFAULT_BUFFER_SIZE)
A buffered interface to random access streams. It inherits A buffered interface to random access streams. It inherits
@ -639,6 +620,29 @@ than raw I/O does.
:class:`BufferedWriter` can do. :class:`BufferedWriter` can do.
.. class:: BufferedRWPair(reader, writer, buffer_size=DEFAULT_BUFFER_SIZE)
A buffered I/O object combining two unidirectional :class:`RawIOBase`
objects -- one readable, the other writeable -- into a single bidirectional
endpoint. It inherits :class:`BufferedIOBase`.
*reader* and *writer* are :class:`RawIOBase` objects that are readable and
writeable respectively. If the *buffer_size* is omitted it defaults to
:data:`DEFAULT_BUFFER_SIZE`.
A fourth argument, *max_buffer_size*, is supported, but unused and
deprecated.
:class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\'s methods
except for :meth:`~BufferedIOBase.detach`, which raises
:exc:`UnsupportedOperation`.
.. warning::
:class:`BufferedRWPair` does not attempt to synchronize accesses to
its underlying raw streams. You should not pass it the same object
as reader and writer; use :class:`BufferedRandom` instead.
Text I/O Text I/O
-------- --------