configurationengine/source/cone/public/utils.py
changeset 9 63964d875993
parent 5 d2c80f5cab53
--- 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)