# Pinned build-time versions, applied with `pip install -c` by setup.ps1. # # The point is not tidiness: PyInstaller's output depends on the *environment* as much as # on the spec (which Qt, which numpy, which hooks-contrib), so a build that "works" on one # machine and produces a non-starting EXE on another is usually a version difference that # nobody wrote down. `-c` constrains whatever else asks for these packages, so the app's # own loose requirements (PySide6>=6.6, scipy>=1.10.1, ...) resolve to exactly this set. # # PySide6 rather than PyQt5: the apps are LGPLv3-bound. PyQt5 must not be present in the # build environment at all — `pyqtgraph` binds to whichever toolkit it finds first, so a # leftover PyQt5 produces plots built from the wrong binding (setup.ps1 uninstalls it). # # `orisys` is deliberately absent: it is installed from a local checkout (or deliberately # from PyPI with -FromPypi), and pinning it by name would fight the editable install. # # To move a pin: change it here, run `setup.bat -Force`, and run the build's smoke test. # That test is the acceptance evidence, not this file. PyInstaller==6.22.2 pyinstaller-hooks-contrib==2026.7 PyOpenGL==3.1.10 PySide6==6.11.2 PySide6-Essentials==6.11.2 PySide6-Addons==6.11.2 shiboken6==6.11.2 numpy==2.2.6 scipy==1.15.3 numba==0.67.0 llvmlite==0.49.0 opencv-python-headless==4.14.0.94 pyqtgraph==0.14.0 cryptography==49.0.0