from .mailSender import techSendMail # def get_order_changes_list_for_template(order): # # if order.json_data and 'data_log' in order.json_data: # # i = 0 # changes_log = [] # # if len(order.json_data['data_log']) > 0: # first_log_record = order.json_data['data_log'][0] # # while i ' + str(new_d1)) # for val, key in new_d1.items(): # added.update({key: (None, val)}) elif not new_d1 and old_d2: # modified = (old_d2) # removed = {} # for val, key in old_d2.items(): # removed.update({key: (None, val)}) removed.append(str(old_d2) + ' > None') else: d1_keys = set(new_d1.keys()) d2_keys = set(old_d2.keys()) intersect_keys = d1_keys.intersection(d2_keys) added = d1_keys - d2_keys removed = d2_keys - d1_keys modified = {} for o in intersect_keys: if new_d1[o] != old_d2[o]: if type(new_d1[o]) == dict: modified.update({ o: dict_compare(old_d2[o], new_d1[o]) }) elif type(new_d1[o]) in [list, tuple]: modified.update({ o: list_compare(old_d2[o], new_d1[o]) }) else: modified.update({ o: (old_d2[o], new_d1[o]) }) # modified = {o : (new_d1[o], old_d2[o]) for o in intersect_keys if new_d1[o] != old_d2[o]} same = set(o for o in intersect_keys if new_d1[o] == old_d2[o]) # if not added: # added = [] # if not removed: # removed = [] # if not modified: # modified = [] if added or removed or modified: return { 'added': added, 'removed': removed, 'modified': modified, # 'added' : list(added), # 'removed' : list(removed), # 'modified' : list(modified), # 'same' : same } except Exception as e: msg = 'dict_compare Error = {0}
{1}
{2}
{3}'.format( str(e), str(e.args), old_d2, new_d1 ) print(msg) techSendMail(msg) return {}