def _get_best_score(self, i_sample: int, eps: float, norm: float, target_label: int | None) -> float:
        """
        Get the list of best scores.

        :param i_sample: Index of training sample in `x`.
        :param eps: Attack budget epsilon.
        :param norm: The norm to apply epsilon.
        :param target_label: The target label.
        :return: The best scores.
        """
        nodes = self._get_accessible_leaves(i_sample, eps, norm, target_label)
        best_score: float = 0.0

        for i_level in range(self.max_level):
            if self._classifier.nb_classes > 2 and i_level > 0:
                target_label = None
            best_score, nodes = self._get_k_partite_clique(nodes, label=self.y[i_sample], target_label=target_label)

            # Stop if the root node has been reached
            if len(nodes) <= 1:
                break

        return best_score

        Get the list of best scores.

        :param i_sample: Index of training sample in `x`.
        :param eps: Attack budget epsilon.
        :param norm: The norm to apply epsilon.
        :param target_label: The target label.
        :return: The best scores.
        
art/metrics/verification_decisions_trees.py