def push (self, value): new_node = Node(value) curr_node = self.head.next while curr_node != self.tail: if getattr(curr_node.value, self.key_name) >= getattr(new_node.value, self.key_name): prev_node = curr_node.prev prev_node.next = new_node new_node.prev = prev_node new_node.next = curr_node curr_node.prev = new_node self.size += 1 return curr_node = curr_node.next Queue.add_to_tail(self, value)