[Python-3000] [Python-Dev] Iterable String Redux (aka String ABC)
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-3000
mailing list