from abc import ABC, abstractmethod

import numpy as np


class ExclusiveExplainer(ABC):
    def __str__(self):
        return type(self).__name__

    @abstractmethod
    def fit(self, dataset, classifier_predictions, classifier, dev_dataset=None):
        pass

    @abstractmethod
    def estimate_icace(self, pairs):
        pass