Source code for loom.etl.observability.sinks._writer

"""Generic execution-record writer backed by a target writer."""

from __future__ import annotations

from loom.etl.declarative.expr._refs import TableRef
from loom.etl.observability.records import ExecutionRecord
from loom.etl.observability.sinks._protocol import RecordFrameTargetWriter


[docs] class TargetExecutionRecordWriter: """Persist execution records using target writer ``to_frame`` + ``append``. Args: writer: Backend target writer exposing ``to_frame`` and ``append``. """ def __init__(self, writer: RecordFrameTargetWriter) -> None: self._writer = writer
[docs] def write_record(self, record: ExecutionRecord, table_ref: TableRef, /) -> None: """Append one execution record row into *table_ref*.""" frame = self._writer.to_frame([record]) self._writer.append(frame, table_ref, None)
__all__ = ["TargetExecutionRecordWriter"]