def convert_satisfies(old_satisfies): """ Convert satisfies objects from v1 to v2 """ new_satisfies = [] for standard_key in old_satisfies: for control_key in old_satisfies[standard_key]: new_control_dict = { 'standard_key': standard_key, 'control_key': control_key } old_control_dict = old_satisfies[standard_key][control_key] add_if_exists( new_data=new_control_dict, old_data=old_control_dict, field='narrative' ) add_if_exists( new_data=new_control_dict, old_data=old_control_dict, field='implementation_status' ) print(old_control_dict) new_control_dict['covered_by'] = transform_references( old_control_dict.get('references', {}) ) new_satisfies.append(new_control_dict) return new_satisfies
def unflatten_satisfies(old_satisfies): """ Convert satisfies from v2 to v1 """ new_satisfies = {} for element in old_satisfies: new_element = {} # Handle exsiting data add_if_exists( new_data=new_element, old_data=element, field='narrative' ) add_if_exists( new_data=new_element, old_data=element, field='implementation_status' ) # Handle covered_by references = transform_covered_by(element.get('covered_by', {})) control_key = element['control_key'] standard_key = element['standard_key'] if references: new_element['references'] = references # Unflatten if standard_key not in new_satisfies: new_satisfies[standard_key] = {} if control_key not in new_satisfies[standard_key]: new_satisfies[standard_key][control_key] = new_element return new_satisfies
def convert_satisfies(old_satisfies): """ Convert satisfies objects from v1 to v2 """ new_satisfies = [] for standard_key in old_satisfies: for control_key in old_satisfies[standard_key]: new_control_dict = { 'standard_key': standard_key, 'control_key': control_key } old_control_dict = old_satisfies[standard_key][control_key] add_if_exists(new_data=new_control_dict, old_data=old_control_dict, field='narrative') add_if_exists(new_data=new_control_dict, old_data=old_control_dict, field='implementation_status') print(old_control_dict) new_control_dict['covered_by'] = transform_references( old_control_dict.get('references', {})) new_satisfies.append(new_control_dict) return new_satisfies
def unflatten_satisfies(old_satisfies): """ Convert satisfies from v2 to v1 """ new_satisfies = {} for element in old_satisfies: new_element = {} # Handle exsiting data add_if_exists(new_data=new_element, old_data=element, field='narrative') add_if_exists(new_data=new_element, old_data=element, field='implementation_status') # Handle covered_by references = transform_covered_by(element.get('covered_by', {})) control_key = element['control_key'] standard_key = element['standard_key'] if references: new_element['references'] = references # Unflatten if standard_key not in new_satisfies: new_satisfies[standard_key] = {} if control_key not in new_satisfies[standard_key]: new_satisfies[standard_key][control_key] = new_element return new_satisfies