"""Writes the ICC profile the library embeds in a PDF/A file.

The Python twin of the `write_icc` example in Rust: the same bytes, through the
binding rather than through the library directly.

The profile is built from the colorimetry sRGB is defined by rather than
shipped as a file, so what a document embeds can be looked at on its own —
whether it is a well-formed ICC profile, and whether it is really sRGB, is what
`scripts/check_icc_profile.py` uses this for.

Usage: python examples/write_icc.py [out.icc]
"""

from __future__ import annotations

import sys
from pathlib import Path

import hqf_pdf

ROOT = Path(__file__).resolve().parents[3]


def main() -> None:
    out = Path(sys.argv[1]) if len(sys.argv) > 1 else ROOT / "tmp" / "srgb.icc"

    profile = hqf_pdf.srgb_icc_profile()

    out.parent.mkdir(parents=True, exist_ok=True)
    out.write_bytes(profile)

    print(f"wrote {out}: {len(profile)} bytes")


if __name__ == "__main__":
    main()
