diff -r a2e65c705db8 -r 63964d875993 configurationengine/source/cone/public/utils.py --- a/configurationengine/source/cone/public/utils.py Tue Oct 26 10:43:50 2010 +0100 +++ b/configurationengine/source/cone/public/utils.py Sat Nov 06 16:59:14 2010 +0200 @@ -569,6 +569,25 @@ retlist.insert(0, prepend) return retlist +def iter_flatten(iterable): + for item in iterable: + if isinstance(item, (list, tuple)): + for subitem in flatten_list(item): + yield subitem + else: + yield item + +def flatten_list(lst): + """ + Flatten a list or tuple. + @param lst: The list of tuple to flatten. + @return: The flattened list. + + >>> flatten_list([1, 2, [3, [4, 5]], [6]]) + [1, 2, 3, 4, 5, 6] + """ + return [item for item in iter_flatten(lst)] + def is_list(elem): return isinstance(elem, list)