# font-factory dependencies — pinned to the versions this pipeline is tested against.
#
# Install:
#   python -m venv .venv
#   Windows:  .venv\Scripts\pip install -r requirements.txt
#   macOS:    .venv/bin/pip install -r requirements.txt
#
# Tested on Python 3.13.2 (Windows 11) and Python 3.11+ generally.
#
# If a pin fails to build on your platform, relax that one line to `>=` and
# re-run `python scripts/qa.py` — the QA suite is what tells you the pipeline
# still works, not the install log.

# Reads, transforms and writes font binaries. The whole pipeline sits on this.
fonttools==4.63.0

# WOFF2 compression. NOTHING IMPORTS THIS DIRECTLY — fontTools reaches for it
# when you save a .woff2. Without it, WOFF2 output fails at save time with an
# unhelpful error. Do not remove it because your editor says it's unused.
brotli==1.2.0

# HarfBuzz bindings — the shaping engine used by the QA suite. This is what
# actually proves Thai marks attach; visual inspection cannot prove it.
uharfbuzz==0.56.0

# Skia path boolean ops — unions the stroke capsules in the parametric
# original-design engine (original/design.py). Only needed for original/.
skia-pathops==0.9.2

# Rasterisation for the proof sheets (original/proof.py, refsheet.py, qa_arun.py).
# Only needed if you generate visual proofs.
freetype-py==2.5.1
pillow==12.3.0
