record_payload.py 425 B

123456789101112131415
  1. from __future__ import annotations
  2. from collections.abc import Iterable
  3. from copy import deepcopy
  4. from typing import Any
  5. def with_raw_payload(
  6. record: dict[str, Any],
  7. *,
  8. exclude_keys: Iterable[str] = (),
  9. ) -> dict[str, Any]:
  10. excluded = {"raw_payload", *exclude_keys}
  11. payload = {key: deepcopy(value) for key, value in record.items() if key not in excluded}
  12. return {**record, "raw_payload": payload}