Files
ewoooc/services/pchome_mapping_backlog/artifacts.py
ogt 0c70856325
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
refactor(pchome): extract controlled apply executor
2026-07-11 11:45:00 +08:00

27 lines
764 B
Python

"""Shared artifact serialization and path guards for PChome mapping."""
from __future__ import annotations
import json
from pathlib import Path
from typing import Any
def _canonical_retry_exception_artifact_bytes(payload: dict[str, Any]) -> bytes:
return (
json.dumps(payload, ensure_ascii=False, sort_keys=True, indent=2, default=str) + "\n"
).encode("utf-8")
def _resolve_retry_exception_artifact_path(root: Path, relative_path: str) -> Path:
relative = Path(relative_path)
if relative.is_absolute() or ".." in relative.parts:
raise ValueError(f"unsafe artifact path: {relative_path}")
return root / relative
__all__ = (
"_canonical_retry_exception_artifact_bytes",
"_resolve_retry_exception_artifact_path",
)