Indicate that seek and tell are mandatory on BufferedRandom. (GH-11216)
For BufferedReader and BufferedWriter, seek and tell operations are
optional (they may or may not exist based on the underlying stream). For
BufferedRandom, they are mandatory: a BufferedRandom should not be
constructed over an unseekable underlying stream. Document this.
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index 9738c5c..0f12516 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -719,15 +719,15 @@
.. class:: BufferedRandom(raw, buffer_size=DEFAULT_BUFFER_SIZE)
A buffered interface to random access streams. It inherits
- :class:`BufferedReader` and :class:`BufferedWriter`, and further supports
- :meth:`seek` and :meth:`tell` functionality.
+ :class:`BufferedReader` and :class:`BufferedWriter`.
The constructor creates a reader and writer for a seekable raw stream, given
in the first argument. If the *buffer_size* is omitted it defaults to
:data:`DEFAULT_BUFFER_SIZE`.
:class:`BufferedRandom` is capable of anything :class:`BufferedReader` or
- :class:`BufferedWriter` can do.
+ :class:`BufferedWriter` can do. In addition, :meth:`seek` and :meth:`tell`
+ are guaranteed to be implemented.
.. class:: BufferedRWPair(reader, writer, buffer_size=DEFAULT_BUFFER_SIZE)