Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def mergeSlots(self):
- for slotid in self.match:
- data = self.match[slotid]
- if data['emp_id'] not in self.mergedict:
- self.mergedict[data['emp_id']] = {}
- if data['skill'] not in self.mergedict[data['emp_id']]:
- self.mergedict[data['emp_id']][data['skill']] = {}
- if data['date'] not in self.mergedict[data['emp_id']][data['skill']]:
- self.mergedict[data['emp_id']][data['skill']][data['date']] = [[],[]]
- lst = self.mergedict[data['emp_id']][data['skill']][data['date']]
- lst[0].append(data['start_time'])
- lst[1].append(data['end_time'])
- iter = 0
- return_dict = {}
- for emp_id in self.mergedict:
- for skill in self.mergedict[emp_id]:
- for date in self.mergedict[emp_id][skill]:
- merged_lst_lwr=[]
- merged_lst_upr=[]
- lst = self.mergedict[emp_id][skill][date]
- indices = np.argsort(lst[0])
- lst[0].sort()
- lst[1] = [lst[1][i] for i in indices]
- itr = 0
- for idx in range(len(lst[0])):
- # if conditions
- if idx > 0 and lst[0][idx] == lst[1][idx-1]:
- merged_lst_upr[itr - 1] = lst[1][idx]
- else:
- itr += 1
- merged_lst_lwr.append(lst[0][idx])
- merged_lst_upr.append(lst[1][idx])
- for i in range(len(merged_lst_lwr)):
- iter += 1
- assign_dict={}
- assign_dict['datetimeslot'] = iter
- assign_dict['skill'] = skill
- assign_dict['name'] = self.names[emp_id]
- assign_dict['emp_id'] = emp_id
- assign_dict['edge_weight'] = 0
- assign_dict['date'] = date
- assign_dict['start_time'] = merged_lst_lwr[i]
- assign_dict['end_time'] = merged_lst_upr[i]
- return_dict[iter] = assign_dict
- return return_dict
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement