Skip to content

explainer

Base class for all xwhy explainers.

BaseExplainer

Bases: ABC

Abstract base class for all xwhy explainers.

Source code in src/xwhy/core/explainer.py
10
11
12
13
14
15
16
17
18
19
20
21
class BaseExplainer(ABC):
    """Abstract base class for all xwhy explainers."""

    def __init__(self, model: Any, config: ExplainerConfig | None = None) -> None:  # noqa: ANN401
        """Initialize the explainer."""
        self.model = model
        self.config = config or ExplainerConfig()

    @abstractmethod
    def explain(self, instance: Any, **kwargs: Any) -> BaseXWhyResult:  # noqa: ANN401
        """Generate explanation for the given instance."""
        raise NotImplementedError("Subclasses must implement explain method.")

__init__(model, config=None)

Initialize the explainer.

Source code in src/xwhy/core/explainer.py
13
14
15
16
def __init__(self, model: Any, config: ExplainerConfig | None = None) -> None:  # noqa: ANN401
    """Initialize the explainer."""
    self.model = model
    self.config = config or ExplainerConfig()

explain(instance, **kwargs) abstractmethod

Generate explanation for the given instance.

Source code in src/xwhy/core/explainer.py
18
19
20
21
@abstractmethod
def explain(self, instance: Any, **kwargs: Any) -> BaseXWhyResult:  # noqa: ANN401
    """Generate explanation for the given instance."""
    raise NotImplementedError("Subclasses must implement explain method.")