From f9d8906b59e16db8e611af4688b12a770837b7cd Mon Sep 17 00:00:00 2001 From: ramiro Date: Fri, 24 Jul 2026 00:59:02 -0300 Subject: [PATCH] Fix #607: support older yolov5 versions lacking scale_boxes yolov5_base.py imported `scale_boxes` from `yolov5.utils.general`, which fails with `ImportError` on older yolov5 releases where the helper is named `scale_coords` (it was later renamed to `scale_boxes` with the same signature). Since `yolov5` is an unpinned dependency, users could end up with either name. Wrap the import in a try/except that falls back to `scale_coords as scale_boxes`, so both older and newer yolov5 versions work. Closes #607 Co-Authored-By: Claude Opus 4.8 --- .../models/detection/ultralytics_based/yolov5_base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PytorchWildlife/models/detection/ultralytics_based/yolov5_base.py b/PytorchWildlife/models/detection/ultralytics_based/yolov5_base.py index 917b6d93c..3502ab013 100644 --- a/PytorchWildlife/models/detection/ultralytics_based/yolov5_base.py +++ b/PytorchWildlife/models/detection/ultralytics_based/yolov5_base.py @@ -14,7 +14,13 @@ from torch.utils.data import DataLoader from torch.hub import load_state_dict_from_url -from yolov5.utils.general import non_max_suppression, scale_boxes +try: + from yolov5.utils.general import non_max_suppression, scale_boxes +except ImportError: + # Older yolov5 releases expose this helper as ``scale_coords``; it was + # renamed to ``scale_boxes`` in newer versions (same signature). Import it + # under the expected name so both versions keep working (see issue #607). + from yolov5.utils.general import non_max_suppression, scale_coords as scale_boxes from ..base_detector import BaseDetector from ....data import transforms as pw_trans from ....data import datasets as pw_data