This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pitrou
Recipients loewis, mark.dickinson, pitrou, rhettinger
Date 2011-09-07.12:23:31
SpamBayes Score 2.01464e-05
Marked as misclassified No
Message-id <1315398048.3535.4.camel@localhost.localdomain>
In-reply-to <1315375670.55.0.393326328767.issue12911@psf.upfronthosting.co.za>
Content
> I'm -1 on this approach; I don't think yet another container type is
> the right solution, given that we have already plenty of them.

It's not a container type, just a small C struct that gets allocated on
the stack. Think of it as a library, like stringlib.

> If you want to avoid creating large lists, then the StringIO type
> should already provide that. So I wonder why these functions couldn't
> be rewritten to use StringIO.

That's another possibility. But we'd have to expose a C API anyway, and
this one is as good as any other.

Note that StringIO will copy data twice (once when calling write(), once
when calling getvalue()), while ''.join() only once (at the end, when
concatenating all strings).

> If you really want to use this approach, I'd try to avoid allocating
> the large list if there are only few substrings. I.e. allocate it only
> when flushing, and only if the flush is not the final flush.

That's possible, indeed.
History
Date User Action Args
2011-09-07 12:23:31pitrousetrecipients: + pitrou, loewis, rhettinger, mark.dickinson
2011-09-07 12:23:31pitroulinkissue12911 messages
2011-09-07 12:23:31pitroucreate