from abc import ABC, abstractmethod

import numpy as np


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

    @abstractmethod
    def fit(self, pairs, singles, classifier, dev_dataset=None):
        # TODO: I want predictions both in a pair and singles format. DONE
        pass

    @abstractmethod
    def estimate_icace(self, pairs):
        pass