Source code for nicetoolbox.evaluation.metrics.metric_result

from dataclasses import dataclass, field

import pandas as pd
from matplotlib import pyplot as plt

from ..data.input_loader import LoadedArray


[docs]@dataclass class SummaryResult: """Tabular results written to CSV. Attributes: summaries: Named DataFrames; each key becomes a separate CSV file. """ summaries: dict[str, pd.DataFrame] = field(default_factory=dict)
[docs]@dataclass class FrameResult: """Per-frame result stored as NPZ files. Arrays at the same index across all keys belong to the same NPZ file. Attributes: arrays: Maps NPZ key name to a list of LoadedArrays (one per sequence/algorithm). """ arrays: dict[str, list[LoadedArray]] = field(default_factory=dict)
[docs]@dataclass class PlotResult: """Matplotlib figures to save as PNG. Attributes: figures: Named figures; each key becomes a separate PNG file. """ figures: dict[str, plt.Figure] = field(default_factory=dict)
[docs]@dataclass class MetricResult: """Complete output from a single metric run. Attributes: metric_name: Identifier used to name the output directory. summary: Optional tabular results written to CSV. frames: Optional per-frame arrays written to NPZ. plots: Optional figures written to PNG. """ metric_name: str summary: SummaryResult | None = None frames: FrameResult | None = None plots: PlotResult | None = None