# Locked rendering + compute stack for the figures CI check
# (the "Documentation figures up to date" job in python-app.yml).
#
# This pins the figure *structure*, not the last bit of every coordinate:
# matplotlib/fonttools/pillow fix SVG text layout and WebP encoding, while
# numpy/scipy/contourpy fix the computed data. Pinning only matplotlib is not
# enough -- a new numpy or fonttools release changes element ordering, labels
# or dimensions, which the structural comparison in scripts/check_figures.py
# treats as a real change. Cross-CPU ~1-ULP coordinate drift, by contrast, is
# absorbed by that script's numeric tolerance, so the stack does not have to
# byte-match the runner hardware.
#
# Bump these together with a fresh `make graphs` regeneration (generate the
# figures with exactly this stack, then commit both). Generated from the
# maintainer's venv that produced the committed figures.
matplotlib==3.11.1
fonttools==4.63.0
numpy==2.5.1
scipy==1.18.0
pillow==12.3.0
contourpy==1.3.3
kiwisolver==1.5.0
pyparsing==3.3.2
cycler==0.12.1
python-dateutil==2.9.0.post0
