# The one dependency group, shared by every feature.
#
# The *package* still declares no runtime dependencies: `pip install
# get-fsa-training-done` pulls nothing. These land in the managed venv instead,
# which `install` pre-warms — so the tools stay self-sufficient on an offline
# machine after the first install, which is the property that matters for an
# exam room.
#
# xhtml2pdf and py7zr exist to remove an external binary: xhtml2pdf replaced
# headless Chrome for `assessment render`, and py7zr replaced the shell
# extractors for `.7z` in `assessment grade preprocess`. xhtml2pdf also brings
# reportlab, which `material export pdf` draws slides with.
#
# python-pptx writes a deck into the FSA template for `material export pptx`;
# it is pure Python, and its own dependencies (lxml, Pillow) ship wheels.
#
# pypdfium2 draws a material's SVG illustrations to PNG for both exports:
# svglib (which xhtml2pdf already brings) reads the SVG, reportlab writes it as
# a PDF page, pdfium renders the page. Its wheels carry pdfium, so no browser
# or system library is needed — reportlab's own raster backend needs Cairo.
xhtml2pdf>=0.2.16,<0.3
py7zr>=0.20,<2
python-pptx>=1.0,<2
pypdfium2>=4.30,<6
