Source code for pysatl_cpd.analysis.visualization.abstracts.itrace_visualizer

# -*- coding: ascii -*-
"""
Trace visualizer interface.

This module defines the abstract source class for visualizers that render
detection traces, including detection function values and algorithm metadata.
"""

__author__ = "Danil Totmyanin"
__copyright__ = "Copyright (c) 2026 PySATL project"
__license__ = "SPDX-License-Identifier: MIT"


from abc import ABC, abstractmethod
from typing import Self

from pysatl_cpd.analysis.visualization.abstracts.ivisualizer import IVisualizer
from pysatl_cpd.core.detection_trace import DetectionTrace


[docs] class ITraceVisualizer[DetectionTraceT: DetectionTrace](IVisualizer, ABC): """ Abstract source class for trace visualizers. Visualizers of this type render detection results, including detection function values and algorithm metadata. Notes ----- The generic DetectionTraceT type is bound by DetectionTrace. This allows visualizers to work with specific trace implementations such as OnlineDetectionTrace or OfflineDetectionTrace and ensures that any concrete implementation works with valid detection traces. """
[docs] @abstractmethod def set_trace(self, trace: DetectionTraceT) -> Self: # pragma: no cover """ Set the detection trace to visualize. Parameters ---------- trace Detection results containing change-point indices, scores, and algorithm-specific metadata. Returns ------- Self Returns self to allow method chaining. Raises ------ NotImplementedError Subclasses must implement this method. """ raise NotImplementedError