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 [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list