def post_parse(self): # Add students to appropriate group # parts (determined by surname's order) for group_name, membership in self.students.items(): membership.sort(key=lambda o: o.student.last_name) group_count = len(membership) last_first = ceil(group_count/2.0) group = Group(group_name, self.year) self.groups.append(group) for order, student in enumerate(membership): student.group = group if order < last_first: student.part = 1 else: student.part = 2