configurationengine/source/cone/public/utils.py
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
--- a/configurationengine/source/cone/public/utils.py	Wed Sep 08 12:20:56 2010 +0300
+++ b/configurationengine/source/cone/public/utils.py	Thu Oct 21 16:36:53 2010 +0300
@@ -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)