On Mon, Mar 30, 2020 at 10:08:06PM -0700, Guido van Rossum wrote:
> On Mon, Mar 30, 2020 at 10:00 PM Steven D'Aprano <st...@pearwood.info>
> wrote:
> 
> > > it’s optimized for a different use case than string building,
> >
> > It is? That's odd. The whole purpose of StringIO is to build strings.

I misspoke: it is not the *whole* purpose. See below.


> > What use-case do you believe it is optimized for?
> >
> 
> Let me tell you, since I was there.
> 
> StringIO was created in order to fit code designed to a file, where all you
> want to do is capture its output and process it further, in the same
> process. (Or vice versa for the reading case of course.) IOW its *primary*
> feature is that it is a duck type for a file, and that is what it's
> optimized for. Also note that it only applies to use cases where the data
> does, indeed, fit in the process's memory somewhat easily -- else you
> should probably use a temporary file. If the filesystem were fast enough
> and temporary files were easier to use we wouldn't have needed it.

But it does that by *building a string*, does it not? That's what the 
getvalue() method is for.

Perhaps we're talking past each other. I'm aware that the purpose of 
StringIO is to offer a file-like API with an in-memory object that 
doesn't require external storage on the file system. (Hence my 
retraction above about "whole purpose".)

But it still has to do this by returning a string. (In the case of 
writing to a StringIO object, obviously.)



-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/EIZYFHFYAGQNM6I7MAJO333UHQKICEBQ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to