Source code for roastcoffea.aggregation.backends.base
"""Abstract base class for tracking data parsers.
This module defines the interface that all aggregation backend parsers must follow.
"""
from __future__ import annotations
from abc import ABC, abstractmethod
from typing import Any
[docs]
class AbstractTrackingDataParser(ABC):
"""Abstract base class for parsing backend tracking data.
Parsers are responsible for converting raw tracking data from different
backends (Dask, TaskVine, etc.) into a standardized metrics format.
"""
[docs]
@abstractmethod
def parse_tracking_data(self, tracking_data: dict[str, Any]) -> dict[str, Any]:
"""Parse raw tracking data into aggregated metrics.
Parameters
----------
tracking_data : dict
Raw tracking data from backend (e.g., worker_counts, worker_memory)
Returns
-------
dict
Aggregated worker metrics (avg_workers, peak_workers, total_cores, etc.)
"""
...