labelbox 3.78.2__tar.gz → 5.0.0__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 (490) hide show
  1. {labelbox-3.78.2 → labelbox-5.0.0}/CHANGELOG.md +15 -3
  2. {labelbox-3.78.2 → labelbox-5.0.0}/PKG-INFO +3 -3
  3. {labelbox-3.78.2 → labelbox-5.0.0}/pyproject.toml +7 -5
  4. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/__init__.py +53 -47
  5. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/adv_client.py +34 -28
  6. labelbox-5.0.0/src/labelbox/annotated_types.py +6 -0
  7. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/client.py +712 -484
  8. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/__init__.py +8 -2
  9. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/annotation.py +5 -2
  10. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/base_annotation.py +6 -4
  11. labelbox-5.0.0/src/labelbox/data/annotation_types/classification/__init__.py +1 -0
  12. labelbox-5.0.0/src/labelbox/data/annotation_types/classification/classification.py +76 -0
  13. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/collection.py +24 -19
  14. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/__init__.py +1 -1
  15. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/audio.py +1 -1
  16. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/base_data.py +3 -2
  17. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/conversation.py +2 -2
  18. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/dicom.py +1 -1
  19. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/document.py +1 -1
  20. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/generic_data_row_data.py +6 -5
  21. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/html.py +1 -1
  22. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/llm_prompt_creation.py +1 -1
  23. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/llm_prompt_response_creation.py +3 -2
  24. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/llm_response_creation.py +1 -1
  25. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/raster.py +46 -39
  26. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/text.py +26 -24
  27. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/tiled_image.py +203 -146
  28. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/data/video.py +32 -31
  29. labelbox-5.0.0/src/labelbox/data/annotation_types/feature.py +23 -0
  30. labelbox-5.0.0/src/labelbox/data/annotation_types/geometry/geometry.py +58 -0
  31. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/line.py +24 -20
  32. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/mask.py +26 -18
  33. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/point.py +19 -12
  34. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/polygon.py +19 -14
  35. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/rectangle.py +32 -22
  36. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/label.py +100 -47
  37. labelbox-5.0.0/src/labelbox/data/annotation_types/llm_prompt_response/__init__.py +2 -0
  38. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/llm_prompt_response/prompt.py +9 -11
  39. labelbox-5.0.0/src/labelbox/data/annotation_types/metrics/__init__.py +6 -0
  40. labelbox-5.0.0/src/labelbox/data/annotation_types/metrics/base.py +41 -0
  41. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/metrics/confusion_matrix.py +15 -10
  42. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/metrics/scalar.py +26 -18
  43. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/mmc.py +15 -4
  44. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/ner/conversation_entity.py +3 -2
  45. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/ner/document_entity.py +6 -5
  46. labelbox-5.0.0/src/labelbox/data/annotation_types/ner/text_entity.py +20 -0
  47. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/relationship.py +6 -4
  48. labelbox-5.0.0/src/labelbox/data/annotation_types/types.py +43 -0
  49. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/video.py +79 -44
  50. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/generator.py +3 -4
  51. labelbox-5.0.0/src/labelbox/data/metrics/__init__.py +5 -0
  52. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/confusion_matrix/calculation.py +106 -65
  53. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/confusion_matrix/confusion_matrix.py +43 -33
  54. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/group.py +43 -28
  55. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/iou/calculation.py +126 -73
  56. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/iou/iou.py +30 -23
  57. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/mixins.py +17 -29
  58. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/ontology.py +48 -27
  59. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/__init__.py +0 -1
  60. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/annotation.py +17 -12
  61. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/categories.py +4 -3
  62. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/converter.py +46 -32
  63. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/image.py +1 -1
  64. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/instance_dataset.py +122 -70
  65. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/panoptic_dataset.py +93 -64
  66. labelbox-5.0.0/src/labelbox/data/serialization/coco/path.py +9 -0
  67. labelbox-5.0.0/src/labelbox/data/serialization/ndjson/base.py +53 -0
  68. labelbox-5.0.0/src/labelbox/data/serialization/ndjson/classification.py +513 -0
  69. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/ndjson/converter.py +35 -26
  70. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/ndjson/label.py +233 -84
  71. labelbox-5.0.0/src/labelbox/data/serialization/ndjson/metric.py +128 -0
  72. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/ndjson/mmc.py +16 -10
  73. labelbox-5.0.0/src/labelbox/data/serialization/ndjson/objects.py +957 -0
  74. labelbox-5.0.0/src/labelbox/data/serialization/ndjson/relationship.py +55 -0
  75. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/exceptions.py +35 -16
  76. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/orm/comparison.py +27 -19
  77. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/orm/db_object.py +77 -45
  78. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/orm/model.py +54 -41
  79. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/orm/query.py +136 -78
  80. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/pagination.py +43 -37
  81. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/parser.py +3 -4
  82. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/__init__.py +1 -1
  83. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/annotation_import.py +243 -152
  84. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/asset_attachment.py +17 -14
  85. labelbox-5.0.0/src/labelbox/schema/batch.py +158 -0
  86. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/benchmark.py +9 -5
  87. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/bulk_import_request.py +327 -265
  88. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/catalog.py +69 -66
  89. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/confidence_presence_checker.py +3 -2
  90. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/create_batches_task.py +3 -3
  91. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/data_row.py +140 -107
  92. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/data_row_metadata.py +272 -219
  93. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/dataset.py +203 -228
  94. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/embedding.py +9 -6
  95. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/enums.py +16 -13
  96. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/export_filters.py +76 -66
  97. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/export_params.py +7 -4
  98. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/export_task.py +159 -108
  99. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/foundry/app.py +8 -7
  100. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/foundry/foundry_client.py +19 -11
  101. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/foundry/model.py +3 -3
  102. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/iam_integration.py +3 -3
  103. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/id_type.py +2 -1
  104. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/identifiables.py +4 -2
  105. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/internal/data_row_uploader.py +25 -14
  106. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/internal/data_row_upsert_item.py +30 -24
  107. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/internal/descriptor_file_creator.py +68 -40
  108. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/invite.py +6 -3
  109. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/label.py +8 -6
  110. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/label_score.py +2 -2
  111. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/labeling_frontend.py +4 -2
  112. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/labeling_service.py +20 -17
  113. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/labeling_service_dashboard.py +51 -32
  114. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/labeling_service_status.py +9 -9
  115. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/media_type.py +19 -12
  116. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/model.py +19 -14
  117. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/model_config.py +2 -2
  118. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/model_run.py +253 -247
  119. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/ontology.py +185 -122
  120. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/ontology_kind.py +46 -30
  121. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/organization.py +78 -42
  122. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/project.py +495 -530
  123. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/project_model_config.py +10 -6
  124. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/project_overview.py +11 -8
  125. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/project_resource_tag.py +1 -1
  126. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/resource_tag.py +1 -1
  127. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/review.py +3 -3
  128. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/role.py +6 -8
  129. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/search_filters.py +124 -72
  130. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/send_to_annotate_params.py +40 -36
  131. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/serialization.py +3 -2
  132. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/slice.py +95 -87
  133. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/task.py +89 -78
  134. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/user.py +24 -16
  135. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/user_group.py +57 -43
  136. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/webhook.py +23 -14
  137. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/types.py +1 -1
  138. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/typing_imports.py +3 -2
  139. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/utils.py +26 -17
  140. {labelbox-3.78.2 → labelbox-5.0.0}/tests/conftest.py +471 -322
  141. labelbox-5.0.0/tests/data/annotation_import/conftest.py +2743 -0
  142. labelbox-5.0.0/tests/data/annotation_import/test_annotation_import_limit.py +56 -0
  143. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_bulk_import_request.py +90 -53
  144. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_data_types.py +14 -10
  145. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_generic_data_types.py +126 -66
  146. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_label_import.py +61 -47
  147. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_mal_prediction_import.py +29 -20
  148. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_mea_prediction_import.py +145 -82
  149. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_model_run.py +64 -43
  150. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_ndjson_validation.py +80 -77
  151. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_send_to_annotate_mea.py +28 -16
  152. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_upsert_prediction_import.py +62 -39
  153. labelbox-5.0.0/tests/data/annotation_types/classification/test_classification.py +193 -0
  154. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/data/test_raster.py +9 -7
  155. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/data/test_text.py +13 -11
  156. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/data/test_video.py +10 -8
  157. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/geometry/test_line.py +4 -4
  158. labelbox-5.0.0/tests/data/annotation_types/geometry/test_mask.py +145 -0
  159. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/geometry/test_point.py +3 -3
  160. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/geometry/test_polygon.py +8 -7
  161. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/geometry/test_rectangle.py +5 -5
  162. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/test_annotation.py +38 -28
  163. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/test_collection.py +43 -30
  164. labelbox-5.0.0/tests/data/annotation_types/test_label.py +274 -0
  165. labelbox-5.0.0/tests/data/annotation_types/test_metrics.py +208 -0
  166. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/test_ner.py +14 -6
  167. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/test_tiled_image.py +43 -29
  168. labelbox-5.0.0/tests/data/annotation_types/test_video.py +20 -0
  169. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/classification_import_global_key.json +2 -2
  170. labelbox-5.0.0/tests/data/assets/ndjson/metric_import.json +10 -0
  171. labelbox-5.0.0/tests/data/assets/ndjson/metric_import_global_key.json +10 -0
  172. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/video_import.json +1 -1
  173. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/video_import_name_only.json +1 -1
  174. labelbox-5.0.0/tests/data/conftest.py +64 -0
  175. labelbox-5.0.0/tests/data/export/conftest.py +484 -0
  176. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_data_rows_streamable.py +56 -30
  177. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_dataset_streamable.py +44 -24
  178. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_embeddings_streamable.py +46 -28
  179. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_model_run_streamable.py +18 -10
  180. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_project_streamable.py +121 -87
  181. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/export/streamable/test_export_video_streamable.py +59 -49
  182. labelbox-5.0.0/tests/data/metrics/confusion_matrix/conftest.py +475 -0
  183. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/metrics/confusion_matrix/test_confusion_matrix_data_row.py +37 -26
  184. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/metrics/confusion_matrix/test_confusion_matrix_feature.py +32 -22
  185. labelbox-5.0.0/tests/data/metrics/iou/data_row/conftest.py +702 -0
  186. labelbox-5.0.0/tests/data/metrics/iou/feature/conftest.py +202 -0
  187. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/metrics/iou/feature/test_feature_iou.py +2 -1
  188. labelbox-5.0.0/tests/data/serialization/coco/test_coco.py +38 -0
  189. labelbox-5.0.0/tests/data/serialization/ndjson/test_checklist.py +338 -0
  190. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_classification.py +6 -4
  191. labelbox-5.0.0/tests/data/serialization/ndjson/test_conversation.py +155 -0
  192. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_data_gen.py +33 -23
  193. labelbox-5.0.0/tests/data/serialization/ndjson/test_dicom.py +208 -0
  194. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_document.py +33 -22
  195. labelbox-5.0.0/tests/data/serialization/ndjson/test_export_video_objects.py +618 -0
  196. labelbox-5.0.0/tests/data/serialization/ndjson/test_free_text.py +120 -0
  197. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_global_key.py +19 -14
  198. labelbox-5.0.0/tests/data/serialization/ndjson/test_image.py +107 -0
  199. labelbox-5.0.0/tests/data/serialization/ndjson/test_metric.py +38 -0
  200. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_mmc.py +13 -8
  201. labelbox-5.0.0/tests/data/serialization/ndjson/test_ndlabel_subclass_matching.py +19 -0
  202. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_nested.py +4 -3
  203. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_polyline.py +8 -5
  204. labelbox-5.0.0/tests/data/serialization/ndjson/test_radio.py +110 -0
  205. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_rectangle.py +25 -23
  206. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_relationship.py +8 -4
  207. labelbox-5.0.0/tests/data/serialization/ndjson/test_text.py +44 -0
  208. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/test_text_entity.py +8 -5
  209. labelbox-5.0.0/tests/data/serialization/ndjson/test_video.py +627 -0
  210. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/test_data_row_metadata.py +143 -149
  211. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/test_prefetch_generator.py +1 -2
  212. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/conftest.py +320 -261
  213. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/schema/test_user_group.py +12 -4
  214. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_batch.py +101 -92
  215. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_batches.py +6 -6
  216. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_chat_evaluation_ontology_project.py +61 -49
  217. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_client_errors.py +7 -6
  218. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_data_row_delete_metadata.py +141 -89
  219. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_data_rows.py +463 -392
  220. labelbox-5.0.0/tests/integration/test_data_rows_upsert.py +280 -0
  221. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_dataset.py +42 -36
  222. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_delegated_access.py +62 -46
  223. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_embedding.py +12 -19
  224. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_ephemeral.py +8 -4
  225. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_feature_schema.py +34 -36
  226. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_filtering.py +7 -6
  227. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_foundry.py +60 -43
  228. labelbox-5.0.0/tests/integration/test_global_keys.py +196 -0
  229. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_label.py +9 -7
  230. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_labeling_dashboard.py +59 -24
  231. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_labeling_frontend.py +4 -2
  232. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_labeling_parameter_overrides.py +32 -15
  233. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_labeling_service.py +26 -17
  234. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_legacy_project.py +8 -7
  235. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_model_config.py +9 -3
  236. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_offline_chat_evaluation_project.py +8 -5
  237. labelbox-5.0.0/tests/integration/test_ontology.py +327 -0
  238. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_project.py +71 -48
  239. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_project_model_config.py +39 -24
  240. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_project_set_model_setup_complete.py +15 -19
  241. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_project_setup.py +18 -14
  242. labelbox-5.0.0/tests/integration/test_prompt_response_generation_project.py +186 -0
  243. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_response_creation_project.py +12 -6
  244. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_send_to_annotate.py +23 -16
  245. labelbox-5.0.0/tests/integration/test_task.py +80 -0
  246. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_task_queue.py +20 -10
  247. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_user_and_org.py +1 -1
  248. labelbox-5.0.0/tests/integration/test_user_management.py +193 -0
  249. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_webhook.py +15 -12
  250. labelbox-5.0.0/tests/unit/conftest.py +108 -0
  251. labelbox-5.0.0/tests/unit/export_task/test_export_task.py +154 -0
  252. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/export_task/test_unit_file_converter.py +6 -5
  253. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/export_task/test_unit_file_retriever_by_line.py +21 -34
  254. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/export_task/test_unit_file_retriever_by_offset.py +14 -23
  255. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/export_task/test_unit_json_converter.py +12 -6
  256. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/schema/test_user_group.py +92 -105
  257. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_annotation_import.py +22 -26
  258. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_data_row_upsert_data.py +59 -60
  259. labelbox-5.0.0/tests/unit/test_exceptions.py +20 -0
  260. labelbox-5.0.0/tests/unit/test_label_data_type.py +64 -0
  261. labelbox-5.0.0/tests/unit/test_labeling_service_dashboard.py +75 -0
  262. labelbox-5.0.0/tests/unit/test_mal_import.py +68 -0
  263. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_ndjson_parsing.py +1 -1
  264. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_project.py +15 -9
  265. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_delete_batch_data_row_metadata.py +24 -30
  266. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_descriptor_file_creator.py +17 -18
  267. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_entity_meta.py +8 -6
  268. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_export_filters.py +24 -19
  269. labelbox-5.0.0/tests/unit/test_unit_label_import.py +46 -0
  270. labelbox-5.0.0/tests/unit/test_unit_ontology.py +275 -0
  271. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_ontology_kind.py +11 -4
  272. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_project_validate_labeling_parameter_overrides.py +10 -4
  273. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_query.py +9 -6
  274. labelbox-5.0.0/tests/unit/test_unit_search_filters.py +150 -0
  275. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_webhook.py +3 -6
  276. labelbox-5.0.0/tests/unit/test_utils.py +34 -0
  277. {labelbox-3.78.2 → labelbox-5.0.0}/tests/utils.py +3 -3
  278. labelbox-3.78.2/src/labelbox/data/annotation_types/classification/__init__.py +0 -2
  279. labelbox-3.78.2/src/labelbox/data/annotation_types/classification/classification.py +0 -117
  280. labelbox-3.78.2/src/labelbox/data/annotation_types/feature.py +0 -31
  281. labelbox-3.78.2/src/labelbox/data/annotation_types/geometry/geometry.py +0 -45
  282. labelbox-3.78.2/src/labelbox/data/annotation_types/llm_prompt_response/__init__.py +0 -2
  283. labelbox-3.78.2/src/labelbox/data/annotation_types/metrics/__init__.py +0 -2
  284. labelbox-3.78.2/src/labelbox/data/annotation_types/metrics/base.py +0 -35
  285. labelbox-3.78.2/src/labelbox/data/annotation_types/ner/text_entity.py +0 -19
  286. labelbox-3.78.2/src/labelbox/data/annotation_types/types.py +0 -50
  287. labelbox-3.78.2/src/labelbox/data/metrics/__init__.py +0 -2
  288. labelbox-3.78.2/src/labelbox/data/serialization/coco/path.py +0 -9
  289. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/__init__.py +0 -1
  290. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/classification.py +0 -135
  291. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/converter.py +0 -105
  292. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/feature.py +0 -31
  293. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/label.py +0 -251
  294. labelbox-3.78.2/src/labelbox/data/serialization/labelbox_v1/objects.py +0 -339
  295. labelbox-3.78.2/src/labelbox/data/serialization/ndjson/base.py +0 -58
  296. labelbox-3.78.2/src/labelbox/data/serialization/ndjson/classification.py +0 -424
  297. labelbox-3.78.2/src/labelbox/data/serialization/ndjson/metric.py +0 -117
  298. labelbox-3.78.2/src/labelbox/data/serialization/ndjson/objects.py +0 -784
  299. labelbox-3.78.2/src/labelbox/data/serialization/ndjson/relationship.py +0 -44
  300. labelbox-3.78.2/src/labelbox/pydantic_compat.py +0 -34
  301. labelbox-3.78.2/src/labelbox/schema/batch.py +0 -197
  302. labelbox-3.78.2/tests/data/annotation_import/conftest.py +0 -2173
  303. labelbox-3.78.2/tests/data/annotation_import/test_annotation_import_limit.py +0 -33
  304. labelbox-3.78.2/tests/data/annotation_types/classification/test_classification.py +0 -243
  305. labelbox-3.78.2/tests/data/annotation_types/geometry/test_mask.py +0 -78
  306. labelbox-3.78.2/tests/data/annotation_types/test_label.py +0 -212
  307. labelbox-3.78.2/tests/data/annotation_types/test_metrics.py +0 -204
  308. labelbox-3.78.2/tests/data/annotation_types/test_video.py +0 -19
  309. labelbox-3.78.2/tests/data/assets/ndjson/metric_import.json +0 -1
  310. labelbox-3.78.2/tests/data/assets/ndjson/metric_import_global_key.json +0 -1
  311. labelbox-3.78.2/tests/data/conftest.py +0 -49
  312. labelbox-3.78.2/tests/data/export/conftest.py +0 -507
  313. labelbox-3.78.2/tests/data/export/legacy/test_export_catalog.py +0 -19
  314. labelbox-3.78.2/tests/data/export/legacy/test_export_data_rows.py +0 -29
  315. labelbox-3.78.2/tests/data/export/legacy/test_export_dataset.py +0 -44
  316. labelbox-3.78.2/tests/data/export/legacy/test_export_model_run.py +0 -45
  317. labelbox-3.78.2/tests/data/export/legacy/test_export_project.py +0 -236
  318. labelbox-3.78.2/tests/data/export/legacy/test_export_slice.py +0 -17
  319. labelbox-3.78.2/tests/data/export/legacy/test_export_video.py +0 -244
  320. labelbox-3.78.2/tests/data/export/legacy/test_legacy_export.py +0 -243
  321. labelbox-3.78.2/tests/data/metrics/confusion_matrix/conftest.py +0 -405
  322. labelbox-3.78.2/tests/data/metrics/iou/data_row/conftest.py +0 -786
  323. labelbox-3.78.2/tests/data/metrics/iou/data_row/test_data_row_iou.py +0 -143
  324. labelbox-3.78.2/tests/data/metrics/iou/feature/conftest.py +0 -155
  325. labelbox-3.78.2/tests/data/serialization/coco/test_coco.py +0 -34
  326. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_document.py +0 -45
  327. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_image.py +0 -49
  328. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_text.py +0 -27
  329. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_tiled_image.py +0 -45
  330. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_unknown_media.py +0 -47
  331. labelbox-3.78.2/tests/data/serialization/labelbox_v1/test_video.py +0 -40
  332. labelbox-3.78.2/tests/data/serialization/ndjson/test_checklist.py +0 -285
  333. labelbox-3.78.2/tests/data/serialization/ndjson/test_conversation.py +0 -133
  334. labelbox-3.78.2/tests/data/serialization/ndjson/test_dicom.py +0 -201
  335. labelbox-3.78.2/tests/data/serialization/ndjson/test_export_video_objects.py +0 -626
  336. labelbox-3.78.2/tests/data/serialization/ndjson/test_free_text.py +0 -103
  337. labelbox-3.78.2/tests/data/serialization/ndjson/test_image.py +0 -104
  338. labelbox-3.78.2/tests/data/serialization/ndjson/test_metric.py +0 -44
  339. labelbox-3.78.2/tests/data/serialization/ndjson/test_radio.py +0 -95
  340. labelbox-3.78.2/tests/data/serialization/ndjson/test_text.py +0 -35
  341. labelbox-3.78.2/tests/data/serialization/ndjson/test_video.py +0 -506
  342. labelbox-3.78.2/tests/integration/test_data_rows_upsert.py +0 -275
  343. labelbox-3.78.2/tests/integration/test_global_keys.py +0 -206
  344. labelbox-3.78.2/tests/integration/test_ontology.py +0 -288
  345. labelbox-3.78.2/tests/integration/test_prompt_response_generation_project.py +0 -164
  346. labelbox-3.78.2/tests/integration/test_task.py +0 -70
  347. labelbox-3.78.2/tests/integration/test_user_management.py +0 -114
  348. labelbox-3.78.2/tests/unit/conftest.py +0 -135
  349. labelbox-3.78.2/tests/unit/export_task/test_export_task.py +0 -195
  350. labelbox-3.78.2/tests/unit/test_exceptions.py +0 -13
  351. labelbox-3.78.2/tests/unit/test_label_data_type.py +0 -59
  352. labelbox-3.78.2/tests/unit/test_mal_import.py +0 -75
  353. labelbox-3.78.2/tests/unit/test_unit_label_import.py +0 -61
  354. labelbox-3.78.2/tests/unit/test_unit_ontology.py +0 -267
  355. labelbox-3.78.2/tests/unit/test_unit_search_filters.py +0 -85
  356. labelbox-3.78.2/tests/unit/test_utils.py +0 -21
  357. {labelbox-3.78.2 → labelbox-5.0.0}/.gitignore +0 -0
  358. {labelbox-3.78.2 → labelbox-5.0.0}/.yapfignore +0 -0
  359. {labelbox-3.78.2 → labelbox-5.0.0}/Dockerfile +0 -0
  360. {labelbox-3.78.2 → labelbox-5.0.0}/README.md +0 -0
  361. {labelbox-3.78.2 → labelbox-5.0.0}/mypy.ini +0 -0
  362. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/__init__.py +0 -0
  363. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/geometry/__init__.py +0 -0
  364. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/annotation_types/ner/__init__.py +0 -0
  365. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/confusion_matrix/__init__.py +0 -0
  366. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/metrics/iou/__init__.py +0 -0
  367. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/coco/__init__.py +0 -0
  368. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/data/serialization/ndjson/__init__.py +0 -0
  369. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/orm/__init__.py +0 -0
  370. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/conflict_resolution_strategy.py +0 -0
  371. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/consensus_settings.py +0 -0
  372. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/foundry/__init__.py +0 -0
  373. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/identifiable.py +0 -0
  374. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/internal/datarow_upload_constants.py +0 -0
  375. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/quality_mode.py +0 -0
  376. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/queue_mode.py +0 -0
  377. {labelbox-3.78.2 → labelbox-5.0.0}/src/labelbox/schema/task_queue.py +0 -0
  378. {labelbox-3.78.2 → labelbox-5.0.0}/tests/assets/arxiv-pdf_data_99-word-token-pdfs_0801.3483-lb-textlayer.json +0 -0
  379. {labelbox-3.78.2 → labelbox-5.0.0}/tests/assets/arxiv-pdf_data_99-word-token-pdfs_0801.3483.pdf +0 -0
  380. {labelbox-3.78.2 → labelbox-5.0.0}/tests/assets/conversation-1.json +0 -0
  381. {labelbox-3.78.2 → labelbox-5.0.0}/tests/assets/loremipsum.pdf +0 -0
  382. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_import/test_model.py +0 -0
  383. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/__init__.py +0 -0
  384. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/classification/__init__.py +0 -0
  385. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/data/__init__.py +0 -0
  386. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/geometry/__init__.py +0 -0
  387. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/annotation_types/test_text.py +0 -0
  388. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000129054.jpg +0 -0
  389. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000141328.jpg +0 -0
  390. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000147498.jpg +0 -0
  391. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000184324.jpg +0 -0
  392. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000188465.jpg +0 -0
  393. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000245764.jpg +0 -0
  394. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000311303.jpg +0 -0
  395. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000343706.jpg +0 -0
  396. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000356387.jpg +0 -0
  397. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000370711.jpg +0 -0
  398. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000385029.jpg +0 -0
  399. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000393226.jpg +0 -0
  400. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000434230.jpg +0 -0
  401. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000458755.jpg +0 -0
  402. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000458768.jpg +0 -0
  403. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000462904.jpg +0 -0
  404. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000475150.jpg +0 -0
  405. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000532481.jpg +0 -0
  406. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000532493.jpg +0 -0
  407. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/images/000000546823.jpg +0 -0
  408. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/instances.json +0 -0
  409. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000129054.png +0 -0
  410. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000141328.png +0 -0
  411. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000147498.png +0 -0
  412. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000184324.png +0 -0
  413. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000188465.png +0 -0
  414. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000245764.png +0 -0
  415. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000311303.png +0 -0
  416. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000343706.png +0 -0
  417. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000356387.png +0 -0
  418. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000370711.png +0 -0
  419. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000385029.png +0 -0
  420. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000393226.png +0 -0
  421. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000434230.png +0 -0
  422. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000458755.png +0 -0
  423. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000458768.png +0 -0
  424. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000462904.png +0 -0
  425. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000475150.png +0 -0
  426. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000532481.png +0 -0
  427. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000532493.png +0 -0
  428. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/masks/000000546823.png +0 -0
  429. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/panoptic.json +0 -0
  430. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/coco/rle.json +0 -0
  431. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/highly_nested_image.json +0 -0
  432. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/image_export.json +0 -0
  433. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/pdf_export.json +0 -0
  434. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/text_export.json +0 -0
  435. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/tiled_image_export.json +0 -0
  436. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/unkown_media_type_export.json +0 -0
  437. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/labelbox_v1/video_export.json +0 -0
  438. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/line.png +0 -0
  439. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/mask.png +0 -0
  440. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/classification_import.json +0 -0
  441. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/classification_import_name_only.json +0 -0
  442. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/conversation_entity_import.json +0 -0
  443. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/conversation_entity_import_global_key.json +0 -0
  444. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/conversation_entity_without_confidence_import.json +0 -0
  445. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/custom_confusion_matrix_import.json +0 -0
  446. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/custom_scalar_import.json +0 -0
  447. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/image_import.json +0 -0
  448. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/image_import_global_key.json +0 -0
  449. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/image_import_name_only.json +0 -0
  450. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/mmc_import.json +0 -0
  451. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/nested_import.json +0 -0
  452. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/nested_import_name_only.json +0 -0
  453. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/pdf_import.json +0 -0
  454. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/pdf_import_global_key.json +0 -0
  455. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/pdf_import_name_only.json +0 -0
  456. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/polyline_import.json +0 -0
  457. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/polyline_import_global_key.json +0 -0
  458. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/polyline_without_confidence_import.json +0 -0
  459. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/rectangle_import.json +0 -0
  460. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/relationship_import.json +0 -0
  461. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/text_entity_import.json +0 -0
  462. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/text_entity_import_global_key.json +0 -0
  463. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/text_entity_without_confidence_import.json +0 -0
  464. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/ndjson/video_import_global_key.json +0 -0
  465. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/point.png +0 -0
  466. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/polygon.png +0 -0
  467. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/rectangle.png +0 -0
  468. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/assets/sample_text.txt +0 -0
  469. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/__init__.py +0 -0
  470. {labelbox-3.78.2 → labelbox-5.0.0}/tests/data/serialization/ndjson/__init__.py +0 -0
  471. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/media/bulk_conversation.json +0 -0
  472. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/media/cat.mp4 +0 -0
  473. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/media/sample_image.jpg +0 -0
  474. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/media/sample_pdf.pdf +0 -0
  475. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/snapshots/test_data_rows.test_data_row_bulk_creation_with_same_global_keys.failed_data_rows.json +0 -0
  476. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/snapshots/test_task.test_task_errors.errors.json +0 -0
  477. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/snapshots/test_task.test_task_errors.failed_data_rows.json +0 -0
  478. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/snapshots/test_task.test_task_success_json.json +0 -0
  479. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_benchmark.py +0 -0
  480. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_data_upload.py +0 -0
  481. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_dates.py +0 -0
  482. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_pagination.py +0 -0
  483. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_sorting.py +0 -0
  484. {labelbox-3.78.2 → labelbox-5.0.0}/tests/integration/test_toggle_mal.py +0 -0
  485. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_client.py +0 -0
  486. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_queue_mode.py +0 -0
  487. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_case_change.py +0 -0
  488. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_filter.py +0 -0
  489. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_identifiables.py +0 -0
  490. {labelbox-3.78.2 → labelbox-5.0.0}/tests/unit/test_unit_rand_gen.py +0 -0
@@ -1,8 +1,20 @@
1
1
  # Changelog
2
- # Version 3.78.2 (2025-01-15)
2
+ # Version 5.0.0 (2024-09-16)
3
+ ## Updated
4
+ * Set tasks_remaining_count to None LabelingServiceDashboard if labeling has not started ([#1817](https://github.com/Labelbox/labelbox-python/pull/1817))
5
+ * Improve error messaging when creating LLM project with invalid dataset id parameter([#1799](https://github.com/Labelbox/labelbox-python/pull/1799))
6
+ ## Removed
7
+ * BREAKING CHANGE SDK methods for exports v1([#1800](https://github.com/Labelbox/labelbox-python/pull/1800))
8
+ * BREAKING CHANGE Unused labelbox_v1 serialization package([#1803](https://github.com/Labelbox/labelbox-python/pull/1803))
9
+ ## Fixed
10
+ * Cuid dependencies that cause a crash if numpy is not installed ([#1807](https://github.com/Labelbox/labelbox-python/pull/1807))
11
+
12
+ # Version 4.0.0 (2024-09-10)
13
+ ## Added
14
+ * BREAKING CHANGE for pydantic V1 users: Converted SDK to use pydantic V2([#1738](https://github.com/Labelbox/labelbox-python/pull/1738))
15
+ * Automation test support for multiple sdk versions([#1792](https://github.com/Labelbox/labelbox-python/pull/1792))
3
16
  ## Fixed
4
- * Exporter encoding
5
- * NOTE: backported from v.5.2.1
17
+ * Flaky tests([#1793](https://github.com/Labelbox/labelbox-python/pull/1793))
6
18
 
7
19
  # Version 3.78.1 (2024-09-10)
8
20
  ## Fixed
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: labelbox
3
- Version: 3.78.2
3
+ Version: 5.0.0
4
4
  Summary: Labelbox Python API
5
5
  Project-URL: Homepage, https://labelbox.com/
6
6
  Project-URL: Documentation, https://labelbox-python.readthedocs.io/en/latest/
@@ -26,7 +26,7 @@ Requires-Python: >=3.8
26
26
  Requires-Dist: geojson>=3.1.0
27
27
  Requires-Dist: google-api-core>=1.22.1
28
28
  Requires-Dist: mypy==1.10.1
29
- Requires-Dist: pydantic>=1.8
29
+ Requires-Dist: pydantic>=2.0
30
30
  Requires-Dist: python-dateutil<2.10.0,>=2.8.2
31
31
  Requires-Dist: requests>=2.22.0
32
32
  Requires-Dist: strenum>=0.4.15
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "labelbox"
3
- version = "3.78.2"
3
+ version = "5.0.0"
4
4
  description = "Labelbox Python API"
5
5
  authors = [{ name = "Labelbox", email = "engineering@labelbox.com" }]
6
6
  dependencies = [
7
7
  "google-api-core>=1.22.1",
8
- "pydantic>=1.8",
8
+ "pydantic>=2.0",
9
9
  "python-dateutil>=2.8.2, <2.10.0",
10
10
  "requests>=2.22.0",
11
11
  "strenum>=0.4.15",
@@ -64,7 +64,6 @@ build-backend = "hatchling.build"
64
64
  [tool.rye]
65
65
  managed = true
66
66
  dev-dependencies = [
67
- "yapf>=0.40.2",
68
67
  "mypy>=1.9.0",
69
68
  "types-pillow>=10.2.0.20240311",
70
69
  "types-python-dateutil>=2.9.0.20240316",
@@ -72,6 +71,9 @@ dev-dependencies = [
72
71
  "types-tqdm>=4.66.0.20240106",
73
72
  ]
74
73
 
74
+ [tool.ruff]
75
+ line-length = 80
76
+
75
77
  [tool.rye.scripts]
76
78
  unit = "pytest tests/unit"
77
79
  # https://github.com/Labelbox/labelbox-python/blob/7c84fdffbc14fd1f69d2a6abdcc0087dc557fa4e/Makefile
@@ -87,9 +89,9 @@ unit = "pytest tests/unit"
87
89
  # LABELBOX_TEST_BASE_URL="http://host.docker.internal:8080" \
88
90
  integration = { cmd = "pytest tests/integration" }
89
91
  data = { cmd = "pytest tests/data" }
90
- yapf-lint = "yapf tests src -i --verbose --recursive --parallel --style \"google\""
92
+ rye-fmt-check = "rye fmt --check"
91
93
  mypy-lint = "mypy src --pretty --show-error-codes --non-interactive --install-types"
92
- lint = { chain = ["yapf-lint", "mypy-lint"] }
94
+ lint = { chain = ["mypy-lint", "rye-fmt-check"] }
93
95
  test = { chain = ["lint", "unit", "integration"] }
94
96
 
95
97
  [tool.hatch.metadata]
@@ -1,73 +1,79 @@
1
1
  name = "labelbox"
2
2
 
3
- __version__ = "3.78.2"
3
+ __version__ = "5.0.0"
4
4
 
5
5
  from labelbox.client import Client
6
+ from labelbox.schema.project import Project
7
+ from labelbox.schema.model import Model
8
+ from labelbox.schema.model_config import ModelConfig
9
+ from labelbox.schema.bulk_import_request import BulkImportRequest
6
10
  from labelbox.schema.annotation_import import (
7
- LabelImport,
8
11
  MALPredictionImport,
9
12
  MEAPredictionImport,
13
+ LabelImport,
10
14
  MEAToMALPredictionImport,
11
15
  )
12
- from labelbox.schema.asset_attachment import AssetAttachment
13
- from labelbox.schema.batch import Batch
14
- from labelbox.schema.benchmark import Benchmark
15
- from labelbox.schema.bulk_import_request import BulkImportRequest
16
- from labelbox.schema.catalog import Catalog
17
- from labelbox.schema.data_row import DataRow
18
- from labelbox.schema.data_row_metadata import (
19
- DataRowMetadata,
20
- DataRowMetadataField,
21
- DataRowMetadataOntology,
22
- DeleteDataRowMetadata,
23
- )
24
16
  from labelbox.schema.dataset import Dataset
17
+ from labelbox.schema.data_row import DataRow
18
+ from labelbox.schema.catalog import Catalog
25
19
  from labelbox.schema.enums import AnnotationImportState
20
+ from labelbox.schema.label import Label
21
+ from labelbox.schema.batch import Batch
22
+ from labelbox.schema.review import Review
23
+ from labelbox.schema.user import User
24
+ from labelbox.schema.organization import Organization
25
+ from labelbox.schema.task import Task
26
26
  from labelbox.schema.export_task import (
27
- BufferedJsonConverterOutput,
27
+ StreamType,
28
28
  ExportTask,
29
- FileConverter,
30
- FileConverterOutput,
31
29
  JsonConverter,
32
30
  JsonConverterOutput,
33
- StreamType,
31
+ FileConverter,
32
+ FileConverterOutput,
33
+ BufferedJsonConverterOutput,
34
34
  )
35
- from labelbox.schema.iam_integration import IAMIntegration
36
- from labelbox.schema.identifiable import GlobalKey, UniqueId
37
- from labelbox.schema.identifiables import DataRowIds, GlobalKeys, UniqueIds
38
- from labelbox.schema.invite import Invite, InviteLimit
39
- from labelbox.schema.label import Label
40
- from labelbox.schema.label_score import LabelScore
41
- from labelbox.schema.labeling_frontend import LabelingFrontend, LabelingFrontendOptions
42
- from labelbox.schema.labeling_service import LabelingService
43
- from labelbox.schema.labeling_service_dashboard import LabelingServiceDashboard
44
- from labelbox.schema.labeling_service_status import LabelingServiceStatus
45
- from labelbox.schema.media_type import MediaType
46
- from labelbox.schema.model import Model
47
- from labelbox.schema.model_config import ModelConfig
48
- from labelbox.schema.model_run import DataSplit, ModelRun
35
+ from labelbox.schema.labeling_frontend import (
36
+ LabelingFrontend,
37
+ LabelingFrontendOptions,
38
+ )
39
+ from labelbox.schema.asset_attachment import AssetAttachment
40
+ from labelbox.schema.webhook import Webhook
49
41
  from labelbox.schema.ontology import (
50
- Classification,
51
- FeatureSchema,
52
42
  Ontology,
53
43
  OntologyBuilder,
44
+ Classification,
54
45
  Option,
55
- PromptResponseClassification,
56
- ResponseOption,
57
46
  Tool,
47
+ FeatureSchema,
58
48
  )
59
- from labelbox.schema.ontology_kind import OntologyKind
60
- from labelbox.schema.organization import Organization
61
- from labelbox.schema.project import Project
49
+ from labelbox.schema.ontology import PromptResponseClassification
50
+ from labelbox.schema.ontology import ResponseOption
51
+ from labelbox.schema.role import Role, ProjectRole
52
+ from labelbox.schema.invite import Invite, InviteLimit
53
+ from labelbox.schema.data_row_metadata import (
54
+ DataRowMetadataOntology,
55
+ DataRowMetadataField,
56
+ DataRowMetadata,
57
+ DeleteDataRowMetadata,
58
+ )
59
+ from labelbox.schema.model_run import ModelRun, DataSplit
60
+ from labelbox.schema.benchmark import Benchmark
61
+ from labelbox.schema.iam_integration import IAMIntegration
62
+ from labelbox.schema.resource_tag import ResourceTag
62
63
  from labelbox.schema.project_model_config import ProjectModelConfig
63
- from labelbox.schema.project_overview import ProjectOverview, ProjectOverviewDetailed
64
64
  from labelbox.schema.project_resource_tag import ProjectResourceTag
65
+ from labelbox.schema.media_type import MediaType
66
+ from labelbox.schema.slice import Slice, CatalogSlice, ModelSlice
65
67
  from labelbox.schema.queue_mode import QueueMode
66
- from labelbox.schema.resource_tag import ResourceTag
67
- from labelbox.schema.review import Review
68
- from labelbox.schema.role import ProjectRole, Role
69
- from labelbox.schema.slice import CatalogSlice, ModelSlice, Slice
70
- from labelbox.schema.task import Task
71
68
  from labelbox.schema.task_queue import TaskQueue
72
- from labelbox.schema.user import User
73
- from labelbox.schema.webhook import Webhook
69
+ from labelbox.schema.label_score import LabelScore
70
+ from labelbox.schema.identifiables import UniqueIds, GlobalKeys, DataRowIds
71
+ from labelbox.schema.identifiable import UniqueId, GlobalKey
72
+ from labelbox.schema.ontology_kind import OntologyKind
73
+ from labelbox.schema.project_overview import (
74
+ ProjectOverview,
75
+ ProjectOverviewDetailed,
76
+ )
77
+ from labelbox.schema.labeling_service import LabelingService
78
+ from labelbox.schema.labeling_service_dashboard import LabelingServiceDashboard
79
+ from labelbox.schema.labeling_service_status import LabelingServiceStatus
@@ -12,7 +12,6 @@ logger = logging.getLogger(__name__)
12
12
 
13
13
 
14
14
  class AdvClient:
15
-
16
15
  def __init__(self, endpoint: str, api_key: str):
17
16
  self.endpoint = endpoint
18
17
  self.api_key = api_key
@@ -32,8 +31,9 @@ class AdvClient:
32
31
  return self._request("GET", "/adv/v1/embeddings").get("results", [])
33
32
 
34
33
  def import_vectors_from_file(self, id: str, file_path: str, callback=None):
35
- self._send_ndjson(f"/adv/v1/embeddings/{id}/_import_ndjson", file_path,
36
- callback)
34
+ self._send_ndjson(
35
+ f"/adv/v1/embeddings/{id}/_import_ndjson", file_path, callback
36
+ )
37
37
 
38
38
  def get_imported_vector_count(self, id: str) -> int:
39
39
  data = self._request("GET", f"/adv/v1/embeddings/{id}/vectors/_count")
@@ -41,38 +41,42 @@ class AdvClient:
41
41
 
42
42
  def _create_session(self) -> Session:
43
43
  session = requests.session()
44
- session.headers.update({
45
- "Authorization": f"Bearer {self.api_key}",
46
- "Content-Type": "application/json"
47
- })
44
+ session.headers.update(
45
+ {
46
+ "Authorization": f"Bearer {self.api_key}",
47
+ "Content-Type": "application/json",
48
+ }
49
+ )
48
50
  return session
49
51
 
50
- def _request(self,
51
- method: str,
52
- path: str,
53
- data: Optional[Dict[str, Any]] = None,
54
- headers: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
52
+ def _request(
53
+ self,
54
+ method: str,
55
+ path: str,
56
+ data: Optional[Dict[str, Any]] = None,
57
+ headers: Optional[Dict[str, Any]] = None,
58
+ ) -> Dict[str, Any]:
55
59
  url = f"{self.endpoint}{path}"
56
60
  requests_data = None
57
61
  if data:
58
62
  requests_data = json.dumps(data)
59
- response = self.session.request(method,
60
- url,
61
- data=requests_data,
62
- headers=headers)
63
+ response = self.session.request(
64
+ method, url, data=requests_data, headers=headers
65
+ )
63
66
  if response.status_code != requests.codes.ok:
64
- message = response.json().get('message')
67
+ message = response.json().get("message")
65
68
  if message:
66
69
  raise LabelboxError(message)
67
70
  else:
68
71
  response.raise_for_status()
69
72
  return response.json()
70
73
 
71
- def _send_ndjson(self,
72
- path: str,
73
- file_path: str,
74
- callback: Optional[Callable[[Dict[str, Any]],
75
- None]] = None):
74
+ def _send_ndjson(
75
+ self,
76
+ path: str,
77
+ file_path: str,
78
+ callback: Optional[Callable[[Dict[str, Any]], None]] = None,
79
+ ):
76
80
  """
77
81
  Sends an NDJson file in chunks.
78
82
 
@@ -87,7 +91,7 @@ class AdvClient:
87
91
  _headers = {
88
92
  "Content-Type": "application/x-ndjson",
89
93
  "X-Content-Lines": str(_count),
90
- "Content-Length": str(buffer.tell())
94
+ "Content-Length": str(buffer.tell()),
91
95
  }
92
96
  rsp = self._send_bytes(f"{self.endpoint}{path}", _buffer, _headers)
93
97
  rsp.raise_for_status()
@@ -96,7 +100,7 @@ class AdvClient:
96
100
 
97
101
  buffer = io.BytesIO()
98
102
  count = 0
99
- with open(file_path, 'rb') as fp:
103
+ with open(file_path, "rb") as fp:
100
104
  for line in fp:
101
105
  buffer.write(line)
102
106
  count += 1
@@ -107,10 +111,12 @@ class AdvClient:
107
111
  if count:
108
112
  upload_chunk(buffer, count)
109
113
 
110
- def _send_bytes(self,
111
- url: str,
112
- buffer: io.BytesIO,
113
- headers: Optional[Dict[str, Any]] = None) -> Response:
114
+ def _send_bytes(
115
+ self,
116
+ url: str,
117
+ buffer: io.BytesIO,
118
+ headers: Optional[Dict[str, Any]] = None,
119
+ ) -> Response:
114
120
  buffer.seek(0)
115
121
  return self.session.put(url, headers=headers, data=buffer)
116
122
 
@@ -0,0 +1,6 @@
1
+ from typing_extensions import Annotated
2
+
3
+ from pydantic import Field
4
+
5
+
6
+ Cuid = Annotated[str, Field(min_length=25, max_length=25)]