Files
Dorod-Sky/skyvern/cli/core/artifacts.py

30 lines
833 B
Python

from __future__ import annotations
from datetime import datetime, timezone
from pathlib import Path
from .result import Artifact
def get_artifact_dir(session_id: str | None = None, run_id: str | None = None) -> Path:
base = Path.home() / ".skyvern" / "artifacts" / datetime.now(timezone.utc).strftime("%Y-%m-%d")
if session_id:
return base / session_id
if run_id:
return base / run_id
return base / "anonymous"
def save_artifact(
content: bytes,
kind: str,
filename: str,
mime: str,
session_id: str | None = None,
) -> Artifact:
dir_path = get_artifact_dir(session_id)
dir_path.mkdir(parents=True, exist_ok=True)
file_path = dir_path / filename
file_path.write_bytes(content)
return Artifact(kind=kind, path=str(file_path), mime=mime, bytes=len(content))