--- 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)