# e2e-runner image dependencies. # # Pin reasoning: # - `opencv-python>=4.12.0` honors D-CROSS-CVE-1 (the runner image does NOT # depend on gtsam — the numpy<2 ABI block that forces the SUT pin does not # apply here; see _docs/_process_leftovers/2026-05-11_d_cross_cve_1_opencv_pin_deferred.md). # - Versions match the SUT pyproject where feasible (numpy 1.x line, pyproj 3.6+, pydantic 2.x). # - pytest 8.x is the stable line; pytest-csv 3.x supplies the columns the CSV reporter plugin extends. pytest>=8.0,<9.0 pytest-timeout>=2.2,<3.0 pytest-xdist>=3.5,<4.0 pytest-forked>=1.6,<2.0 pytest-csv>=3.0,<4.0 # MAVLink ground side — used for both AP signing-handshake assertions and the # passive listener that consumes mavproxy-listener's forwarded UDP stream. pymavlink>=2.4 # Geodesic + frame replay + numerical assertion stack. opencv-python>=4.12.0 numpy>=1.26,<2.0 scipy>=1.11,<2.0 geopy>=2.4,<3.0 pyproj>=3.6,<4.0 # HTTP client for talking to mock-suite-sat-service. httpx>=0.28,<1.0 pyyaml>=6.0 pydantic>=2.5,<3.0 # Structured logging in the runner side (mirrors the SUT logger choice). structlog>=24.1 # FDR archive reader uses orjson for the line-delimited JSON record format. orjson>=3.9,<4.0