@inherit_docstring_from(QueryStrategy)
    def make_query(self):
        dataset = self.dataset
        try:
            unlabeled_entry_ids, X_pool = zip(*dataset.get_unlabeled_entries())
        except __HOLE__:
            # might be no more unlabeled data left
            return

        while self.budget_used < self.T:
            self.calc_query()
            ask_idx = self.random_state_.choice(
                        np.arange(len(self.unlabeled_invert_id_idx)),
                        size=1,
                        p=self.query_dist
                    )[0]
            ask_id = self.unlabeled_entry_ids[ask_idx]

            if ask_id in unlabeled_entry_ids:
                self.budget_used += 1
                return ask_id
            else:
                self.update(ask_id, dataset.data[ask_id][1])

        raise ValueError("Out of query budget")
dataset/ETHPy150Open ntucllab/libact/libact/query_strategies/active_learning_by_learning.py/ActiveLearningByLearning.make_query