X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Futils.py;h=73fc40f7c687f65750b9c03143f42a8040b2e400;hp=bb9e33e7fec4615ee04b9e4ac3d30f16bed20ae2;hb=2c4f9ec63fb977be6df40053be3ea50e409cf97f;hpb=7cbd03c5c21202fff473ae943e75dd49a18f2516 diff --git a/osm_nbi/utils.py b/osm_nbi/utils.py index bb9e33e..73fc40f 100644 --- a/osm_nbi/utils.py +++ b/osm_nbi/utils.py @@ -31,9 +31,36 @@ def find_in_list(the_list, condition_lambda): 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 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