Fixes bug 1456 by returning default empty list in case no vdu-profile is present
[osm/NBI.git] / osm_nbi / utils.py
index bb9e33e..73fc40f 100644 (file)
@@ -31,9 +31,36 @@ def find_in_list(the_list, condition_lambda):
         return None
 
 
         return None
 
 
+def filter_in_list(the_list, condition_lambda):
+    ret = []
+    for item in the_list:
+        if condition_lambda(item):
+            ret.append(item)
+    return ret
+
+
 def find_index_in_list(the_list, condition_lambda):
     for index, item in enumerate(the_list):
         if condition_lambda(item):
             return index
     else:
         return -1
 def find_index_in_list(the_list, condition_lambda):
     for index, item in enumerate(the_list):
         if condition_lambda(item):
             return index
     else:
         return -1
+
+
+def deep_update_dict(data, updated_data):
+    if isinstance(data, list):
+        processed_items_data = []
+        for index, item in enumerate(data):
+            processed_items_data.append(deep_update_dict(item, updated_data[index]))
+        return processed_items_data
+
+    if isinstance(data, dict):
+        for key in data.keys():
+            if key in updated_data:
+                if not isinstance(data[key], dict) and not isinstance(data[key], list):
+                    data[key] = updated_data[key]
+                else:
+                    data[key] = deep_update_dict(data[key], updated_data[key])
+        return data
+
+    return data