[Python-Dev] cStringIO buffer interface (original) (raw)

Jean-Paul Calderone exarkun at divmod.com
Wed Apr 30 20:38:04 CEST 2008


On Wed, 30 Apr 2008 09:51:25 -0700, Guido van Rossum <guido at python.org> wrote:

On Wed, Apr 30, 2008 at 9:36 AM, Farshid Lashkari <flashk at gmail.com> wrote:

I was just curious as to why cStringIO objects don't implement the buffer interface. cStringIO objects seem similar to string and array objects, and those support the buffer protocol. Is there a reason against allowing cStringIO to support at least the read buffer interface, or is just that nobody has considered it until now? Well, for one, it would mean you could no longer exchange a StringIO instance for a cStringIO instance.

It would probably only mean that there is one further incompatibility between cStringIO and StringIO - you already can't exchange them in a number of cases. They handle unicode differently, they have different methods, etc.

Maybe making them diverge even further is a step in the wrong direction, though.

Also, what's the compelling use case you're thinking of?

I'm not sure what use-case Farshid Lashkari had. For Twisted, it has been considered as a way to reduce peak memory usage (by reducing the need for memory copying, which also speeds things up). I'm not sure if anyone has benchmarked this yet, so I don't know if it's a real win or not. I think Thomas Hervé has a patch to cStringIO which implements the feature, though.

For reference, <http://twistedmatrix.com/trac/ticket/3188>.

This isn't high on my priority list, but I thought I'd point out the potential use-case.

Jean-Paul



More information about the Python-Dev mailing list