Advertisement
Guest User

for_rohan

a guest
Feb 20th, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. def mergeSlots(self):
  2. for slotid in self.match:
  3. data = self.match[slotid]
  4. if data['emp_id'] not in self.mergedict:
  5. self.mergedict[data['emp_id']] = {}
  6. if data['skill'] not in self.mergedict[data['emp_id']]:
  7. self.mergedict[data['emp_id']][data['skill']] = {}
  8. if data['date'] not in self.mergedict[data['emp_id']][data['skill']]:
  9. self.mergedict[data['emp_id']][data['skill']][data['date']] = [[],[]]
  10. lst = self.mergedict[data['emp_id']][data['skill']][data['date']]
  11. lst[0].append(data['start_time'])
  12. lst[1].append(data['end_time'])
  13.  
  14. iter = 0
  15. return_dict = {}
  16. for emp_id in self.mergedict:
  17. for skill in self.mergedict[emp_id]:
  18. for date in self.mergedict[emp_id][skill]:
  19. merged_lst_lwr=[]
  20. merged_lst_upr=[]
  21. lst = self.mergedict[emp_id][skill][date]
  22. indices = np.argsort(lst[0])
  23. lst[0].sort()
  24. lst[1] = [lst[1][i] for i in indices]
  25. itr = 0
  26. for idx in range(len(lst[0])):
  27. # if conditions
  28. if idx > 0 and lst[0][idx] == lst[1][idx-1]:
  29. merged_lst_upr[itr - 1] = lst[1][idx]
  30. else:
  31. itr += 1
  32. merged_lst_lwr.append(lst[0][idx])
  33. merged_lst_upr.append(lst[1][idx])
  34.  
  35. for i in range(len(merged_lst_lwr)):
  36. iter += 1
  37. assign_dict={}
  38. assign_dict['datetimeslot'] = iter
  39. assign_dict['skill'] = skill
  40. assign_dict['name'] = self.names[emp_id]
  41. assign_dict['emp_id'] = emp_id
  42. assign_dict['edge_weight'] = 0
  43. assign_dict['date'] = date
  44. assign_dict['start_time'] = merged_lst_lwr[i]
  45. assign_dict['end_time'] = merged_lst_upr[i]
  46. return_dict[iter] = assign_dict
  47.  
  48. return return_dict
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement