Title: Explicit mention of raised ValueError's after .detach() of underlying IO buffer
Type: behavior Stage:
Components: Documentation Versions: Python 3.9, Python 3.8, Python 3.7, Python 3.6, Python 3.5
Status: open Resolution:
Dependencies: Superseder:
Assigned To: docs@python Nosy List: bskinn, docs@python
Priority: normal Keywords:

Created on 2019-07-29 03:34 by bskinn, last changed 2019-07-29 03:35 by bskinn.

Messages (1)
msg348594 - (view) Author: Brian Skinn (bskinn) * Date: 2019-07-29 03:34
Once the underlying buffer/stream is .detach()ed from an instance of a subclass of TextIOBase or BufferedIOBase, accession of most attributes defined on TextIOBase/BufferedIOBase or the IOBase parent, as well as calling of most methods defined on TextIOBase/BufferedIOBase/IOBase, results in raising of a ValueError.

Currently, the documentation of both .detach() methods states simply:

> After the raw stream has been detached, the buffer is in an unusable state.

I propose augmenting the above to something like the following in the docs for both .detach() methods, to make this behavior more explicit:

> After the raw stream has been detached, the buffer
> is in an unusable state. As a result, accessing/calling most
> attributes/methods of either :class:`BufferedIOBase` or its
> :class:`IOBase` parent will raise :exc:`ValueError`.

I confirm that the error raised for both `BufferedReader` and `TextIOWrapper` after `.detach()` *is* ValueError in all of 3.5.7, 3.6.8, 3.7.3, and 3.8.0b1.
Date User Action Args
2019-07-29 03:35:26bskinnsettype: enhancement -> behavior
2019-07-29 03:34:58bskinncreate