RE: Itertools wishlists

From: Robert Brewer (fumanchu_at_amor.org)
Date: 03/14/05


Date: Mon, 14 Mar 2005 09:53:18 -0800
To: <python-list@python.org>

Steven Bethard wrote:
> Ville Vainio wrote:
> > A simpler API:
> >
> > def flatten(sequence, atomic_test = lambda o:
> isinstance(o,basestring)):
> > """ don't recurse into iterables if atomic_test -> True """
>
> Yes, this is also the API I would have suggested. Simple,
> but flexible enough to handle the odd cases with the occasional
> user-defined iterable non-containers.

If there are two or three common atomic_test's they could also be placed
into itertools globals (with better names, of course ;):

def is_string(item):
    return isinstance(item, basestring)

def flatten(seq, atomic_test = is_string):
    ...

Perhaps atomic_test could allow a tuple or list of tests and combine
them...?

Robert Brewer
MIS
Amor Ministries
fumanchu@amor.org