Skip to content

Commit 9f20d6a

Browse files
ci(3.14t): gate opencv-python into optional 'cv' group + skip cv2 files
opencv-python has no cp314t wheel yet and fails to build from source under free-threaded 3.14t (CMake), blocking uv sync for every job. Move it to an optional [dependency-groups] cv group so the ft CI installs everything else and runs pytest-run-parallel on the pure-Python algorithms. Skip the 20 files that import cv2 (computer_vision augmentations, data_compression PSNR, and the mostly-cv2 digital_image_processing/ tree). Re-fold once a cp314t wheel ships (upstream: opencv/opencv#27933).
1 parent 19702af commit 9f20d6a

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

.github/workflows/build.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,18 @@ jobs:
2222
- run: uv sync --group=test
2323
- name: Run tests
2424
# TODO: #8818 Re-enable quantum tests
25+
# opencv-python is gated out on 3.14t (no cp314t wheel yet), so skip the
26+
# files that import cv2. Pure-Python algorithms in computer_vision/ and
27+
# data_compression/ still run; digital_image_processing/ is almost entirely
28+
# cv2-based so it is skipped as a tree. Re-enable when a cp314t wheel ships.
2529
run: uv run --with=pytest-run-parallel pytest
2630
--iterations=8 --parallel-threads=auto
2731
--ignore=computer_vision/cnn_classification.py
32+
--ignore=computer_vision/flip_augmentation.py
33+
--ignore=computer_vision/harris_corner.py
34+
--ignore=computer_vision/mosaic_augmentation.py
35+
--ignore=data_compression/peak_signal_to_noise_ratio.py
36+
--ignore=digital_image_processing/
2837
--ignore=docs/conf.py
2938
--ignore=dynamic_programming/k_means_clustering_tensorflow.py
3039
--ignore=machine_learning/local_weighted_learning/local_weighted_learning.py

pyproject.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ dependencies = [
1818
"lxml>=6",
1919
"matplotlib>=3.9.3",
2020
"numpy>=2.1.3",
21-
"opencv-python>=4.10.0.84",
2221
"pandas>=2.3.3",
2322
"pillow>=11.3",
2423
"rich>=13.9.4",
@@ -33,6 +32,14 @@ dependencies = [
3332
]
3433

3534
[dependency-groups]
35+
# opencv-python has no free-threaded (cp314t) wheel yet and fails to build from
36+
# source under 3.14t (CMake), which blocks `uv sync` for every job. Keep it in an
37+
# optional group so the free-threaded CI can install everything else and actually
38+
# run pytest-run-parallel on the pure-Python algorithms. Re-fold into core deps
39+
# once a cp314t wheel ships (upstream: opencv/opencv#27933).
40+
cv = [
41+
"opencv-python>=4.10.0.84",
42+
]
3643
test = [
3744
"pytest>=8.4.1",
3845
"pytest-cov>=6",

0 commit comments

Comments
 (0)