Skip to content

Index

ipw.visualization

Visualization implementations bundled with Intelligence Per Watt.

Visualizations register themselves with ipw.core.VisualizationRegistry.

VisualizationContext dataclass

Common inputs made available to visualization plugins.

Source code in intelligence-per-watt/src/ipw/visualization/base.py
@dataclass(slots=True, frozen=True)
class VisualizationContext:
    """Common inputs made available to visualization plugins."""

    results_dir: Path
    output_dir: Path
    options: Mapping[str, Any] = field(default_factory=dict)

    def __post_init__(self) -> None:
        object.__setattr__(self, "options", _freeze_mapping(self.options))

VisualizationProvider

Bases: ABC

Base class for extendible visualization plugins.

Source code in intelligence-per-watt/src/ipw/visualization/base.py
class VisualizationProvider(ABC):
    """Base class for extendible visualization plugins."""

    #: Registry key for this visualization. Subclasses should override this constant.
    visualization_id: str

    @abstractmethod
    def render(self, context: VisualizationContext) -> VisualizationResult:
        """Execute the visualization and return paths to generated artifacts."""

render(context) abstractmethod

Execute the visualization and return paths to generated artifacts.

Source code in intelligence-per-watt/src/ipw/visualization/base.py
@abstractmethod
def render(self, context: VisualizationContext) -> VisualizationResult:
    """Execute the visualization and return paths to generated artifacts."""

VisualizationResult dataclass

Standardized payload returned by visualization plugins.

Source code in intelligence-per-watt/src/ipw/visualization/base.py
@dataclass(slots=True, frozen=True)
class VisualizationResult:
    """Standardized payload returned by visualization plugins."""

    visualization: str
    artifacts: Mapping[str, Path]
    metadata: Mapping[str, Any] = field(default_factory=dict)
    warnings: tuple[str, ...] = field(default_factory=tuple)

    def __post_init__(self) -> None:
        object.__setattr__(self, "artifacts", _freeze_mapping(self.artifacts))
        object.__setattr__(self, "metadata", _freeze_mapping(self.metadata))

ensure_registered()

Import built-in visualization providers to populate the registry.

Source code in intelligence-per-watt/src/ipw/visualization/__init__.py
def ensure_registered() -> None:
    """Import built-in visualization providers to populate the registry."""
    from . import output_kde  # noqa: F401  (registers on import)
    from . import regression  # noqa: F401  (registers on import)