[issue37846] declare that Text I/O use buffer inside
New submission from Windson Yang <wiwindson@outlook.com>: At the beginning of https://docs.python.org/3.7/library/io.html#io.RawIOBase, we declared that
Binary I/O (also called buffered I/O) and Raw I/O (also called unbuffered I/O)
But we didn't mention if Text I/O use buffer or not which led to confusion. Even though we talked about it later in https://docs.python.org/3.7/library/io.html#class-hierarchy
The TextIOBase ABC, another subclass of IOBase, deals with streams whose bytes represent text, and handles encoding and decoding to and from strings. TextIOWrapper, which extends it, is a buffered text interface to a buffered raw stream (BufferedIOBase). Finally, StringIO is an in-memory stream for text.
IMO, it will be better to declare 'Reads and writes are internally buffered in order to speed things up' at the very beginning in
Text I/O Text I/O expects and produces str objects...
or maybe
class io.TextIOBase Base class for text streams. This class provides a character and line based interface to stream I/O. It inherits IOBase. There is no public constructor.
---------- assignee: docs@python components: Documentation messages: 349633 nosy: Windson Yang, docs@python priority: normal severity: normal status: open title: declare that Text I/O use buffer inside type: enhancement versions: Python 3.8 _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue37846> _______________________________________
Inada Naoki <songofacandy@gmail.com> added the comment: It's just an implementation detail. Python implementation and C implementation behave slightly different. But user program shouldn't rely on the detail. Why do you think implementation details should be declared? Who needs the information? ---------- nosy: +inada.naoki _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue37846> _______________________________________
Windson Yang <wiwindson@outlook.com> added the comment: I found the document is not that clear when I try to understand what happens when Python read/write a file. I'm not sure who also needs this information. As you said, It wouldn't help the user program in Python. However, make it more clear maybe help users have a better feeling of what is happening under the hood. ---------- _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue37846> _______________________________________
Inada Naoki <songofacandy@gmail.com> added the comment: I still think it's too detailed. Reading C and Python code is much better way to understand such implementation detail. ---------- resolution: -> rejected stage: -> resolved status: open -> closed _______________________________________ Python tracker <report@bugs.python.org> <https://bugs.python.org/issue37846> _______________________________________
participants (2)
-
Inada Naoki -
Windson Yang