hafnia 0.5.4__tar.gz → 0.5.5__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 (178) hide show
  1. {hafnia-0.5.4 → hafnia-0.5.5}/PKG-INFO +2 -2
  2. {hafnia-0.5.4 → hafnia-0.5.5}/pyproject.toml +3 -3
  3. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/experiment/command_builder.py +10 -0
  4. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_command_builder.py +19 -0
  5. {hafnia-0.5.4 → hafnia-0.5.5}/uv.lock +23 -116
  6. {hafnia-0.5.4 → hafnia-0.5.5}/.devcontainer/devcontainer.json +0 -0
  7. {hafnia-0.5.4 → hafnia-0.5.5}/.devcontainer/hooks/post_create +0 -0
  8. {hafnia-0.5.4 → hafnia-0.5.5}/.github/dependabot.yaml +0 -0
  9. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/Dockerfile +0 -0
  10. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/build.yaml +0 -0
  11. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/check_release.yaml +0 -0
  12. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/ci_cd.yaml +0 -0
  13. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/lint.yaml +0 -0
  14. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/publish_docker.yaml +0 -0
  15. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/publish_pypi.yaml +0 -0
  16. {hafnia-0.5.4 → hafnia-0.5.5}/.github/workflows/tests.yaml +0 -0
  17. {hafnia-0.5.4 → hafnia-0.5.5}/.gitignore +0 -0
  18. {hafnia-0.5.4 → hafnia-0.5.5}/.pre-commit-config.yaml +0 -0
  19. {hafnia-0.5.4 → hafnia-0.5.5}/.python-version +0 -0
  20. {hafnia-0.5.4 → hafnia-0.5.5}/.trivyignore +0 -0
  21. {hafnia-0.5.4 → hafnia-0.5.5}/.vscode/extensions.json +0 -0
  22. {hafnia-0.5.4 → hafnia-0.5.5}/.vscode/launch.json +0 -0
  23. {hafnia-0.5.4 → hafnia-0.5.5}/.vscode/settings.json +0 -0
  24. {hafnia-0.5.4 → hafnia-0.5.5}/LICENSE +0 -0
  25. {hafnia-0.5.4 → hafnia-0.5.5}/README.md +0 -0
  26. {hafnia-0.5.4 → hafnia-0.5.5}/docs/cli.md +0 -0
  27. {hafnia-0.5.4 → hafnia-0.5.5}/docs/release.md +0 -0
  28. {hafnia-0.5.4 → hafnia-0.5.5}/examples/example_dataset_recipe.py +0 -0
  29. {hafnia-0.5.4 → hafnia-0.5.5}/examples/example_hafnia_dataset.py +0 -0
  30. {hafnia-0.5.4 → hafnia-0.5.5}/examples/example_logger.py +0 -0
  31. {hafnia-0.5.4 → hafnia-0.5.5}/examples/example_torchvision_dataloader.py +0 -0
  32. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/__init__.py +0 -0
  33. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/colors.py +0 -0
  34. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_details_uploader.py +0 -0
  35. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_helpers.py +0 -0
  36. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_names.py +0 -0
  37. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_recipe/dataset_recipe.py +0 -0
  38. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_recipe/recipe_transforms.py +0 -0
  39. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/dataset_recipe/recipe_types.py +0 -0
  40. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/format_conversions/format_coco.py +0 -0
  41. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/format_conversions/format_helpers.py +0 -0
  42. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/format_conversions/format_image_classification_folder.py +0 -0
  43. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/format_conversions/format_yolo.py +0 -0
  44. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/format_conversions/torchvision_datasets.py +0 -0
  45. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/hafnia_dataset.py +0 -0
  46. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/hafnia_dataset_types.py +0 -0
  47. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/image_visualizations.py +0 -0
  48. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/license_types.py +0 -0
  49. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/operations/dataset_s3_storage.py +0 -0
  50. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/operations/dataset_stats.py +0 -0
  51. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/operations/dataset_transformations.py +0 -0
  52. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/operations/table_transformations.py +0 -0
  53. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/__init__.py +0 -0
  54. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/bbox.py +0 -0
  55. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/bitmask.py +0 -0
  56. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/classification.py +0 -0
  57. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/point.py +0 -0
  58. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/polygon.py +0 -0
  59. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/primitive.py +0 -0
  60. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/segmentation.py +0 -0
  61. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/primitives/utils.py +0 -0
  62. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/dataset/torch_helpers.py +0 -0
  63. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/experiment/__init__.py +0 -0
  64. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/experiment/hafnia_logger.py +0 -0
  65. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/http.py +0 -0
  66. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/log.py +0 -0
  67. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/__init__.py +0 -0
  68. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/builder.py +0 -0
  69. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/dataset_recipe.py +0 -0
  70. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/datasets.py +0 -0
  71. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/download.py +0 -0
  72. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/experiment.py +0 -0
  73. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/s5cmd_utils.py +0 -0
  74. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/platform/trainer_package.py +0 -0
  75. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia/utils.py +0 -0
  76. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/__init__.py +0 -0
  77. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/__main__.py +0 -0
  78. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/config.py +0 -0
  79. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/consts.py +0 -0
  80. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/dataset_cmds.py +0 -0
  81. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/dataset_recipe_cmds.py +0 -0
  82. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/experiment_cmds.py +0 -0
  83. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/keychain.py +0 -0
  84. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/profile_cmds.py +0 -0
  85. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/runc_cmds.py +0 -0
  86. {hafnia-0.5.4 → hafnia-0.5.5}/src/hafnia_cli/trainer_package_cmds.py +0 -0
  87. {hafnia-0.5.4 → hafnia-0.5.5}/tests/__init__.py +0 -0
  88. {hafnia-0.5.4 → hafnia-0.5.5}/tests/conftest.py +0 -0
  89. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/train/000000000632.jpg +0 -0
  90. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/train/000000000724.jpg +0 -0
  91. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/train/_annotations.coco.json +0 -0
  92. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/valid/000000000139.jpg +0 -0
  93. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/valid/000000000285.jpg +0 -0
  94. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_coco_roboflow/valid/_annotations.coco.json +0 -0
  95. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/obj.names +0 -0
  96. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/train/data/000000000139.jpg +0 -0
  97. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/train/data/000000000139.txt +0 -0
  98. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/train/data/000000000285.jpg +0 -0
  99. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/train/data/000000000285.txt +0 -0
  100. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/train/images.txt +0 -0
  101. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/validation/data/000000000632.jpg +0 -0
  102. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/validation/data/000000000632.txt +0 -0
  103. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_formats/format_yolo/validation/images.txt +0 -0
  104. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/dataset_image_metadata_schema.yaml +0 -0
  105. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_dataset_transformations/test_video_storage_format_read_image.png +0 -0
  106. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_convert_segmentation_to_rle_list[polygon].png +0 -0
  107. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_convert_segmentation_to_rle_list[rle_as_ints].png +0 -0
  108. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_convert_segmentation_to_rle_list[rle_compressed_bytes].png +0 -0
  109. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_convert_segmentation_to_rle_list[rle_compressed_str].png +0 -0
  110. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_from_coco_format_visualized.png +0 -0
  111. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_coco/test_to_coco_format_visualized.png +0 -0
  112. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_yolo/test_format_yolo_import_export_tiny_dataset.png +0 -0
  113. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_format_yolo/test_import_yolo_format_visualized.png +0 -0
  114. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[caltech-101].png +0 -0
  115. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[caltech-256].png +0 -0
  116. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[cifar100].png +0 -0
  117. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[cifar10].png +0 -0
  118. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[coco-2017].png +0 -0
  119. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[midwest-vehicle-detection].png +0 -0
  120. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[mnist].png +0 -0
  121. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_check_dataset[tiny-dataset].png +0 -0
  122. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[caltech-101].png +0 -0
  123. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[caltech-256].png +0 -0
  124. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[cifar100].png +0 -0
  125. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[cifar10].png +0 -0
  126. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[coco-2017].png +0 -0
  127. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[midwest-vehicle-detection].png +0 -0
  128. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[mnist].png +0 -0
  129. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_samples/test_dataset_draw_image_and_target[tiny-dataset].png +0 -0
  130. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_blur_anonymization[micro-coco-2017].png +0 -0
  131. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_blur_anonymization[micro-tiny-dataset].png +0 -0
  132. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_draw_annotations[micro-coco-2017].png +0 -0
  133. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_draw_annotations[micro-tiny-dataset].png +0 -0
  134. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_mask_region[micro-coco-2017].png +0 -0
  135. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_mask_region[micro-tiny-dataset].png +0 -0
  136. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/expected_images/test_visualizations/test_polygon_to_bitmask_conversion.png +0 -0
  137. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/annotations.jsonl +0 -0
  138. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/annotations.parquet +0 -0
  139. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/data/253/253925d334c002ce6662d8133535dd4c.jpg +0 -0
  140. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/data/b1a/b1a09f4d922f8f6904bab0c1caf172ab.jpg +0 -0
  141. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/data/f67/f675c8a1e862b5e00203ab888ac7fff4.jpg +0 -0
  142. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-coco-2017/dataset_info.json +0 -0
  143. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/annotations.jsonl +0 -0
  144. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/annotations.parquet +0 -0
  145. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/data/25c/25c3a206e7b60ab50245ee3d52d97f11.png +0 -0
  146. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/data/962/962fd865fdd45f169d5ca8c8f284d68d.png +0 -0
  147. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/data/ec6/ec60f2f4fb854b59c97e16b45c713de0.png +0 -0
  148. {hafnia-0.5.4 → hafnia-0.5.5}/tests/data/micro_test_datasets/micro-tiny-dataset/dataset_info.json +0 -0
  149. {hafnia-0.5.4 → hafnia-0.5.5}/tests/helper_testing.py +0 -0
  150. {hafnia-0.5.4 → hafnia-0.5.5}/tests/helper_testing_datasets.py +0 -0
  151. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_bring_your_own_data.py +0 -0
  152. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_check_example_scripts.py +0 -0
  153. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_cli_integration.py +0 -0
  154. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_dataset_merges.py +0 -0
  155. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_dataset_recipes_with_platform.py +0 -0
  156. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_dataset_versioning.py +0 -0
  157. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_samples.py +0 -0
  158. {hafnia-0.5.4 → hafnia-0.5.5}/tests/integration/test_torchvision_datasets.py +0 -0
  159. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/dataset_recipe/test_dataset_recipes.py +0 -0
  160. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/dataset_recipe/test_recipe_transformations.py +0 -0
  161. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/format_conversions/test_format_coco.py +0 -0
  162. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/format_conversions/test_format_image_classification_folder.py +0 -0
  163. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/format_conversions/test_format_yolo.py +0 -0
  164. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/operations/test_dataset_stats.py +0 -0
  165. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/operations/test_dataset_transformations.py +0 -0
  166. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/operations/test_table_transformations.py +0 -0
  167. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_colors.py +0 -0
  168. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_dataset_details_uploader.py +0 -0
  169. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_dataset_helpers.py +0 -0
  170. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_dataset_names.py +0 -0
  171. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_hafnia_dataset.py +0 -0
  172. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_hafnia_dataset_types.py +0 -0
  173. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/dataset/test_shape_primitives.py +0 -0
  174. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_builder.py +0 -0
  175. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_cli.py +0 -0
  176. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_hafnia_logger.py +0 -0
  177. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_utils.py +0 -0
  178. {hafnia-0.5.4 → hafnia-0.5.5}/tests/unit/test_visualizations.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hafnia
3
- Version: 0.5.4
3
+ Version: 0.5.5
4
4
  Summary: Python SDK for communication with Hafnia platform.
5
5
  Author-email: Milestone Systems <hafniaplatform@milestone.dk>
6
6
  License-File: LICENSE
@@ -14,7 +14,7 @@ Requires-Dist: keyring>=25.6.0
14
14
  Requires-Dist: mcp>=1.23.0
15
15
  Requires-Dist: mlflow>=3.4.0
16
16
  Requires-Dist: more-itertools>=10.7.0
17
- Requires-Dist: opencv-python-headless>=4.11.0.86
17
+ Requires-Dist: opencv-python-headless<4.13
18
18
  Requires-Dist: pathspec>=0.12.1
19
19
  Requires-Dist: pillow>=11.1.0
20
20
  Requires-Dist: polars>=1.30.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hafnia"
3
- version = "0.5.4"
3
+ version = "0.5.5"
4
4
  description = "Python SDK for communication with Hafnia platform."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -15,7 +15,7 @@ dependencies = [
15
15
  "flatten-dict>=0.4.2",
16
16
  "keyring>=25.6.0",
17
17
  "more-itertools>=10.7.0",
18
- "opencv-python-headless>=4.11.0.86",
18
+ "opencv-python-headless<4.13", # Issues in 4.13.0.90" for small images (hafnia requires opencv-python-headless)
19
19
  "pathspec>=0.12.1",
20
20
  "pillow>=11.1.0",
21
21
  "polars>=1.30.0",
@@ -29,7 +29,7 @@ dependencies = [
29
29
  "mlflow>=3.4.0",
30
30
  "sagemaker-mlflow>=0.1.0",
31
31
  "mcp>=1.23.0",
32
- "docstring-parser>=0.17.0", # Used to parse docstrings for CommandBuilder
32
+ "docstring-parser>=0.17.0", # Used to parse docstrings for CommandBuilder
33
33
  ]
34
34
 
35
35
  [dependency-groups]
@@ -19,6 +19,7 @@ CommandBuilderSchema JSON file should be saved as `./scripts/train.json`.
19
19
 
20
20
  from __future__ import annotations
21
21
 
22
+ import enum
22
23
  import inspect
23
24
  from pathlib import Path
24
25
  from typing import (
@@ -569,6 +570,15 @@ def pydantic_model_from_cli_function(
569
570
 
570
571
  base_type, field_info = function_param_as_type_and_field_info(param)
571
572
 
573
+ # if issubclass(base_type, enum.Enum):
574
+ if type(base_type) is enum.EnumMeta:
575
+ raise TypeError(
576
+ f"'Enum' CLI argument types are not supported yet in command builder schema generation.\n"
577
+ f"Found that '{param.name}' uses enum type.\n"
578
+ f"As a workaround, use 'Literal[...]' or 'str' type instead if possible for parameter '{param.name}'. "
579
+ f"If this is not an option you may simply ignore this parameter from the schema generation "
580
+ f"using the 'ignore_params' argument."
581
+ )
572
582
  default = derive_default_value(field_info, param)
573
583
  if field_info.description is None and param.name in docstring_params:
574
584
  field_info_attributes = field_info.asdict()["attributes"]
@@ -465,3 +465,22 @@ def test_typer_cmdline(tmp_path: Path):
465
465
  assert parsed_data["param_int"] == 10
466
466
  assert parsed_data["bool_param"] is False
467
467
  assert parsed_data["bool_param_true"] is True
468
+
469
+
470
+ def test_enum_not_supported():
471
+ """Test to ensure that using Enum types raises an error."""
472
+
473
+ from enum import Enum
474
+
475
+ class Color(Enum):
476
+ RED = "red"
477
+ GREEN = "green"
478
+ BLUE = "blue"
479
+
480
+ def enum_parameter_example(
481
+ color: Annotated[Color, "This is an example parameter using Enum."],
482
+ ):
483
+ pass
484
+
485
+ with pytest.raises(TypeError, match="'Enum' CLI argument types are not supported yet"):
486
+ command_builder.schema_from_cli_function(enum_parameter_example)
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 2
3
3
  requires-python = ">=3.10"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.12'",
@@ -372,7 +372,7 @@ resolution-markers = [
372
372
  "python_full_version < '3.11'",
373
373
  ]
374
374
  dependencies = [
375
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
375
+ { name = "numpy", marker = "python_full_version < '3.11'" },
376
376
  ]
377
377
  sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" }
378
378
  wheels = [
@@ -443,7 +443,7 @@ resolution-markers = [
443
443
  "python_full_version == '3.11.*'",
444
444
  ]
445
445
  dependencies = [
446
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
446
+ { name = "numpy", marker = "python_full_version >= '3.11'" },
447
447
  ]
448
448
  sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" }
449
449
  wheels = [
@@ -1152,7 +1152,7 @@ wheels = [
1152
1152
 
1153
1153
  [[package]]
1154
1154
  name = "hafnia"
1155
- version = "0.5.4"
1155
+ version = "0.5.5"
1156
1156
  source = { editable = "." }
1157
1157
  dependencies = [
1158
1158
  { name = "boto3" },
@@ -1205,7 +1205,7 @@ requires-dist = [
1205
1205
  { name = "mcp", specifier = ">=1.23.0" },
1206
1206
  { name = "mlflow", specifier = ">=3.4.0" },
1207
1207
  { name = "more-itertools", specifier = ">=10.7.0" },
1208
- { name = "opencv-python-headless", specifier = ">=4.11.0.86" },
1208
+ { name = "opencv-python-headless", specifier = "<4.13" },
1209
1209
  { name = "pathspec", specifier = ">=0.12.1" },
1210
1210
  { name = "pillow", specifier = ">=11.1.0" },
1211
1211
  { name = "polars", specifier = ">=1.30.0" },
@@ -1805,8 +1805,7 @@ dependencies = [
1805
1805
  { name = "cycler" },
1806
1806
  { name = "fonttools" },
1807
1807
  { name = "kiwisolver" },
1808
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
1809
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
1808
+ { name = "numpy" },
1810
1809
  { name = "packaging" },
1811
1810
  { name = "pillow" },
1812
1811
  { name = "pyparsing" },
@@ -1932,8 +1931,7 @@ dependencies = [
1932
1931
  { name = "matplotlib" },
1933
1932
  { name = "mlflow-skinny" },
1934
1933
  { name = "mlflow-tracing" },
1935
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
1936
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
1934
+ { name = "numpy" },
1937
1935
  { name = "pandas" },
1938
1936
  { name = "pyarrow" },
1939
1937
  { name = "scikit-learn", version = "1.7.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
@@ -2071,9 +2069,6 @@ wheels = [
2071
2069
  name = "numpy"
2072
2070
  version = "2.2.6"
2073
2071
  source = { registry = "https://pypi.org/simple" }
2074
- resolution-markers = [
2075
- "python_full_version < '3.11'",
2076
- ]
2077
2072
  sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" }
2078
2073
  wheels = [
2079
2074
  { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" },
@@ -2132,89 +2127,6 @@ wheels = [
2132
2127
  { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" },
2133
2128
  ]
2134
2129
 
2135
- [[package]]
2136
- name = "numpy"
2137
- version = "2.4.1"
2138
- source = { registry = "https://pypi.org/simple" }
2139
- resolution-markers = [
2140
- "python_full_version >= '3.12'",
2141
- "python_full_version == '3.11.*'",
2142
- ]
2143
- sdist = { url = "https://files.pythonhosted.org/packages/24/62/ae72ff66c0f1fd959925b4c11f8c2dea61f47f6acaea75a08512cdfe3fed/numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", size = 20721320, upload-time = "2026-01-10T06:44:59.619Z" }
2144
- wheels = [
2145
- { url = "https://files.pythonhosted.org/packages/a5/34/2b1bc18424f3ad9af577f6ce23600319968a70575bd7db31ce66731bbef9/numpy-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5", size = 16944563, upload-time = "2026-01-10T06:42:14.615Z" },
2146
- { url = "https://files.pythonhosted.org/packages/2c/57/26e5f97d075aef3794045a6ca9eada6a4ed70eb9a40e7a4a93f9ac80d704/numpy-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425", size = 12645658, upload-time = "2026-01-10T06:42:17.298Z" },
2147
- { url = "https://files.pythonhosted.org/packages/8e/ba/80fc0b1e3cb2fd5c6143f00f42eb67762aa043eaa05ca924ecc3222a7849/numpy-2.4.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba", size = 5474132, upload-time = "2026-01-10T06:42:19.637Z" },
2148
- { url = "https://files.pythonhosted.org/packages/40/ae/0a5b9a397f0e865ec171187c78d9b57e5588afc439a04ba9cab1ebb2c945/numpy-2.4.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501", size = 6804159, upload-time = "2026-01-10T06:42:21.44Z" },
2149
- { url = "https://files.pythonhosted.org/packages/86/9c/841c15e691c7085caa6fd162f063eff494099c8327aeccd509d1ab1e36ab/numpy-2.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a", size = 14708058, upload-time = "2026-01-10T06:42:23.546Z" },
2150
- { url = "https://files.pythonhosted.org/packages/5d/9d/7862db06743f489e6a502a3b93136d73aea27d97b2cf91504f70a27501d6/numpy-2.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509", size = 16651501, upload-time = "2026-01-10T06:42:25.909Z" },
2151
- { url = "https://files.pythonhosted.org/packages/a6/9c/6fc34ebcbd4015c6e5f0c0ce38264010ce8a546cb6beacb457b84a75dfc8/numpy-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc", size = 16492627, upload-time = "2026-01-10T06:42:28.938Z" },
2152
- { url = "https://files.pythonhosted.org/packages/aa/63/2494a8597502dacda439f61b3c0db4da59928150e62be0e99395c3ad23c5/numpy-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82", size = 18585052, upload-time = "2026-01-10T06:42:31.312Z" },
2153
- { url = "https://files.pythonhosted.org/packages/6a/93/098e1162ae7522fc9b618d6272b77404c4656c72432ecee3abc029aa3de0/numpy-2.4.1-cp311-cp311-win32.whl", hash = "sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0", size = 6236575, upload-time = "2026-01-10T06:42:33.872Z" },
2154
- { url = "https://files.pythonhosted.org/packages/8c/de/f5e79650d23d9e12f38a7bc6b03ea0835b9575494f8ec94c11c6e773b1b1/numpy-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574", size = 12604479, upload-time = "2026-01-10T06:42:35.778Z" },
2155
- { url = "https://files.pythonhosted.org/packages/dd/65/e1097a7047cff12ce3369bd003811516b20ba1078dbdec135e1cd7c16c56/numpy-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73", size = 10578325, upload-time = "2026-01-10T06:42:38.518Z" },
2156
- { url = "https://files.pythonhosted.org/packages/78/7f/ec53e32bf10c813604edf07a3682616bd931d026fcde7b6d13195dfb684a/numpy-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2", size = 16656888, upload-time = "2026-01-10T06:42:40.913Z" },
2157
- { url = "https://files.pythonhosted.org/packages/b8/e0/1f9585d7dae8f14864e948fd7fa86c6cb72dee2676ca2748e63b1c5acfe0/numpy-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8", size = 12373956, upload-time = "2026-01-10T06:42:43.091Z" },
2158
- { url = "https://files.pythonhosted.org/packages/8e/43/9762e88909ff2326f5e7536fa8cb3c49fb03a7d92705f23e6e7f553d9cb3/numpy-2.4.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a", size = 5202567, upload-time = "2026-01-10T06:42:45.107Z" },
2159
- { url = "https://files.pythonhosted.org/packages/4b/ee/34b7930eb61e79feb4478800a4b95b46566969d837546aa7c034c742ef98/numpy-2.4.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0", size = 6549459, upload-time = "2026-01-10T06:42:48.152Z" },
2160
- { url = "https://files.pythonhosted.org/packages/79/e3/5f115fae982565771be994867c89bcd8d7208dbfe9469185497d70de5ddf/numpy-2.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c", size = 14404859, upload-time = "2026-01-10T06:42:49.947Z" },
2161
- { url = "https://files.pythonhosted.org/packages/d9/7d/9c8a781c88933725445a859cac5d01b5871588a15969ee6aeb618ba99eee/numpy-2.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02", size = 16371419, upload-time = "2026-01-10T06:42:52.409Z" },
2162
- { url = "https://files.pythonhosted.org/packages/a6/d2/8aa084818554543f17cf4162c42f162acbd3bb42688aefdba6628a859f77/numpy-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162", size = 16182131, upload-time = "2026-01-10T06:42:54.694Z" },
2163
- { url = "https://files.pythonhosted.org/packages/60/db/0425216684297c58a8df35f3284ef56ec4a043e6d283f8a59c53562caf1b/numpy-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9", size = 18295342, upload-time = "2026-01-10T06:42:56.991Z" },
2164
- { url = "https://files.pythonhosted.org/packages/31/4c/14cb9d86240bd8c386c881bafbe43f001284b7cce3bc01623ac9475da163/numpy-2.4.1-cp312-cp312-win32.whl", hash = "sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f", size = 5959015, upload-time = "2026-01-10T06:42:59.631Z" },
2165
- { url = "https://files.pythonhosted.org/packages/51/cf/52a703dbeb0c65807540d29699fef5fda073434ff61846a564d5c296420f/numpy-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87", size = 12310730, upload-time = "2026-01-10T06:43:01.627Z" },
2166
- { url = "https://files.pythonhosted.org/packages/69/80/a828b2d0ade5e74a9fe0f4e0a17c30fdc26232ad2bc8c9f8b3197cf7cf18/numpy-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8", size = 10312166, upload-time = "2026-01-10T06:43:03.673Z" },
2167
- { url = "https://files.pythonhosted.org/packages/04/68/732d4b7811c00775f3bd522a21e8dd5a23f77eb11acdeb663e4a4ebf0ef4/numpy-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b", size = 16652495, upload-time = "2026-01-10T06:43:06.283Z" },
2168
- { url = "https://files.pythonhosted.org/packages/20/ca/857722353421a27f1465652b2c66813eeeccea9d76d5f7b74b99f298e60e/numpy-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f", size = 12368657, upload-time = "2026-01-10T06:43:09.094Z" },
2169
- { url = "https://files.pythonhosted.org/packages/81/0d/2377c917513449cc6240031a79d30eb9a163d32a91e79e0da47c43f2c0c8/numpy-2.4.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9", size = 5197256, upload-time = "2026-01-10T06:43:13.634Z" },
2170
- { url = "https://files.pythonhosted.org/packages/17/39/569452228de3f5de9064ac75137082c6214be1f5c532016549a7923ab4b5/numpy-2.4.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e", size = 6545212, upload-time = "2026-01-10T06:43:15.661Z" },
2171
- { url = "https://files.pythonhosted.org/packages/8c/a4/77333f4d1e4dac4395385482557aeecf4826e6ff517e32ca48e1dafbe42a/numpy-2.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5", size = 14402871, upload-time = "2026-01-10T06:43:17.324Z" },
2172
- { url = "https://files.pythonhosted.org/packages/ba/87/d341e519956273b39d8d47969dd1eaa1af740615394fe67d06f1efa68773/numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8", size = 16359305, upload-time = "2026-01-10T06:43:19.376Z" },
2173
- { url = "https://files.pythonhosted.org/packages/32/91/789132c6666288eaa20ae8066bb99eba1939362e8f1a534949a215246e97/numpy-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c", size = 16181909, upload-time = "2026-01-10T06:43:21.808Z" },
2174
- { url = "https://files.pythonhosted.org/packages/cf/b8/090b8bd27b82a844bb22ff8fdf7935cb1980b48d6e439ae116f53cdc2143/numpy-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2", size = 18284380, upload-time = "2026-01-10T06:43:23.957Z" },
2175
- { url = "https://files.pythonhosted.org/packages/67/78/722b62bd31842ff029412271556a1a27a98f45359dea78b1548a3a9996aa/numpy-2.4.1-cp313-cp313-win32.whl", hash = "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d", size = 5957089, upload-time = "2026-01-10T06:43:27.535Z" },
2176
- { url = "https://files.pythonhosted.org/packages/da/a6/cf32198b0b6e18d4fbfa9a21a992a7fca535b9bb2b0cdd217d4a3445b5ca/numpy-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb", size = 12307230, upload-time = "2026-01-10T06:43:29.298Z" },
2177
- { url = "https://files.pythonhosted.org/packages/44/6c/534d692bfb7d0afe30611320c5fb713659dcb5104d7cc182aff2aea092f5/numpy-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5", size = 10313125, upload-time = "2026-01-10T06:43:31.782Z" },
2178
- { url = "https://files.pythonhosted.org/packages/da/a1/354583ac5c4caa566de6ddfbc42744409b515039e085fab6e0ff942e0df5/numpy-2.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7", size = 12496156, upload-time = "2026-01-10T06:43:34.237Z" },
2179
- { url = "https://files.pythonhosted.org/packages/51/b0/42807c6e8cce58c00127b1dc24d365305189991f2a7917aa694a109c8d7d/numpy-2.4.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d", size = 5324663, upload-time = "2026-01-10T06:43:36.211Z" },
2180
- { url = "https://files.pythonhosted.org/packages/fe/55/7a621694010d92375ed82f312b2f28017694ed784775269115323e37f5e2/numpy-2.4.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15", size = 6645224, upload-time = "2026-01-10T06:43:37.884Z" },
2181
- { url = "https://files.pythonhosted.org/packages/50/96/9fa8635ed9d7c847d87e30c834f7109fac5e88549d79ef3324ab5c20919f/numpy-2.4.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9", size = 14462352, upload-time = "2026-01-10T06:43:39.479Z" },
2182
- { url = "https://files.pythonhosted.org/packages/03/d1/8cf62d8bb2062da4fb82dd5d49e47c923f9c0738032f054e0a75342faba7/numpy-2.4.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2", size = 16407279, upload-time = "2026-01-10T06:43:41.93Z" },
2183
- { url = "https://files.pythonhosted.org/packages/86/1c/95c86e17c6b0b31ce6ef219da00f71113b220bcb14938c8d9a05cee0ff53/numpy-2.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505", size = 16248316, upload-time = "2026-01-10T06:43:44.121Z" },
2184
- { url = "https://files.pythonhosted.org/packages/30/b4/e7f5ff8697274c9d0fa82398b6a372a27e5cef069b37df6355ccb1f1db1a/numpy-2.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2", size = 18329884, upload-time = "2026-01-10T06:43:46.613Z" },
2185
- { url = "https://files.pythonhosted.org/packages/37/a4/b073f3e9d77f9aec8debe8ca7f9f6a09e888ad1ba7488f0c3b36a94c03ac/numpy-2.4.1-cp313-cp313t-win32.whl", hash = "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4", size = 6081138, upload-time = "2026-01-10T06:43:48.854Z" },
2186
- { url = "https://files.pythonhosted.org/packages/16/16/af42337b53844e67752a092481ab869c0523bc95c4e5c98e4dac4e9581ac/numpy-2.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510", size = 12447478, upload-time = "2026-01-10T06:43:50.476Z" },
2187
- { url = "https://files.pythonhosted.org/packages/6c/f8/fa85b2eac68ec631d0b631abc448552cb17d39afd17ec53dcbcc3537681a/numpy-2.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261", size = 10382981, upload-time = "2026-01-10T06:43:52.575Z" },
2188
- { url = "https://files.pythonhosted.org/packages/1b/a7/ef08d25698e0e4b4efbad8d55251d20fe2a15f6d9aa7c9b30cd03c165e6f/numpy-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc", size = 16652046, upload-time = "2026-01-10T06:43:54.797Z" },
2189
- { url = "https://files.pythonhosted.org/packages/8f/39/e378b3e3ca13477e5ac70293ec027c438d1927f18637e396fe90b1addd72/numpy-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3", size = 12378858, upload-time = "2026-01-10T06:43:57.099Z" },
2190
- { url = "https://files.pythonhosted.org/packages/c3/74/7ec6154f0006910ed1fdbb7591cf4432307033102b8a22041599935f8969/numpy-2.4.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220", size = 5207417, upload-time = "2026-01-10T06:43:59.037Z" },
2191
- { url = "https://files.pythonhosted.org/packages/f7/b7/053ac11820d84e42f8feea5cb81cc4fcd1091499b45b1ed8c7415b1bf831/numpy-2.4.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee", size = 6542643, upload-time = "2026-01-10T06:44:01.852Z" },
2192
- { url = "https://files.pythonhosted.org/packages/c0/c4/2e7908915c0e32ca636b92e4e4a3bdec4cb1e7eb0f8aedf1ed3c68a0d8cd/numpy-2.4.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556", size = 14418963, upload-time = "2026-01-10T06:44:04.047Z" },
2193
- { url = "https://files.pythonhosted.org/packages/eb/c0/3ed5083d94e7ffd7c404e54619c088e11f2e1939a9544f5397f4adb1b8ba/numpy-2.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844", size = 16363811, upload-time = "2026-01-10T06:44:06.207Z" },
2194
- { url = "https://files.pythonhosted.org/packages/0e/68/42b66f1852bf525050a67315a4fb94586ab7e9eaa541b1bef530fab0c5dd/numpy-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3", size = 16197643, upload-time = "2026-01-10T06:44:08.33Z" },
2195
- { url = "https://files.pythonhosted.org/packages/d2/40/e8714fc933d85f82c6bfc7b998a0649ad9769a32f3494ba86598aaf18a48/numpy-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205", size = 18289601, upload-time = "2026-01-10T06:44:10.841Z" },
2196
- { url = "https://files.pythonhosted.org/packages/80/9a/0d44b468cad50315127e884802351723daca7cf1c98d102929468c81d439/numpy-2.4.1-cp314-cp314-win32.whl", hash = "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745", size = 6005722, upload-time = "2026-01-10T06:44:13.332Z" },
2197
- { url = "https://files.pythonhosted.org/packages/7e/bb/c6513edcce5a831810e2dddc0d3452ce84d208af92405a0c2e58fd8e7881/numpy-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d", size = 12438590, upload-time = "2026-01-10T06:44:15.006Z" },
2198
- { url = "https://files.pythonhosted.org/packages/e9/da/a598d5cb260780cf4d255102deba35c1d072dc028c4547832f45dd3323a8/numpy-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df", size = 10596180, upload-time = "2026-01-10T06:44:17.386Z" },
2199
- { url = "https://files.pythonhosted.org/packages/de/bc/ea3f2c96fcb382311827231f911723aeff596364eb6e1b6d1d91128aa29b/numpy-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f", size = 12498774, upload-time = "2026-01-10T06:44:19.467Z" },
2200
- { url = "https://files.pythonhosted.org/packages/aa/ab/ef9d939fe4a812648c7a712610b2ca6140b0853c5efea361301006c02ae5/numpy-2.4.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0", size = 5327274, upload-time = "2026-01-10T06:44:23.189Z" },
2201
- { url = "https://files.pythonhosted.org/packages/bd/31/d381368e2a95c3b08b8cf7faac6004849e960f4a042d920337f71cef0cae/numpy-2.4.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c", size = 6648306, upload-time = "2026-01-10T06:44:25.012Z" },
2202
- { url = "https://files.pythonhosted.org/packages/c8/e5/0989b44ade47430be6323d05c23207636d67d7362a1796ccbccac6773dd2/numpy-2.4.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93", size = 14464653, upload-time = "2026-01-10T06:44:26.706Z" },
2203
- { url = "https://files.pythonhosted.org/packages/10/a7/cfbe475c35371cae1358e61f20c5f075badc18c4797ab4354140e1d283cf/numpy-2.4.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42", size = 16405144, upload-time = "2026-01-10T06:44:29.378Z" },
2204
- { url = "https://files.pythonhosted.org/packages/f8/a3/0c63fe66b534888fa5177cc7cef061541064dbe2b4b60dcc60ffaf0d2157/numpy-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01", size = 16247425, upload-time = "2026-01-10T06:44:31.721Z" },
2205
- { url = "https://files.pythonhosted.org/packages/6b/2b/55d980cfa2c93bd40ff4c290bf824d792bd41d2fe3487b07707559071760/numpy-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b", size = 18330053, upload-time = "2026-01-10T06:44:34.617Z" },
2206
- { url = "https://files.pythonhosted.org/packages/23/12/8b5fc6b9c487a09a7957188e0943c9ff08432c65e34567cabc1623b03a51/numpy-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a", size = 6152482, upload-time = "2026-01-10T06:44:36.798Z" },
2207
- { url = "https://files.pythonhosted.org/packages/00/a5/9f8ca5856b8940492fc24fbe13c1bc34d65ddf4079097cf9e53164d094e1/numpy-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2", size = 12627117, upload-time = "2026-01-10T06:44:38.828Z" },
2208
- { url = "https://files.pythonhosted.org/packages/ad/0d/eca3d962f9eef265f01a8e0d20085c6dd1f443cbffc11b6dede81fd82356/numpy-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295", size = 10667121, upload-time = "2026-01-10T06:44:41.644Z" },
2209
- { url = "https://files.pythonhosted.org/packages/1e/48/d86f97919e79314a1cdee4c832178763e6e98e623e123d0bada19e92c15a/numpy-2.4.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1", size = 16822202, upload-time = "2026-01-10T06:44:43.738Z" },
2210
- { url = "https://files.pythonhosted.org/packages/51/e9/1e62a7f77e0f37dcfb0ad6a9744e65df00242b6ea37dfafb55debcbf5b55/numpy-2.4.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344", size = 12569985, upload-time = "2026-01-10T06:44:45.945Z" },
2211
- { url = "https://files.pythonhosted.org/packages/c7/7e/914d54f0c801342306fdcdce3e994a56476f1b818c46c47fc21ae968088c/numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e", size = 5398484, upload-time = "2026-01-10T06:44:48.012Z" },
2212
- { url = "https://files.pythonhosted.org/packages/1c/d8/9570b68584e293a33474e7b5a77ca404f1dcc655e40050a600dee81d27fb/numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426", size = 6713216, upload-time = "2026-01-10T06:44:49.725Z" },
2213
- { url = "https://files.pythonhosted.org/packages/33/9b/9dd6e2db8d49eb24f86acaaa5258e5f4c8ed38209a4ee9de2d1a0ca25045/numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696", size = 14538937, upload-time = "2026-01-10T06:44:51.498Z" },
2214
- { url = "https://files.pythonhosted.org/packages/53/87/d5bd995b0f798a37105b876350d346eea5838bd8f77ea3d7a48392f3812b/numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be", size = 16479830, upload-time = "2026-01-10T06:44:53.931Z" },
2215
- { url = "https://files.pythonhosted.org/packages/5b/c7/b801bf98514b6ae6475e941ac05c58e6411dd863ea92916bfd6d510b08c1/numpy-2.4.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33", size = 12492579, upload-time = "2026-01-10T06:44:57.094Z" },
2216
- ]
2217
-
2218
2130
  [[package]]
2219
2131
  name = "nvidia-cublas-cu12"
2220
2132
  version = "12.8.4.1"
@@ -2351,21 +2263,19 @@ wheels = [
2351
2263
 
2352
2264
  [[package]]
2353
2265
  name = "opencv-python-headless"
2354
- version = "4.13.0.90"
2266
+ version = "4.12.0.88"
2355
2267
  source = { registry = "https://pypi.org/simple" }
2356
2268
  dependencies = [
2357
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
2358
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
2269
+ { name = "numpy" },
2359
2270
  ]
2271
+ sdist = { url = "https://files.pythonhosted.org/packages/a4/63/6861102ec149c3cd298f4d1ea7ce9d6adbc7529221606ff1dab991a19adb/opencv-python-headless-4.12.0.88.tar.gz", hash = "sha256:cfdc017ddf2e59b6c2f53bc12d74b6b0be7ded4ec59083ea70763921af2b6c09", size = 95379675, upload-time = "2025-07-07T09:21:06.815Z" }
2360
2272
  wheels = [
2361
- { url = "https://files.pythonhosted.org/packages/ed/76/38c4cbb5ccfce7aaf36fd9be9fc74a15c85a48ef90bfaca2049b486e10c5/opencv_python_headless-4.13.0.90-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:12a28674f215542c9bf93338de1b5bffd76996d32da9acb9e739fdb9c8bbd738", size = 46020414, upload-time = "2026-01-18T09:07:10.801Z" },
2362
- { url = "https://files.pythonhosted.org/packages/93/c5/4b40daa5003b45aa8397f160324a091ed323733e2446dc0bdf3655e77b84/opencv_python_headless-4.13.0.90-cp37-abi3-macosx_14_0_x86_64.whl", hash = "sha256:32255203040dc98803be96362e13f9e4bce20146898222d2e5c242f80de50da5", size = 32568519, upload-time = "2026-01-18T09:07:52.368Z" },
2363
- { url = "https://files.pythonhosted.org/packages/da/65/920e64a7f03cf5917cd2c6a3046293843c1a16ad89f0ed0f1c683979c9de/opencv_python_headless-4.13.0.90-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e13790342591557050157713af17a7435ac1b50c65282715093c9297fa045d8f", size = 35191272, upload-time = "2026-01-18T09:08:49.235Z" },
2364
- { url = "https://files.pythonhosted.org/packages/fc/13/af150685be342dc09bfb0824e2a280020ccf1c7fc64e15a31d9209016aa9/opencv_python_headless-4.13.0.90-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dbc1f4625e5af3a80ebdbd84380227c0f445228588f2521b11af47710caca1ba", size = 57683677, upload-time = "2026-01-18T09:10:23.588Z" },
2365
- { url = "https://files.pythonhosted.org/packages/cd/47/baab2a3b6d8da8c52e73d00207d1ed3155601c2c332ea855455b3fbc8ff4/opencv_python_headless-4.13.0.90-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:eba38bc255d0b7d1969c5bcc90a060ca2b61a3403b613872c750bfa5dfe9e03b", size = 36590019, upload-time = "2026-01-18T09:10:49.053Z" },
2366
- { url = "https://files.pythonhosted.org/packages/81/a1/facfe2801a861b424c4221d66e1281cf19735c00e07f063a337a208c11b5/opencv_python_headless-4.13.0.90-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f46b17ea0aa7e4124ca6ad71143f89233ae9557f61d2326bcdb34329a1ddf9bd", size = 62535926, upload-time = "2026-01-18T09:12:47.229Z" },
2367
- { url = "https://files.pythonhosted.org/packages/06/d2/5e9ee7512306c1caa518be929d1f44bb1c189f342f538f73bea6fb94919f/opencv_python_headless-4.13.0.90-cp37-abi3-win32.whl", hash = "sha256:96060fc57a1abb1144b0b8129e2ff3bfcdd0ccd8e8bd05bd85256ff4ed587d3b", size = 30811665, upload-time = "2026-01-18T09:13:44.517Z" },
2368
- { url = "https://files.pythonhosted.org/packages/a0/09/0a4d832448dccd03b2b1bdee70b9fc2e02c147cc7e06975e9cd729569d90/opencv_python_headless-4.13.0.90-cp37-abi3-win_amd64.whl", hash = "sha256:0e0c8c9f620802fddc4fa7f471a1d263c7b0dca16cd9e7e2f996bb8bd2128c0c", size = 40070035, upload-time = "2026-01-18T09:15:14.652Z" },
2273
+ { url = "https://files.pythonhosted.org/packages/f7/7d/414e243c5c8216a5277afd104a319cc1291c5e23f5eeef512db5629ee7f4/opencv_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:1e58d664809b3350c1123484dd441e1667cd7bed3086db1b9ea1b6f6cb20b50e", size = 37877864, upload-time = "2025-07-07T09:14:41.693Z" },
2274
+ { url = "https://files.pythonhosted.org/packages/05/14/7e162714beed1cd5e7b5eb66fcbcba2f065c51b1d9da2463024c84d2f7c0/opencv_python_headless-4.12.0.88-cp37-abi3-macosx_13_0_x86_64.whl", hash = "sha256:365bb2e486b50feffc2d07a405b953a8f3e8eaa63865bc650034e5c71e7a5154", size = 57326608, upload-time = "2025-07-07T09:14:51.885Z" },
2275
+ { url = "https://files.pythonhosted.org/packages/69/4e/116720df7f1f7f3b59abc608ca30fbec9d2b3ae810afe4e4d26483d9dfa0/opencv_python_headless-4.12.0.88-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:aeb4b13ecb8b4a0beb2668ea07928160ea7c2cd2d9b5ef571bbee6bafe9cc8d0", size = 33145800, upload-time = "2025-07-07T09:15:00.367Z" },
2276
+ { url = "https://files.pythonhosted.org/packages/89/53/e19c21e0c4eb1275c3e2c97b081103b6dfb3938172264d283a519bf728b9/opencv_python_headless-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:236c8df54a90f4d02076e6f9c1cc763d794542e886c576a6fee46ec8ff75a7a9", size = 54023419, upload-time = "2025-07-07T09:15:10.164Z" },
2277
+ { url = "https://files.pythonhosted.org/packages/bf/9c/a76fd5414de6ec9f21f763a600058a0c3e290053cea87e0275692b1375c0/opencv_python_headless-4.12.0.88-cp37-abi3-win32.whl", hash = "sha256:fde2cf5c51e4def5f2132d78e0c08f9c14783cd67356922182c6845b9af87dbd", size = 30225230, upload-time = "2025-07-07T09:15:17.045Z" },
2278
+ { url = "https://files.pythonhosted.org/packages/f2/35/0858e9e71b36948eafbc5e835874b63e515179dc3b742cbe3d76bc683439/opencv_python_headless-4.12.0.88-cp37-abi3-win_amd64.whl", hash = "sha256:86b413bdd6c6bf497832e346cd5371995de148e579b9774f8eba686dee3f5528", size = 38923559, upload-time = "2025-07-07T09:15:25.229Z" },
2369
2279
  ]
2370
2280
 
2371
2281
  [[package]]
@@ -2434,8 +2344,7 @@ name = "pandas"
2434
2344
  version = "2.3.3"
2435
2345
  source = { registry = "https://pypi.org/simple" }
2436
2346
  dependencies = [
2437
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
2438
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
2347
+ { name = "numpy" },
2439
2348
  { name = "python-dateutil" },
2440
2349
  { name = "pytz" },
2441
2350
  { name = "tzdata" },
@@ -2837,8 +2746,7 @@ name = "pycocotools"
2837
2746
  version = "2.0.11"
2838
2747
  source = { registry = "https://pypi.org/simple" }
2839
2748
  dependencies = [
2840
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
2841
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
2749
+ { name = "numpy" },
2842
2750
  ]
2843
2751
  sdist = { url = "https://files.pythonhosted.org/packages/a2/df/32354b5dda963ffdfc8f75c9acf8828ef7890723a4ed57bb3ff2dc1d6f7e/pycocotools-2.0.11.tar.gz", hash = "sha256:34254d76da85576fcaf5c1f3aa9aae16b8cb15418334ba4283b800796bd1993d", size = 25381, upload-time = "2025-12-15T22:31:46.148Z" }
2844
2752
  wheels = [
@@ -3573,7 +3481,7 @@ resolution-markers = [
3573
3481
  ]
3574
3482
  dependencies = [
3575
3483
  { name = "joblib", marker = "python_full_version < '3.11'" },
3576
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
3484
+ { name = "numpy", marker = "python_full_version < '3.11'" },
3577
3485
  { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
3578
3486
  { name = "threadpoolctl", marker = "python_full_version < '3.11'" },
3579
3487
  ]
@@ -3621,7 +3529,7 @@ resolution-markers = [
3621
3529
  ]
3622
3530
  dependencies = [
3623
3531
  { name = "joblib", marker = "python_full_version >= '3.11'" },
3624
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
3532
+ { name = "numpy", marker = "python_full_version >= '3.11'" },
3625
3533
  { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
3626
3534
  { name = "threadpoolctl", marker = "python_full_version >= '3.11'" },
3627
3535
  ]
@@ -3673,7 +3581,7 @@ resolution-markers = [
3673
3581
  "python_full_version < '3.11'",
3674
3582
  ]
3675
3583
  dependencies = [
3676
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
3584
+ { name = "numpy", marker = "python_full_version < '3.11'" },
3677
3585
  ]
3678
3586
  sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" }
3679
3587
  wheels = [
@@ -3733,7 +3641,7 @@ resolution-markers = [
3733
3641
  "python_full_version == '3.11.*'",
3734
3642
  ]
3735
3643
  dependencies = [
3736
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
3644
+ { name = "numpy", marker = "python_full_version >= '3.11'" },
3737
3645
  ]
3738
3646
  sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" }
3739
3647
  wheels = [
@@ -4107,8 +4015,7 @@ name = "torchvision"
4107
4015
  version = "0.25.0"
4108
4016
  source = { registry = "https://pypi.org/simple" }
4109
4017
  dependencies = [
4110
- { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
4111
- { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
4018
+ { name = "numpy" },
4112
4019
  { name = "pillow" },
4113
4020
  { name = "torch" },
4114
4021
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes