from __future__ import annotations import hashlib import os from pathlib import Path import joblib ROOT = Path(__file__).resolve().parent ARTIFACT = ROOT / "sklearn_nopad_swallow_tail_payload.joblib" MARKER = ROOT / "joblib_inline_array_tail_marker.txt" EXPECTED_SHA256 = "141d2d0b175dc53671dae11994500e0cb82633ba305381b56c6af22cbbbdd5c4" def sha256(path: Path) -> str: return hashlib.sha256(path.read_bytes()).hexdigest() def main() -> None: os.chdir(ROOT) MARKER.unlink(missing_ok=True) digest = sha256(ARTIFACT) print(f"artifact={ARTIFACT.name}") print(f"sha256={digest}") if digest != EXPECTED_SHA256: raise SystemExit("artifact hash mismatch") obj = joblib.load(ARTIFACT) print(f"loaded_type={type(obj).__name__}") print(f"marker_created={MARKER.exists()}") if type(obj).__name__ != "FunctionTransformer": raise SystemExit("unexpected loaded object type") if not MARKER.exists(): raise SystemExit("marker was not created") marker_text = MARKER.read_text().strip() print(marker_text) if marker_text != "joblib inline-array tail payload executed": raise SystemExit("marker text mismatch") if __name__ == "__main__": main()