dgenerate-ultralytics-headless 8.4.10__tar.gz → 8.4.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/PKG-INFO +1 -1
  2. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
  3. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +1 -0
  4. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_exports.py +4 -1
  5. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/__init__.py +1 -1
  6. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/platform.py +50 -38
  7. dgenerate_ultralytics_headless-8.4.11/ultralytics/utils/uploads.py +115 -0
  8. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/LICENSE +0 -0
  9. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/README.md +0 -0
  10. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  11. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  12. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
  13. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  14. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/pyproject.toml +0 -0
  15. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/setup.cfg +0 -0
  16. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/__init__.py +0 -0
  17. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/conftest.py +0 -0
  18. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_cli.py +0 -0
  19. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_cuda.py +0 -0
  20. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_engine.py +0 -0
  21. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_integrations.py +0 -0
  22. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_python.py +0 -0
  23. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/tests/test_solutions.py +0 -0
  24. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/assets/bus.jpg +0 -0
  25. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/assets/zidane.jpg +0 -0
  26. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/__init__.py +0 -0
  27. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  28. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  29. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  30. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  31. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  32. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  33. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  34. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  35. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/TT100K.yaml +0 -0
  36. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco12-formats.yaml +0 -0
  44. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  45. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  46. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/signature.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/datasets/xView.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/default.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-cls.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-obb.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-p2.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-p6.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-pose.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26-seg.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yolo26.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yoloe-26-seg.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/26/yoloe-26.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  124. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  125. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  126. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  127. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  128. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  129. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  130. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  131. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  132. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/__init__.py +0 -0
  133. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/annotator.py +0 -0
  134. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/augment.py +0 -0
  135. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/base.py +0 -0
  136. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/build.py +0 -0
  137. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/converter.py +0 -0
  138. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/dataset.py +0 -0
  139. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/loaders.py +0 -0
  140. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/scripts/download_weights.sh +0 -0
  141. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/scripts/get_coco.sh +0 -0
  142. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/scripts/get_coco128.sh +0 -0
  143. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  144. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/split.py +0 -0
  145. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/split_dota.py +0 -0
  146. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/data/utils.py +0 -0
  147. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/__init__.py +0 -0
  148. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/exporter.py +0 -0
  149. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/model.py +0 -0
  150. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/predictor.py +0 -0
  151. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/results.py +0 -0
  152. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/trainer.py +0 -0
  153. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/tuner.py +0 -0
  154. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/engine/validator.py +0 -0
  155. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/hub/__init__.py +0 -0
  156. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/hub/auth.py +0 -0
  157. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/hub/google/__init__.py +0 -0
  158. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/hub/session.py +0 -0
  159. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/hub/utils.py +0 -0
  160. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/__init__.py +0 -0
  161. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/fastsam/__init__.py +0 -0
  162. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/fastsam/model.py +0 -0
  163. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/fastsam/predict.py +0 -0
  164. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/fastsam/utils.py +0 -0
  165. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/fastsam/val.py +0 -0
  166. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/nas/__init__.py +0 -0
  167. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/nas/model.py +0 -0
  168. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/nas/predict.py +0 -0
  169. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/nas/val.py +0 -0
  170. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/rtdetr/__init__.py +0 -0
  171. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/rtdetr/model.py +0 -0
  172. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/rtdetr/predict.py +0 -0
  173. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/rtdetr/train.py +0 -0
  174. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/rtdetr/val.py +0 -0
  175. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/__init__.py +0 -0
  176. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/amg.py +0 -0
  177. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/build.py +0 -0
  178. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/build_sam3.py +0 -0
  179. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/model.py +0 -0
  180. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/__init__.py +0 -0
  181. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/blocks.py +0 -0
  182. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/decoders.py +0 -0
  183. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/encoders.py +0 -0
  184. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  185. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/sam.py +0 -0
  186. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  187. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/transformer.py +0 -0
  188. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/modules/utils.py +0 -0
  189. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/predict.py +0 -0
  190. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/__init__.py +0 -0
  191. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/decoder.py +0 -0
  192. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/encoder.py +0 -0
  193. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  194. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  195. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  196. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/necks.py +0 -0
  197. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  198. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  199. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  200. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  201. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/utils/__init__.py +0 -0
  202. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/utils/loss.py +0 -0
  203. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/utils/ops.py +0 -0
  204. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/__init__.py +0 -0
  205. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/classify/__init__.py +0 -0
  206. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/classify/predict.py +0 -0
  207. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/classify/train.py +0 -0
  208. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/classify/val.py +0 -0
  209. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/detect/__init__.py +0 -0
  210. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/detect/predict.py +0 -0
  211. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/detect/train.py +0 -0
  212. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/detect/val.py +0 -0
  213. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/model.py +0 -0
  214. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/obb/__init__.py +0 -0
  215. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/obb/predict.py +0 -0
  216. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/obb/train.py +0 -0
  217. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/obb/val.py +0 -0
  218. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/pose/__init__.py +0 -0
  219. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/pose/predict.py +0 -0
  220. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/pose/train.py +0 -0
  221. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/pose/val.py +0 -0
  222. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/segment/__init__.py +0 -0
  223. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/segment/predict.py +0 -0
  224. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/segment/train.py +0 -0
  225. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/segment/val.py +0 -0
  226. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/world/__init__.py +0 -0
  227. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/world/train.py +0 -0
  228. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/world/train_world.py +0 -0
  229. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  230. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  231. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/yoloe/train.py +0 -0
  232. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  233. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/models/yolo/yoloe/val.py +0 -0
  234. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/__init__.py +0 -0
  235. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/autobackend.py +0 -0
  236. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/__init__.py +0 -0
  237. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/activation.py +0 -0
  238. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/block.py +0 -0
  239. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/conv.py +0 -0
  240. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/head.py +0 -0
  241. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/transformer.py +0 -0
  242. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/modules/utils.py +0 -0
  243. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/tasks.py +0 -0
  244. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/nn/text_model.py +0 -0
  245. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/optim/__init__.py +0 -0
  246. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/optim/muon.py +0 -0
  247. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/py.typed +0 -0
  248. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/__init__.py +0 -0
  249. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/ai_gym.py +0 -0
  250. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/analytics.py +0 -0
  251. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/config.py +0 -0
  252. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/distance_calculation.py +0 -0
  253. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/heatmap.py +0 -0
  254. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/instance_segmentation.py +0 -0
  255. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/object_blurrer.py +0 -0
  256. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/object_counter.py +0 -0
  257. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/object_cropper.py +0 -0
  258. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/parking_management.py +0 -0
  259. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/queue_management.py +0 -0
  260. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/region_counter.py +0 -0
  261. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/security_alarm.py +0 -0
  262. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/similarity_search.py +0 -0
  263. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/solutions.py +0 -0
  264. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/speed_estimation.py +0 -0
  265. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/streamlit_inference.py +0 -0
  266. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/templates/similarity-search.html +0 -0
  267. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/trackzone.py +0 -0
  268. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/solutions/vision_eye.py +0 -0
  269. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/__init__.py +0 -0
  270. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/basetrack.py +0 -0
  271. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/bot_sort.py +0 -0
  272. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/byte_tracker.py +0 -0
  273. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/track.py +0 -0
  274. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/utils/__init__.py +0 -0
  275. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/utils/gmc.py +0 -0
  276. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  277. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/trackers/utils/matching.py +0 -0
  278. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/__init__.py +0 -0
  279. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/autobatch.py +0 -0
  280. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/autodevice.py +0 -0
  281. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/benchmarks.py +0 -0
  282. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/__init__.py +0 -0
  283. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/base.py +0 -0
  284. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/clearml.py +0 -0
  285. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/comet.py +0 -0
  286. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/dvc.py +0 -0
  287. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/hub.py +0 -0
  288. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/mlflow.py +0 -0
  289. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/neptune.py +0 -0
  290. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/raytune.py +0 -0
  291. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  292. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/callbacks/wb.py +0 -0
  293. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/checks.py +0 -0
  294. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/cpu.py +0 -0
  295. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/dist.py +0 -0
  296. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/downloads.py +0 -0
  297. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/errors.py +0 -0
  298. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/events.py +0 -0
  299. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/export/__init__.py +0 -0
  300. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/export/engine.py +0 -0
  301. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/export/imx.py +0 -0
  302. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/export/tensorflow.py +0 -0
  303. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/files.py +0 -0
  304. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/git.py +0 -0
  305. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/instance.py +0 -0
  306. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/logger.py +0 -0
  307. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/loss.py +0 -0
  308. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/metrics.py +0 -0
  309. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/nms.py +0 -0
  310. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/ops.py +0 -0
  311. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/patches.py +0 -0
  312. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/plotting.py +0 -0
  313. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/tal.py +0 -0
  314. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/torch_utils.py +0 -0
  315. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/tqdm.py +0 -0
  316. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/triton.py +0 -0
  317. {dgenerate_ultralytics_headless-8.4.10 → dgenerate_ultralytics_headless-8.4.11}/ultralytics/utils/tuner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.4.10
3
+ Version: 8.4.11
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.4.10
3
+ Version: 8.4.11
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -303,6 +303,7 @@ ultralytics/utils/torch_utils.py
303
303
  ultralytics/utils/tqdm.py
304
304
  ultralytics/utils/triton.py
305
305
  ultralytics/utils/tuner.py
306
+ ultralytics/utils/uploads.py
306
307
  ultralytics/utils/callbacks/__init__.py
307
308
  ultralytics/utils/callbacks/base.py
308
309
  ultralytics/utils/callbacks/clearml.py
@@ -35,6 +35,10 @@ def test_export_onnx(end2end):
35
35
  def test_export_openvino(end2end):
36
36
  """Test YOLO export to OpenVINO format for model inference compatibility."""
37
37
  file = YOLO(MODEL).export(format="openvino", imgsz=32, end2end=end2end)
38
+ if WINDOWS:
39
+ # Ensure a unique export path per test to prevent OpenVINO file writes
40
+ file = Path(file)
41
+ file = file.rename(file.with_stem(f"{file.stem}-{uuid.uuid4()}"))
38
42
  YOLO(file)(SOURCE, imgsz=32) # exported model inference
39
43
 
40
44
 
@@ -66,7 +70,6 @@ def test_export_openvino_matrix(task, dynamic, int8, half, batch, nms, end2end):
66
70
  )
67
71
  if WINDOWS:
68
72
  # Use unique filenames due to Windows file permissions bug possibly due to latent threaded use
69
- # See https://github.com/ultralytics/ultralytics/actions/runs/8957949304/job/24601616830?pr=10423
70
73
  file = Path(file)
71
74
  file = file.rename(file.with_stem(f"{file.stem}-{uuid.uuid4()}"))
72
75
  YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32, batch=batch) # exported model inference
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.4.10"
3
+ __version__ = "8.4.11"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -9,7 +9,7 @@ from concurrent.futures import ThreadPoolExecutor
9
9
  from pathlib import Path
10
10
  from time import time
11
11
 
12
- from ultralytics.utils import ENVIRONMENT, GIT, LOGGER, PYTHON_VERSION, RANK, SETTINGS, TESTS_RUNNING, colorstr
12
+ from ultralytics.utils import ENVIRONMENT, GIT, LOGGER, PYTHON_VERSION, RANK, SETTINGS, TESTS_RUNNING, Retry, colorstr
13
13
 
14
14
  PREFIX = colorstr("Platform: ")
15
15
 
@@ -148,22 +148,30 @@ def _interp_plot(plot, n=101):
148
148
  return result
149
149
 
150
150
 
151
- def _send(event, data, project, name, model_id=None):
152
- """Send event to Platform endpoint. Returns response JSON on success."""
153
- try:
154
- payload = {"event": event, "project": project, "name": name, "data": data}
155
- if model_id:
156
- payload["modelId"] = model_id
151
+ def _send(event, data, project, name, model_id=None, retry=2):
152
+ """Send event to Platform endpoint with retry logic."""
153
+ payload = {"event": event, "project": project, "name": name, "data": data}
154
+ if model_id:
155
+ payload["modelId"] = model_id
156
+
157
+ @Retry(times=retry, delay=1)
158
+ def post():
157
159
  r = requests.post(
158
160
  f"{PLATFORM_API_URL}/training/metrics",
159
161
  json=payload,
160
162
  headers={"Authorization": f"Bearer {_api_key}"},
161
- timeout=10,
163
+ timeout=30,
162
164
  )
165
+ if 400 <= r.status_code < 500 and r.status_code not in {408, 429}:
166
+ LOGGER.warning(f"{PREFIX}Failed to send {event}: {r.status_code} {r.reason}")
167
+ return None # Don't retry client errors (except 408 timeout, 429 rate limit)
163
168
  r.raise_for_status()
164
169
  return r.json()
170
+
171
+ try:
172
+ return post()
165
173
  except Exception as e:
166
- LOGGER.debug(f"Platform: Failed to send {event}: {e}")
174
+ LOGGER.debug(f"{PREFIX}Failed to send {event}: {e}")
167
175
  return None
168
176
 
169
177
 
@@ -172,40 +180,38 @@ def _send_async(event, data, project, name, model_id=None):
172
180
  _executor.submit(_send, event, data, project, name, model_id)
173
181
 
174
182
 
175
- def _upload_model(model_path, project, name):
183
+ def _upload_model(model_path, project, name, progress=False, retry=1):
176
184
  """Upload model checkpoint to Platform via signed URL."""
177
- try:
178
- model_path = Path(model_path)
179
- if not model_path.exists():
180
- return None
185
+ from ultralytics.utils.uploads import safe_upload
186
+
187
+ model_path = Path(model_path)
188
+ if not model_path.exists():
189
+ LOGGER.warning(f"{PREFIX}Model file not found: {model_path}")
190
+ return None
181
191
 
182
- # Get signed upload URL
183
- response = requests.post(
192
+ # Get signed upload URL from Platform
193
+ @Retry(times=3, delay=2)
194
+ def get_signed_url():
195
+ r = requests.post(
184
196
  f"{PLATFORM_API_URL}/models/upload",
185
197
  json={"project": project, "name": name, "filename": model_path.name},
186
198
  headers={"Authorization": f"Bearer {_api_key}"},
187
- timeout=10,
199
+ timeout=30,
188
200
  )
189
- response.raise_for_status()
190
- data = response.json()
191
-
192
- # Upload to GCS
193
- with open(model_path, "rb") as f:
194
- requests.put(
195
- data["uploadUrl"],
196
- data=f,
197
- headers={"Content-Type": "application/octet-stream"},
198
- timeout=600, # 10 min timeout for large models
199
- ).raise_for_status()
200
-
201
- # url = f"{PLATFORM_URL}/{project}/{name}"
202
- # LOGGER.info(f"{PREFIX}Model uploaded to {url}")
203
- return data.get("gcsPath")
201
+ r.raise_for_status()
202
+ return r.json()
204
203
 
204
+ try:
205
+ data = get_signed_url()
205
206
  except Exception as e:
206
- LOGGER.debug(f"Platform: Failed to upload model: {e}")
207
+ LOGGER.warning(f"{PREFIX}Failed to get upload URL: {e}")
207
208
  return None
208
209
 
210
+ # Upload to GCS using safe_upload with retry logic and optional progress bar
211
+ if safe_upload(file=model_path, url=data["uploadUrl"], retry=retry, progress=progress):
212
+ return data.get("gcsPath")
213
+ return None
214
+
209
215
 
210
216
  def _upload_model_async(model_path, project, name):
211
217
  """Upload model asynchronously using bounded thread pool."""
@@ -306,7 +312,7 @@ def on_pretrain_routine_start(trainer):
306
312
  # Note: model_info is sent later in on_fit_epoch_end (epoch 0) when the model is actually loaded
307
313
  train_args = {k: str(v) for k, v in vars(trainer.args).items()}
308
314
 
309
- # Send synchronously to get modelId for subsequent webhooks
315
+ # Send synchronously to get modelId for subsequent webhooks (critical, more retries)
310
316
  response = _send(
311
317
  "training_started",
312
318
  {
@@ -317,9 +323,12 @@ def on_pretrain_routine_start(trainer):
317
323
  },
318
324
  project,
319
325
  name,
326
+ retry=4,
320
327
  )
321
328
  if response and response.get("modelId"):
322
329
  trainer._platform_model_id = response["modelId"]
330
+ else:
331
+ LOGGER.warning(f"{PREFIX}Failed to register training session - metrics may not sync to Platform")
323
332
 
324
333
 
325
334
  def on_fit_epoch_end(trainer):
@@ -404,12 +413,14 @@ def on_train_end(trainer):
404
413
  trainer._platform_console_logger.stop_capture()
405
414
  trainer._platform_console_logger = None
406
415
 
407
- # Upload best model (blocking to ensure it completes)
408
- model_path = None
416
+ # Upload best model (blocking with progress bar to ensure it completes)
417
+ gcs_path = None
409
418
  model_size = None
410
419
  if trainer.best and Path(trainer.best).exists():
411
420
  model_size = Path(trainer.best).stat().st_size
412
- model_path = _upload_model(trainer.best, project, name)
421
+ gcs_path = _upload_model(trainer.best, project, name, progress=True, retry=3)
422
+ if not gcs_path:
423
+ LOGGER.warning(f"{PREFIX}Model will not be available for download on Platform (upload failed)")
413
424
 
414
425
  # Collect plots from trainer and validator, deduplicating by type
415
426
  plots_by_type = {}
@@ -432,7 +443,7 @@ def on_train_end(trainer):
432
443
  "metrics": {**trainer.metrics, "fitness": trainer.fitness},
433
444
  "bestEpoch": getattr(trainer, "best_epoch", trainer.epoch),
434
445
  "bestFitness": trainer.best_fitness,
435
- "modelPath": model_path or (str(trainer.best) if trainer.best else None),
446
+ "modelPath": gcs_path, # Only send GCS path, not local path
436
447
  "modelSize": model_size,
437
448
  },
438
449
  "classNames": class_names,
@@ -441,6 +452,7 @@ def on_train_end(trainer):
441
452
  project,
442
453
  name,
443
454
  getattr(trainer, "_platform_model_id", None),
455
+ retry=4, # Critical, more retries
444
456
  )
445
457
  url = f"{PLATFORM_URL}/{project}/{name}"
446
458
  LOGGER.info(f"{PREFIX}View results at {url}")
@@ -0,0 +1,115 @@
1
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
+ """Upload utilities for Ultralytics, mirroring downloads.py patterns."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import os
7
+ from pathlib import Path
8
+ from time import sleep
9
+
10
+ from ultralytics.utils import LOGGER, TQDM
11
+
12
+
13
+ class _ProgressReader:
14
+ """File wrapper that reports read progress for upload monitoring."""
15
+
16
+ def __init__(self, file_path, pbar):
17
+ self.file = open(file_path, "rb")
18
+ self.pbar = pbar
19
+ self._size = os.path.getsize(file_path)
20
+
21
+ def read(self, size=-1):
22
+ """Read data and update progress bar."""
23
+ data = self.file.read(size)
24
+ if data and self.pbar:
25
+ self.pbar.update(len(data))
26
+ return data
27
+
28
+ def __len__(self):
29
+ """Return file size for Content-Length header."""
30
+ return self._size
31
+
32
+ def close(self):
33
+ """Close the file."""
34
+ self.file.close()
35
+
36
+
37
+ def safe_upload(
38
+ file: str | Path,
39
+ url: str,
40
+ headers: dict | None = None,
41
+ retry: int = 2,
42
+ timeout: int = 600,
43
+ progress: bool = False,
44
+ ) -> bool:
45
+ """Upload a file to a URL with retry logic and optional progress bar.
46
+
47
+ Args:
48
+ file (str | Path): Path to the file to upload.
49
+ url (str): The URL endpoint to upload the file to (e.g., signed GCS URL).
50
+ headers (dict, optional): Additional headers to include in the request.
51
+ retry (int, optional): Number of retry attempts on failure (default: 2 for 3 total attempts).
52
+ timeout (int, optional): Request timeout in seconds.
53
+ progress (bool, optional): Whether to display a progress bar during upload.
54
+
55
+ Returns:
56
+ (bool): True if upload succeeded, False otherwise.
57
+
58
+ Examples:
59
+ >>> from ultralytics.utils.uploads import safe_upload
60
+ >>> success = safe_upload("model.pt", "https://storage.googleapis.com/...", progress=True)
61
+ """
62
+ import requests
63
+
64
+ file = Path(file)
65
+ if not file.exists():
66
+ raise FileNotFoundError(f"File not found: {file}")
67
+
68
+ file_size = file.stat().st_size
69
+ desc = f"Uploading {file.name}"
70
+
71
+ # Prepare headers (Content-Length set automatically from file size)
72
+ upload_headers = {"Content-Type": "application/octet-stream"}
73
+ if headers:
74
+ upload_headers.update(headers)
75
+
76
+ last_error = None
77
+ for attempt in range(retry + 1):
78
+ pbar = None
79
+ reader = None
80
+ try:
81
+ if progress:
82
+ pbar = TQDM(total=file_size, desc=desc, unit="B", unit_scale=True, unit_divisor=1024)
83
+ reader = _ProgressReader(file, pbar)
84
+
85
+ r = requests.put(url, data=reader, headers=upload_headers, timeout=timeout)
86
+ r.raise_for_status()
87
+ reader.close()
88
+ reader = None # Prevent double-close in finally
89
+ if pbar:
90
+ pbar.close()
91
+ pbar = None
92
+ LOGGER.info(f"Uploaded {file.name} ✅")
93
+ return True
94
+
95
+ except requests.exceptions.HTTPError as e:
96
+ status = e.response.status_code if e.response is not None else 0
97
+ if 400 <= status < 500 and status not in {408, 429}:
98
+ LOGGER.warning(f"{desc} failed: {status} {getattr(e.response, 'reason', '')}")
99
+ return False
100
+ last_error = f"HTTP {status}"
101
+ except Exception as e:
102
+ last_error = str(e)
103
+ finally:
104
+ if reader:
105
+ reader.close()
106
+ if pbar:
107
+ pbar.close()
108
+
109
+ if attempt < retry:
110
+ wait_time = 2 ** (attempt + 1)
111
+ LOGGER.warning(f"{desc} failed ({last_error}), retrying {attempt + 1}/{retry} in {wait_time}s...")
112
+ sleep(wait_time)
113
+
114
+ LOGGER.warning(f"{desc} failed after {retry + 1} attempts: {last_error}")
115
+ return False