from __future__ import annotations import json from pathlib import Path from urllib import request def build_json_request(url: str, payload: dict, timeout_seconds: float = 5.0) -> request.Request: data = json.dumps(payload).encode("utf-8") req = request.Request(url=url, data=data, method="POST") req.add_header("Content-Type", "application/json") req.timeout_seconds = timeout_seconds return req def append_json_event(path: str | Path, payload: dict) -> None: output_path = Path(path) output_path.parent.mkdir(parents=True, exist_ok=True) with output_path.open("a", encoding="utf-8") as handle: handle.write(json.dumps(payload, ensure_ascii=False) + "\n")