What is a backing store in the context of module io https://docs.python.org/3/library/io.html
Terry Reedy
tjreedy at udel.edu
Mon Nov 11 14:29:17 EST 2019
On 11/11/2019 11:08 AM, Veek M wrote:
> https://docs.python.org/3/library/io.html
> 'Text I/O expects and produces str objects. This means that whenever the
> backing store is natively made of bytes (such as in the case of a file),
> encoding and decoding of data is made transparently as well as optional
> translation of platform-specific newline characters.'
>
> 1. What is a backing store?
Whatever you can read from or write to. Unix uses 'file' with the same
extended sense. Reread the Overview section above.
> 2. How does it fit in/influence what we pass to the fileObject/stream/
> filelikeObject.method()
What the text you quote says is that if the source or destination for a
text stream is actually bytes, you still receive or pass text because
the translation is done for you (if you have opened the text stream with
the right arguments.
> Google just says the backing store is secondary MEMORY - Harddisk cache
> or for paging.. but how does that relate to Python?
Different languages have different data models of what one is
manipulating. In assembly and C, one manipulates fixed-length blocks of
main memory, which itself is a sequence of bytes numbered 0, ..., N. So
a backup store is 'secondary memory'.
Python manipulates 'information objects' in an 'object space'. Python
objects of type str and bytes, and only those two types, can be input
and output. Other objects are converted from or to one of those types
for input and output.
> I just concluded the backing store was a buffer?
Text and binary streams use a buffer, raw streams do not.
--
Terry Jan Reedy
More information about the Python-list
mailing list