{"library":"pybboxes","title":"PyBBoxes: Light Weight Toolkit for Bounding Boxes","description":"PyBBoxes is a lightweight Python toolkit designed for handling bounding box operations. It provides abstractions for various bounding box formats (e.g., Pascal VOC, YOLO, COCO, Albumentations, FiftyOne) and allows for seamless conversions, common mathematical operations, scaling, clamping, and IoU computations. The current version is 0.2.0, and the library maintains an active release cadence with regular updates.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install pybboxes"],"cli":null},"imports":["from pybboxes import BoundingBox","from pybboxes.functional import bbox_iou","from pybboxes import bbox_factory"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pybboxes import BoundingBox\nfrom pybboxes.functional import bbox_iou\n\n# Example coordinates: (x_min, y_min, x_max, y_max)\nvoc_bbox_values = (10, 20, 100, 120)\nimage_size = (640, 480) # (width, height)\n\n# Create a BoundingBox object from Pascal VOC format\n# 'strict=False' is the default since v0.1.5, allowing out-of-bounds boxes\nbbox1 = BoundingBox(voc_bbox_values, image_size=image_size, from_type=\"voc\")\n\nprint(f\"Original VOC (bbox1): {bbox1.values}\")\nprint(f\"Normalized (bbox1): {bbox1.to_yolo().values}\")\n\n# Convert to another format, e.g., YOLO\nyolo_bbox = bbox1.to_yolo()\nprint(f\"Converted YOLO (bbox1): {yolo_bbox.values}\")\nprint(f\"Type: {yolo_bbox.box_type}\")\n\n# Perform a functional operation, e.g., Intersection over Union (IoU)\n# Note: functional methods moved to pybboxes.functional in v0.1.0\nbbox2_values = (15, 25, 105, 115)\nbbox2 = BoundingBox(bbox2_values, image_size=image_size, from_type=\"voc\")\n\niou = bbox_iou(bbox1, bbox2)\nprint(f\"IoU between bbox1 and bbox2: {iou:.4f}\")\n\n# Example of scaling and clamping\nscaled_bbox = bbox1.scale(scale=1.2)\nprint(f\"Scaled bbox1 (1.2x): {scaled_bbox.values}\")\n\nclamped_bbox = scaled_bbox.clamp()\nprint(f\"Clamped scaled bbox1 (to {image_size}): {clamped_bbox.values}\")","lang":"python","description":"This quickstart demonstrates how to create a `BoundingBox` object from Pascal VOC coordinates, convert it to YOLO format, calculate Intersection over Union (IoU) with another box, and apply scaling and clamping operations. It highlights the use of both the `BoundingBox` class and functions from `pybboxes.functional`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":null,"pypi_latest":"0.2.0","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":10,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":4.3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.7,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pybboxes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":11.7,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}