[issue12911] Expose a private accumulator C API
Martin v. Löwis
report at bugs.python.org
Mon Oct 3 13:44:14 CEST 2011
Martin v. Löwis <martin at v.loewis.de> added the comment:
> 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.
That's what I call a container type: a structure with a library :-)
> That's another possibility. But we'd have to expose a
> C API anyway, and this one is as good as any other.
No, it's not: it's additional clutter. If new API needs to be added,
adding it for existing structures is better. Notice that you don't
*need* new API, as you can use StringIO just fine from C also.
> 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).
Sounds like a flaw in StringIO to me. It could also manage a list of strings that have been written, rather than only using a flat buffer. Only when someone actually needs a linear buffer, it could convert it (and use a plain string.join when getvalue is called and there is no buffer at all).
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue12911>
_______________________________________
More information about the Python-bugs-list
mailing list