Source code for ralph.mcp.artifacts._artifact_persistence
"""ArtifactPersistence — backend and clock dependencies for artifact operations."""
from __future__ import annotations
from dataclasses import dataclass
from datetime import UTC, datetime
from typing import TYPE_CHECKING
from ralph.mcp.artifacts.file_backend import DEFAULT_FILE_BACKEND, FileBackend
if TYPE_CHECKING:
from collections.abc import Callable
def _utc_now_iso() -> str:
return datetime.now(tz=UTC).isoformat()
[docs]
@dataclass(frozen=True)
class ArtifactPersistence:
"""Backend and clock dependencies for artifact persistence operations."""
backend: FileBackend = DEFAULT_FILE_BACKEND
now_iso: Callable[[], str] = _utc_now_iso
DEFAULT_ARTIFACT_PERSISTENCE = ArtifactPersistence()
__all__ = ["DEFAULT_ARTIFACT_PERSISTENCE", "ArtifactPersistence", "_utc_now_iso"]