[Python-Dev] [Python-3000] Iterable String Redux (aka String ABC) (original) (raw)

Jim Jewett jimjjewett at gmail.com
Wed May 28 00:40:48 CEST 2008


On 5/27/08, Benji York wrote:

Guido van Rossum wrote: > Armin Ronacher wrote:

>> Basically the problematic situation with iterable strings is something like >> a flatten function that flattens out every iterable object except of strings.

> I'm not against this, but so far I've not been able to come up with a > good set of methods to endow the String ABC with. Another problem is > that not everybody draws the line in the same place -- how should > instances of bytes, bytearray, array.array, memoryview (buffer in 2.6) > be treated?

Maybe the opposite approach would be more fruitful. Flattening is about removing nested "containers", so perhaps there should be an ABC that things like lists and tuples provide, but strings don't. No idea what that might be.

It isn't really stringiness that matters, it is that you have to terminate even though you still have an iterable container.

The test is roughly (1==len(v) and v[0]==v), except that you want to stop a layer sooner.

Guido had at least a start in Searchable, back when ABC were still in the sandbox: http://svn.python.org/view/sandbox/trunk/abc/abc.py?rev=55321&view=auto

Searchable represented the fact that (x in c) =/=> (x in iter(c)) because of sequence searches like ("Error" in results)

-jJ



More information about the Python-Dev mailing list