Source code for semi_cr.core.lab.utils.qharbor_tools.receipts

"""Stable receipts returned by qharbor tools operations."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Any

if TYPE_CHECKING:
    from collections.abc import Mapping

from .models import RunReference, frozen_mapping


[docs] @dataclass(frozen=True, slots=True) class Publication: """One artifact successfully published to a remote dataset.""" dataset_uuid: str filename: str metadata: Mapping[str, Any] = field(default_factory=dict) def __post_init__(self) -> None: object.__setattr__(self, "metadata", frozen_mapping(self.metadata))
[docs] @dataclass(frozen=True, slots=True) class PublicationReceipt: """Result of a direct remote publication.""" dataset_uuid: str publications: tuple[Publication, ...]
[docs] @dataclass(frozen=True, slots=True) class MeasurementReceipt: """Result of local persistence followed by remote publication.""" dataset_uuid: str run_reference: RunReference publications: tuple[Publication, ...] metadata: Mapping[str, Any] = field(default_factory=dict) def __post_init__(self) -> None: object.__setattr__(self, "metadata", frozen_mapping(self.metadata))