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))