label-studio-sdk 1.0.8__tar.gz → 1.0.10__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.

Potentially problematic release.


This version of label-studio-sdk might be problematic. Click here for more details.

Files changed (459) hide show
  1. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/PKG-INFO +7 -5
  2. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/pyproject.toml +12 -4
  3. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/__init__.py +20 -7
  4. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
  5. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/pager_ext.py +8 -0
  6. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/client.py +91 -40
  7. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
  8. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
  9. label_studio_sdk-1.0.10/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +7 -0
  10. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
  11. label_studio_sdk-1.0.10/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +29 -0
  12. label_studio_sdk-1.0.10/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +29 -0
  13. label_studio_sdk-1.0.10/src/label_studio_sdk/annotations/__init__.py +5 -0
  14. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/annotations/client.py +278 -104
  15. label_studio_sdk-1.0.10/src/label_studio_sdk/annotations/types/__init__.py +6 -0
  16. label_studio_sdk-1.0.10/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
  17. label_studio_sdk-1.0.10/src/label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +19 -0
  18. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/base_client.py +46 -27
  19. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/client.py +1 -0
  20. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/comments/client.py +190 -44
  21. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/converter.py +56 -13
  22. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/yolo.py +1 -1
  23. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/utils.py +3 -2
  24. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/__init__.py +21 -4
  25. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/client_wrapper.py +9 -10
  26. label_studio_sdk-1.0.10/src/label_studio_sdk/core/file.py +67 -0
  27. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/http_client.py +52 -28
  28. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/jsonable_encoder.py +33 -31
  29. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/pagination.py +5 -4
  30. label_studio_sdk-1.0.10/src/label_studio_sdk/core/pydantic_utilities.py +296 -0
  31. label_studio_sdk-1.0.10/src/label_studio_sdk/core/query_encoder.py +58 -0
  32. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/request_options.py +3 -0
  33. label_studio_sdk-1.0.10/src/label_studio_sdk/core/serialization.py +272 -0
  34. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/errors/bad_request_error.py +2 -3
  35. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/azure/client.py +228 -58
  36. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +57 -0
  37. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +57 -0
  38. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/client.py +48 -18
  39. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/gcs/client.py +228 -58
  40. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +57 -0
  41. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +57 -0
  42. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/local/client.py +222 -56
  43. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/local/types/local_create_response.py +47 -0
  44. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/local/types/local_update_response.py +47 -0
  45. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/redis/client.py +228 -58
  46. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +62 -0
  47. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +62 -0
  48. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/s3/client.py +228 -58
  49. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +81 -0
  50. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +81 -0
  51. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/s3s/client.py +187 -43
  52. label_studio_sdk-1.0.10/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +20 -0
  53. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/files/client.py +172 -56
  54. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/azure/client.py +223 -53
  55. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +72 -0
  56. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +72 -0
  57. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/client.py +48 -18
  58. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/gcs/client.py +223 -53
  59. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +72 -0
  60. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +72 -0
  61. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/local/client.py +223 -53
  62. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/local/types/local_create_response.py +47 -0
  63. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/local/types/local_update_response.py +47 -0
  64. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/redis/client.py +223 -53
  65. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +62 -0
  66. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +62 -0
  67. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/s3/client.py +223 -53
  68. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +101 -0
  69. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +101 -0
  70. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/s3s/client.py +222 -52
  71. label_studio_sdk-1.0.10/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +20 -0
  72. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/control_tags.py +1 -1
  73. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/client.py +280 -78
  74. label_studio_sdk-1.0.10/src/label_studio_sdk/ml/types/ml_create_response.py +68 -0
  75. label_studio_sdk-1.0.10/src/label_studio_sdk/ml/types/ml_update_response.py +68 -0
  76. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/model_providers/client.py +173 -56
  77. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/predictions/client.py +247 -101
  78. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/projects/__init__.py +3 -0
  79. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/projects/client.py +309 -115
  80. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/projects/client_ext.py +16 -0
  81. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/exports/__init__.py +5 -0
  82. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/projects/exports/client.py +447 -296
  83. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/exports/client_ext.py +134 -0
  84. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/exports/types/__init__.py +6 -0
  85. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
  86. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
  87. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/types/projects_create_response.py +91 -0
  88. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +61 -0
  89. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/types/projects_list_response.py +23 -0
  90. label_studio_sdk-1.0.10/src/label_studio_sdk/projects/types/projects_update_response.py +86 -0
  91. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/client.py +309 -92
  92. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/indicators/client.py +67 -23
  93. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/runs/client.py +95 -40
  94. label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +32 -0
  95. label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +19 -0
  96. label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +59 -0
  97. label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +19 -0
  98. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/versions/client.py +277 -88
  99. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/tasks/client.py +263 -90
  100. label_studio_sdk-1.0.10/src/label_studio_sdk/tasks/types/tasks_list_response.py +38 -0
  101. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/__init__.py +10 -6
  102. label_studio_sdk-1.0.10/src/label_studio_sdk/types/annotation.py +107 -0
  103. label_studio_sdk-1.0.10/src/label_studio_sdk/types/annotation_filter_options.py +32 -0
  104. label_studio_sdk-1.0.10/src/label_studio_sdk/types/annotations_dm_field.py +111 -0
  105. label_studio_sdk-1.0.10/src/label_studio_sdk/types/azure_blob_export_storage.py +103 -0
  106. label_studio_sdk-1.0.10/src/label_studio_sdk/types/azure_blob_import_storage.py +104 -0
  107. label_studio_sdk-1.0.10/src/label_studio_sdk/types/base_task.py +106 -0
  108. label_studio_sdk-1.0.10/src/label_studio_sdk/types/base_task_updated_by.py +7 -0
  109. label_studio_sdk-1.0.10/src/label_studio_sdk/types/base_user.py +35 -0
  110. label_studio_sdk-1.0.10/src/label_studio_sdk/types/comment.py +30 -0
  111. label_studio_sdk-1.0.10/src/label_studio_sdk/types/comment_created_by.py +5 -0
  112. label_studio_sdk-1.0.10/src/label_studio_sdk/types/converted_format.py +26 -0
  113. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/data_manager_task_serializer.py +31 -40
  114. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
  115. label_studio_sdk-1.0.10/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +22 -0
  116. label_studio_sdk-1.0.10/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +28 -0
  117. label_studio_sdk-1.0.10/src/label_studio_sdk/types/export.py +39 -0
  118. label_studio_sdk-1.0.10/src/label_studio_sdk/types/export_format.py +25 -0
  119. label_studio_sdk-1.0.10/src/label_studio_sdk/types/export_snapshot.py +45 -0
  120. label_studio_sdk-1.0.10/src/label_studio_sdk/types/export_snapshot_status.py +5 -0
  121. label_studio_sdk-1.0.10/src/label_studio_sdk/types/file_upload.py +20 -0
  122. label_studio_sdk-1.0.10/src/label_studio_sdk/types/filter.py +43 -0
  123. label_studio_sdk-1.0.10/src/label_studio_sdk/types/filter_group.py +25 -0
  124. label_studio_sdk-1.0.10/src/label_studio_sdk/types/gcs_export_storage.py +103 -0
  125. label_studio_sdk-1.0.10/src/label_studio_sdk/types/gcs_import_storage.py +104 -0
  126. label_studio_sdk-1.0.10/src/label_studio_sdk/types/inference_run.py +34 -0
  127. label_studio_sdk-1.0.10/src/label_studio_sdk/types/inference_run_cost_estimate.py +47 -0
  128. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/inference_run_created_by.py +1 -1
  129. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/inference_run_organization.py +1 -1
  130. label_studio_sdk-1.0.10/src/label_studio_sdk/types/key_indicator_value.py +20 -0
  131. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/key_indicators.py +0 -1
  132. label_studio_sdk-1.0.10/src/label_studio_sdk/types/key_indicators_item.py +41 -0
  133. label_studio_sdk-1.0.10/src/label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +27 -0
  134. label_studio_sdk-1.0.10/src/label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +27 -0
  135. label_studio_sdk-1.0.10/src/label_studio_sdk/types/local_files_export_storage.py +88 -0
  136. label_studio_sdk-1.0.10/src/label_studio_sdk/types/local_files_import_storage.py +83 -0
  137. label_studio_sdk-1.0.10/src/label_studio_sdk/types/ml_backend.py +80 -0
  138. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/model_provider_connection.py +22 -31
  139. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
  140. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/model_provider_connection_organization.py +1 -1
  141. label_studio_sdk-1.0.10/src/label_studio_sdk/types/model_provider_connection_provider.py +7 -0
  142. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prediction.py +69 -0
  143. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/project.py +48 -55
  144. label_studio_sdk-1.0.10/src/label_studio_sdk/types/project_import.py +54 -0
  145. label_studio_sdk-1.0.10/src/label_studio_sdk/types/project_label_config.py +22 -0
  146. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt.py +71 -0
  147. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
  148. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
  149. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_created_by.py +5 -0
  150. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_organization.py +5 -0
  151. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_version.py +32 -0
  152. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/prompt_version_created_by.py +1 -1
  153. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/prompt_version_organization.py +1 -1
  154. label_studio_sdk-1.0.10/src/label_studio_sdk/types/prompt_version_provider.py +7 -0
  155. label_studio_sdk-1.0.10/src/label_studio_sdk/types/redis_export_storage.py +108 -0
  156. label_studio_sdk-1.0.10/src/label_studio_sdk/types/redis_import_storage.py +103 -0
  157. label_studio_sdk-1.0.10/src/label_studio_sdk/types/refined_prompt_response.py +54 -0
  158. label_studio_sdk-1.0.10/src/label_studio_sdk/types/s3export_storage.py +127 -0
  159. label_studio_sdk-1.0.10/src/label_studio_sdk/types/s3import_storage.py +133 -0
  160. label_studio_sdk-1.0.10/src/label_studio_sdk/types/s3s_export_storage.py +73 -0
  161. label_studio_sdk-1.0.10/src/label_studio_sdk/types/s3s_import_storage.py +122 -0
  162. label_studio_sdk-1.0.10/src/label_studio_sdk/types/serialization_option.py +26 -0
  163. label_studio_sdk-1.0.10/src/label_studio_sdk/types/serialization_options.py +35 -0
  164. label_studio_sdk-1.0.10/src/label_studio_sdk/types/task.py +156 -0
  165. label_studio_sdk-1.0.10/src/label_studio_sdk/types/task_annotators_item.py +5 -0
  166. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/task_comment_authors_item.py +1 -1
  167. label_studio_sdk-1.0.10/src/label_studio_sdk/types/task_filter_options.py +39 -0
  168. label_studio_sdk-1.0.10/src/label_studio_sdk/types/user_simple.py +27 -0
  169. label_studio_sdk-1.0.10/src/label_studio_sdk/types/view.py +45 -0
  170. label_studio_sdk-1.0.10/src/label_studio_sdk/types/webhook.py +58 -0
  171. label_studio_sdk-1.0.10/src/label_studio_sdk/types/webhook_serializer_for_update.py +58 -0
  172. label_studio_sdk-1.0.10/src/label_studio_sdk/types/workspace.py +68 -0
  173. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/users/client.py +257 -63
  174. label_studio_sdk-1.0.10/src/label_studio_sdk/users/types/users_get_token_response.py +26 -0
  175. label_studio_sdk-1.0.10/src/label_studio_sdk/users/types/users_reset_token_response.py +26 -0
  176. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/version.py +0 -1
  177. label_studio_sdk-1.0.10/src/label_studio_sdk/versions/__init__.py +5 -0
  178. label_studio_sdk-1.0.10/src/label_studio_sdk/versions/client.py +112 -0
  179. label_studio_sdk-1.0.10/src/label_studio_sdk/versions/types/__init__.py +6 -0
  180. label_studio_sdk-1.0.10/src/label_studio_sdk/versions/types/versions_get_response.py +73 -0
  181. label_studio_sdk-1.0.10/src/label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
  182. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/client.py +219 -52
  183. label_studio_sdk-1.0.10/src/label_studio_sdk/views/types/views_create_request_data.py +33 -0
  184. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
  185. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
  186. label_studio_sdk-1.0.10/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +7 -0
  187. label_studio_sdk-1.0.10/src/label_studio_sdk/views/types/views_update_request_data.py +33 -0
  188. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
  189. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
  190. label_studio_sdk-1.0.10/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +7 -0
  191. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/webhooks/client.py +191 -61
  192. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/workspaces/client.py +164 -41
  193. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/workspaces/members/client.py +109 -31
  194. label_studio_sdk-1.0.10/src/label_studio_sdk/workspaces/members/types/members_create_response.py +22 -0
  195. label_studio_sdk-1.0.10/src/label_studio_sdk/workspaces/members/types/members_list_response_item.py +22 -0
  196. label_studio_sdk-1.0.8/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +0 -5
  197. label_studio_sdk-1.0.8/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +0 -39
  198. label_studio_sdk-1.0.8/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +0 -39
  199. label_studio_sdk-1.0.8/src/label_studio_sdk/annotations/__init__.py +0 -5
  200. label_studio_sdk-1.0.8/src/label_studio_sdk/annotations/types/__init__.py +0 -5
  201. label_studio_sdk-1.0.8/src/label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +0 -29
  202. label_studio_sdk-1.0.8/src/label_studio_sdk/core/file.py +0 -38
  203. label_studio_sdk-1.0.8/src/label_studio_sdk/core/pydantic_utilities.py +0 -28
  204. label_studio_sdk-1.0.8/src/label_studio_sdk/core/query_encoder.py +0 -33
  205. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -67
  206. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -67
  207. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -67
  208. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -67
  209. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/local/types/local_create_response.py +0 -57
  210. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/local/types/local_update_response.py +0 -57
  211. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -72
  212. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -72
  213. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -89
  214. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -89
  215. label_studio_sdk-1.0.8/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -30
  216. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -82
  217. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -82
  218. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -82
  219. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -82
  220. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/local/types/local_create_response.py +0 -57
  221. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/local/types/local_update_response.py +0 -57
  222. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -72
  223. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -72
  224. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +0 -109
  225. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +0 -109
  226. label_studio_sdk-1.0.8/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -30
  227. label_studio_sdk-1.0.8/src/label_studio_sdk/ml/types/ml_create_response.py +0 -78
  228. label_studio_sdk-1.0.8/src/label_studio_sdk/ml/types/ml_update_response.py +0 -78
  229. label_studio_sdk-1.0.8/src/label_studio_sdk/projects/types/projects_create_response.py +0 -96
  230. label_studio_sdk-1.0.8/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -71
  231. label_studio_sdk-1.0.8/src/label_studio_sdk/projects/types/projects_list_response.py +0 -33
  232. label_studio_sdk-1.0.8/src/label_studio_sdk/projects/types/projects_update_response.py +0 -96
  233. label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -42
  234. label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +0 -29
  235. label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -62
  236. label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +0 -29
  237. label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/versions/__init__.py +0 -2
  238. label_studio_sdk-1.0.8/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -48
  239. label_studio_sdk-1.0.8/src/label_studio_sdk/types/annotation.py +0 -116
  240. label_studio_sdk-1.0.8/src/label_studio_sdk/types/annotation_filter_options.py +0 -42
  241. label_studio_sdk-1.0.8/src/label_studio_sdk/types/annotations_dm_field.py +0 -120
  242. label_studio_sdk-1.0.8/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -112
  243. label_studio_sdk-1.0.8/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -113
  244. label_studio_sdk-1.0.8/src/label_studio_sdk/types/base_task.py +0 -115
  245. label_studio_sdk-1.0.8/src/label_studio_sdk/types/base_task_updated_by.py +0 -5
  246. label_studio_sdk-1.0.8/src/label_studio_sdk/types/base_user.py +0 -42
  247. label_studio_sdk-1.0.8/src/label_studio_sdk/types/comment.py +0 -39
  248. label_studio_sdk-1.0.8/src/label_studio_sdk/types/comment_created_by.py +0 -5
  249. label_studio_sdk-1.0.8/src/label_studio_sdk/types/converted_format.py +0 -36
  250. label_studio_sdk-1.0.8/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +0 -31
  251. label_studio_sdk-1.0.8/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +0 -37
  252. label_studio_sdk-1.0.8/src/label_studio_sdk/types/export.py +0 -48
  253. label_studio_sdk-1.0.8/src/label_studio_sdk/types/export_convert.py +0 -32
  254. label_studio_sdk-1.0.8/src/label_studio_sdk/types/export_create.py +0 -54
  255. label_studio_sdk-1.0.8/src/label_studio_sdk/types/export_create_status.py +0 -5
  256. label_studio_sdk-1.0.8/src/label_studio_sdk/types/file_upload.py +0 -30
  257. label_studio_sdk-1.0.8/src/label_studio_sdk/types/filter.py +0 -53
  258. label_studio_sdk-1.0.8/src/label_studio_sdk/types/filter_group.py +0 -35
  259. label_studio_sdk-1.0.8/src/label_studio_sdk/types/gcs_export_storage.py +0 -112
  260. label_studio_sdk-1.0.8/src/label_studio_sdk/types/gcs_import_storage.py +0 -113
  261. label_studio_sdk-1.0.8/src/label_studio_sdk/types/inference_run.py +0 -43
  262. label_studio_sdk-1.0.8/src/label_studio_sdk/types/inference_run_cost_estimate.py +0 -57
  263. label_studio_sdk-1.0.8/src/label_studio_sdk/types/key_indicator_value.py +0 -30
  264. label_studio_sdk-1.0.8/src/label_studio_sdk/types/key_indicators_item.py +0 -51
  265. label_studio_sdk-1.0.8/src/label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +0 -37
  266. label_studio_sdk-1.0.8/src/label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +0 -37
  267. label_studio_sdk-1.0.8/src/label_studio_sdk/types/local_files_export_storage.py +0 -97
  268. label_studio_sdk-1.0.8/src/label_studio_sdk/types/local_files_import_storage.py +0 -92
  269. label_studio_sdk-1.0.8/src/label_studio_sdk/types/ml_backend.py +0 -89
  270. label_studio_sdk-1.0.8/src/label_studio_sdk/types/model_provider_connection_provider.py +0 -5
  271. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prediction.py +0 -78
  272. label_studio_sdk-1.0.8/src/label_studio_sdk/types/project_import.py +0 -63
  273. label_studio_sdk-1.0.8/src/label_studio_sdk/types/project_label_config.py +0 -32
  274. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prompt.py +0 -79
  275. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prompt_created_by.py +0 -5
  276. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prompt_organization.py +0 -5
  277. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prompt_version.py +0 -41
  278. label_studio_sdk-1.0.8/src/label_studio_sdk/types/prompt_version_provider.py +0 -5
  279. label_studio_sdk-1.0.8/src/label_studio_sdk/types/redis_export_storage.py +0 -117
  280. label_studio_sdk-1.0.8/src/label_studio_sdk/types/redis_import_storage.py +0 -112
  281. label_studio_sdk-1.0.8/src/label_studio_sdk/types/refined_prompt_response.py +0 -64
  282. label_studio_sdk-1.0.8/src/label_studio_sdk/types/s3export_storage.py +0 -134
  283. label_studio_sdk-1.0.8/src/label_studio_sdk/types/s3import_storage.py +0 -140
  284. label_studio_sdk-1.0.8/src/label_studio_sdk/types/s3s_export_storage.py +0 -80
  285. label_studio_sdk-1.0.8/src/label_studio_sdk/types/s3s_import_storage.py +0 -129
  286. label_studio_sdk-1.0.8/src/label_studio_sdk/types/serialization_option.py +0 -36
  287. label_studio_sdk-1.0.8/src/label_studio_sdk/types/serialization_options.py +0 -45
  288. label_studio_sdk-1.0.8/src/label_studio_sdk/types/task.py +0 -159
  289. label_studio_sdk-1.0.8/src/label_studio_sdk/types/task_annotators_item.py +0 -5
  290. label_studio_sdk-1.0.8/src/label_studio_sdk/types/task_filter_options.py +0 -49
  291. label_studio_sdk-1.0.8/src/label_studio_sdk/types/user_simple.py +0 -37
  292. label_studio_sdk-1.0.8/src/label_studio_sdk/types/view.py +0 -55
  293. label_studio_sdk-1.0.8/src/label_studio_sdk/types/webhook.py +0 -67
  294. label_studio_sdk-1.0.8/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -67
  295. label_studio_sdk-1.0.8/src/label_studio_sdk/types/workspace.py +0 -77
  296. label_studio_sdk-1.0.8/src/label_studio_sdk/users/types/users_get_token_response.py +0 -36
  297. label_studio_sdk-1.0.8/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -36
  298. label_studio_sdk-1.0.8/src/label_studio_sdk/views/types/views_create_request_data.py +0 -43
  299. label_studio_sdk-1.0.8/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +0 -5
  300. label_studio_sdk-1.0.8/src/label_studio_sdk/views/types/views_update_request_data.py +0 -43
  301. label_studio_sdk-1.0.8/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +0 -5
  302. label_studio_sdk-1.0.8/src/label_studio_sdk/workspaces/members/types/members_create_response.py +0 -32
  303. label_studio_sdk-1.0.8/src/label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -32
  304. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/LICENSE +0 -0
  305. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/README.md +0 -0
  306. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/__init__.py +0 -0
  307. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/eval/categorical.py +0 -0
  308. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
  309. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
  310. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +0 -0
  311. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
  312. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
  313. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +0 -0
  314. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
  315. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
  316. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
  317. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
  318. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
  319. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
  320. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
  321. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/__init__.py +0 -0
  322. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/client.py +0 -0
  323. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
  324. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/project.py +0 -0
  325. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +0 -0
  326. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/users.py +0 -0
  327. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/utils.py +0 -0
  328. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
  329. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/__init__.py +0 -0
  330. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/__init__.py +0 -0
  331. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +0 -0
  332. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +0 -0
  333. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +0 -0
  334. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_id.py +0 -0
  335. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +0 -0
  336. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/comments/__init__.py +0 -0
  337. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/__init__.py +0 -0
  338. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/audio.py +0 -0
  339. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/brush.py +0 -0
  340. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
  341. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/exports/csv.py +0 -0
  342. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
  343. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/funsd.py +0 -0
  344. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
  345. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/coco.py +0 -0
  346. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/colors.py +0 -0
  347. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
  348. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
  349. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/converter/main.py +0 -0
  350. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/api_error.py +0 -0
  351. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/datetime_utils.py +0 -0
  352. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
  353. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/data_manager.py +0 -0
  354. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/environment.py +0 -0
  355. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/errors/__init__.py +0 -0
  356. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
  357. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/__init__.py +0 -0
  358. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
  359. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
  360. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
  361. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
  362. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
  363. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
  364. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
  365. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
  366. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
  367. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
  368. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/s3s/__init__.py +0 -0
  369. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
  370. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/files/__init__.py +0 -0
  371. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/__init__.py +0 -0
  372. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
  373. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
  374. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
  375. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
  376. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
  377. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
  378. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
  379. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
  380. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
  381. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
  382. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/s3s/__init__.py +0 -0
  383. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
  384. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/__init__.py +0 -0
  385. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/base.py +0 -0
  386. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/create.py +0 -0
  387. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/data_examples.json +0 -0
  388. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/interface.py +0 -0
  389. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/label_tags.py +0 -0
  390. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/object_tags.py +0 -0
  391. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/objects.py +0 -0
  392. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/label_interface/region.py +0 -0
  393. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/__init__.py +0 -0
  394. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/types/__init__.py +0 -0
  395. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
  396. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
  397. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
  398. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
  399. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/model_providers/__init__.py +0 -0
  400. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/predictions/__init__.py +0 -0
  401. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/projects/types/__init__.py +0 -0
  402. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/__init__.py +0 -0
  403. {label_studio_sdk-1.0.8/src/label_studio_sdk/projects/exports → label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/indicators}/__init__.py +0 -0
  404. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/runs/__init__.py +0 -0
  405. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/runs/types/__init__.py +0 -0
  406. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/runs/types/runs_list_request_project_subset.py +0 -0
  407. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/prompts/types/__init__.py +0 -0
  408. {label_studio_sdk-1.0.8/src/label_studio_sdk/prompts/indicators → label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/versions}/__init__.py +0 -0
  409. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/py.typed +0 -0
  410. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/tasks/__init__.py +0 -0
  411. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/tasks/client_ext.py +0 -0
  412. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
  413. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
  414. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
  415. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/annotations_dm_field_last_action.py +0 -0
  416. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
  417. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
  418. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/base_task_file_upload.py +0 -0
  419. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/converted_format_status.py +0 -0
  420. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/export_status.py +0 -0
  421. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
  422. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
  423. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/inference_run_project_subset.py +0 -0
  424. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/inference_run_status.py +0 -0
  425. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
  426. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
  427. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
  428. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
  429. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/model_provider_connection_budget_reset_period.py +0 -0
  430. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/model_provider_connection_scope.py +0 -0
  431. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/project_import_status.py +0 -0
  432. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/project_sampling.py +0 -0
  433. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
  434. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
  435. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
  436. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -0
  437. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
  438. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
  439. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/s3s_import_storage_status.py +0 -0
  440. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
  441. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
  442. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/users/__init__.py +0 -0
  443. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/users/types/__init__.py +0 -0
  444. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/__init__.py +0 -0
  445. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/__init__.py +0 -0
  446. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +0 -0
  447. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +0 -0
  448. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +0 -0
  449. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -0
  450. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +0 -0
  451. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +0 -0
  452. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +0 -0
  453. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -0
  454. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/webhooks/__init__.py +0 -0
  455. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
  456. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
  457. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/workspaces/__init__.py +0 -0
  458. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/workspaces/members/__init__.py +0 -0
  459. {label_studio_sdk-1.0.8 → label_studio_sdk-1.0.10}/src/label_studio_sdk/workspaces/members/types/__init__.py +0 -0
@@ -1,8 +1,8 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: label-studio-sdk
3
- Version: 1.0.8
3
+ Version: 1.0.10
4
4
  Summary:
5
- Requires-Python: >=3.8,<4.0
5
+ Requires-Python: >=3.9,<4
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: Operating System :: MacOS
8
8
  Classifier: Operating System :: Microsoft :: Windows
@@ -11,12 +11,12 @@ Classifier: Operating System :: POSIX
11
11
  Classifier: Operating System :: POSIX :: Linux
12
12
  Classifier: Programming Language :: Python
13
13
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.8
15
14
  Classifier: Programming Language :: Python :: 3.9
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.8
20
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
21
  Classifier: Typing :: Typed
22
22
  Requires-Dist: Pillow (>=10.0.1)
@@ -28,14 +28,16 @@ Requires-Dist: jsf (>=0.11.2,<0.12.0)
28
28
  Requires-Dist: jsonschema (>=4.23.0)
29
29
  Requires-Dist: lxml (>=4.2.5)
30
30
  Requires-Dist: nltk (>=3.9.1,<4.0.0)
31
- Requires-Dist: numpy (<2.0.0)
31
+ Requires-Dist: numpy (>=1.26.4,<2.0.0)
32
32
  Requires-Dist: pandas (>=0.24.0)
33
33
  Requires-Dist: pydantic (>=1.9.2)
34
+ Requires-Dist: pydantic-core (>=2.18.2,<3.0.0)
34
35
  Requires-Dist: requests (>=2.22.0)
35
36
  Requires-Dist: requests-mock (==1.12.1)
36
37
  Requires-Dist: typing_extensions (>=4.0.0)
37
38
  Requires-Dist: ujson (>=5.8.0)
38
39
  Requires-Dist: xmljson (==0.2.1)
40
+ Project-URL: Repository, https://github.com/HumanSignal/label-studio-sdk
39
41
  Description-Content-Type: text/markdown
40
42
 
41
43
  # Label Studio Python Library
@@ -1,6 +1,9 @@
1
+ [project]
2
+ name = "label-studio-sdk"
3
+
1
4
  [tool.poetry]
2
5
  name = "label-studio-sdk"
3
- version = "1.0.8"
6
+ version = "1.0.10"
4
7
  description = ""
5
8
  readme = "README.md"
6
9
  authors = []
@@ -31,31 +34,33 @@ packages = [
31
34
  Repository = 'https://github.com/HumanSignal/label-studio-sdk'
32
35
 
33
36
  [tool.poetry.dependencies]
34
- python = "^3.8"
37
+ python = ">=3.9,<4"
35
38
  Pillow = ">=10.0.1"
36
39
  appdirs = ">=1.4.3"
37
40
  datamodel-code-generator = "0.26.1"
38
41
  httpx = ">=0.21.2"
39
42
  ijson = ">=3.2.3"
43
+ jsf = "^0.11.2"
40
44
  jsonschema = ">=4.23.0"
41
45
  lxml = ">=4.2.5"
42
46
  nltk = "^3.9.1"
43
- numpy = "<2.0.0"
47
+ numpy = ">=1.26.4,<2.0.0"
44
48
  pandas = ">=0.24.0"
45
49
  pydantic = ">= 1.9.2"
50
+ pydantic-core = "^2.18.2"
46
51
  requests = ">=2.22.0"
47
52
  requests-mock = "1.12.1"
48
53
  typing_extensions = ">= 4.0.0"
49
54
  ujson = ">=5.8.0"
50
55
  xmljson = "0.2.1"
51
56
 
52
- jsf = "^0.11.2"
53
57
  [tool.poetry.dev-dependencies]
54
58
  mypy = "1.0.1"
55
59
  pytest = "^7.4.0"
56
60
  pytest-asyncio = "^0.23.5"
57
61
  python-dateutil = "^2.9.0"
58
62
  types-python-dateutil = "^2.9.0.20240316"
63
+ ruff = "^0.5.6"
59
64
 
60
65
  [tool.pytest.ini_options]
61
66
  testpaths = [ "tests" ]
@@ -64,6 +69,9 @@ asyncio_mode = "auto"
64
69
  [tool.mypy]
65
70
  plugins = ["pydantic.mypy"]
66
71
 
72
+ [tool.ruff]
73
+ line-length = 120
74
+
67
75
 
68
76
  [build-system]
69
77
  requires = ["poetry-core"]
@@ -23,9 +23,9 @@ from .types import (
23
23
  DataManagerTaskSerializerDraftsItem,
24
24
  DataManagerTaskSerializerPredictionsItem,
25
25
  Export,
26
- ExportConvert,
27
- ExportCreate,
28
- ExportCreateStatus,
26
+ ExportFormat,
27
+ ExportSnapshot,
28
+ ExportSnapshotStatus,
29
29
  ExportStatus,
30
30
  FileUpload,
31
31
  Filter,
@@ -66,6 +66,8 @@ from .types import (
66
66
  ProjectSampling,
67
67
  ProjectSkipQueue,
68
68
  Prompt,
69
+ PromptAssociatedProjectsItem,
70
+ PromptAssociatedProjectsItemId,
69
71
  PromptCreatedBy,
70
72
  PromptOrganization,
71
73
  PromptVersion,
@@ -114,6 +116,7 @@ from . import (
114
116
  prompts,
115
117
  tasks,
116
118
  users,
119
+ versions,
117
120
  views,
118
121
  webhooks,
119
122
  workspaces,
@@ -132,7 +135,8 @@ from .actions import (
132
135
  ActionsCreateRequestSelectedItemsExcluded,
133
136
  ActionsCreateRequestSelectedItemsIncluded,
134
137
  )
135
- from .annotations import AnnotationsCreateBulkResponseItem
138
+ from .annotations import AnnotationsCreateBulkRequestSelectedItems, AnnotationsCreateBulkResponseItem
139
+ from .client import AsyncLabelStudio, LabelStudio
136
140
  from .environment import LabelStudioEnvironment
137
141
  from .export_storage import ExportStorageListTypesResponseItem
138
142
  from .import_storage import ImportStorageListTypesResponseItem
@@ -154,6 +158,7 @@ from .prompts import (
154
158
  from .tasks import TasksListRequestFields, TasksListResponse
155
159
  from .users import UsersGetTokenResponse, UsersResetTokenResponse
156
160
  from .version import __version__
161
+ from .versions import VersionsGetResponse, VersionsGetResponseEdition
157
162
  from .views import (
158
163
  ViewsCreateRequestData,
159
164
  ViewsCreateRequestDataFilters,
@@ -189,9 +194,11 @@ __all__ = [
189
194
  "Annotation",
190
195
  "AnnotationFilterOptions",
191
196
  "AnnotationLastAction",
197
+ "AnnotationsCreateBulkRequestSelectedItems",
192
198
  "AnnotationsCreateBulkResponseItem",
193
199
  "AnnotationsDmField",
194
200
  "AnnotationsDmFieldLastAction",
201
+ "AsyncLabelStudio",
195
202
  "AzureBlobExportStorage",
196
203
  "AzureBlobExportStorageStatus",
197
204
  "AzureBlobImportStorage",
@@ -211,9 +218,9 @@ __all__ = [
211
218
  "DataManagerTaskSerializerDraftsItem",
212
219
  "DataManagerTaskSerializerPredictionsItem",
213
220
  "Export",
214
- "ExportConvert",
215
- "ExportCreate",
216
- "ExportCreateStatus",
221
+ "ExportFormat",
222
+ "ExportSnapshot",
223
+ "ExportSnapshotStatus",
217
224
  "ExportStatus",
218
225
  "ExportStorageListTypesResponseItem",
219
226
  "FileUpload",
@@ -236,6 +243,7 @@ __all__ = [
236
243
  "KeyIndicatorsItem",
237
244
  "KeyIndicatorsItemAdditionalKpisItem",
238
245
  "KeyIndicatorsItemExtraKpisItem",
246
+ "LabelStudio",
239
247
  "LabelStudioEnvironment",
240
248
  "LocalFilesExportStorage",
241
249
  "LocalFilesExportStorageStatus",
@@ -268,6 +276,8 @@ __all__ = [
268
276
  "ProjectsListResponse",
269
277
  "ProjectsUpdateResponse",
270
278
  "Prompt",
279
+ "PromptAssociatedProjectsItem",
280
+ "PromptAssociatedProjectsItemId",
271
281
  "PromptCreatedBy",
272
282
  "PromptOrganization",
273
283
  "PromptVersion",
@@ -302,6 +312,8 @@ __all__ = [
302
312
  "UserSimple",
303
313
  "UsersGetTokenResponse",
304
314
  "UsersResetTokenResponse",
315
+ "VersionsGetResponse",
316
+ "VersionsGetResponseEdition",
305
317
  "View",
306
318
  "ViewsCreateRequestData",
307
319
  "ViewsCreateRequestDataFilters",
@@ -339,6 +351,7 @@ __all__ = [
339
351
  "prompts",
340
352
  "tasks",
341
353
  "users",
354
+ "versions",
342
355
  "views",
343
356
  "webhooks",
344
357
  "workspaces",
@@ -37,6 +37,17 @@ def get_cache_dir():
37
37
  return cache_dir
38
38
 
39
39
 
40
+ def safe_build_path(base_dir: str, user_path: str) -> str:
41
+ combined_path = os.path.join(base_dir, user_path)
42
+ absolute_path = os.path.abspath(combined_path)
43
+ base_dir_abs = os.path.abspath(base_dir)
44
+
45
+ if os.path.commonpath([absolute_path, base_dir_abs]) != base_dir_abs:
46
+ raise ValueError(f"Invalid path: {user_path}")
47
+
48
+ return absolute_path
49
+
50
+
40
51
  def get_local_path(
41
52
  url,
42
53
  cache_dir=None,
@@ -103,7 +114,7 @@ def get_local_path(
103
114
  # instead of downloading them from LS instance
104
115
  if is_local_storage_file:
105
116
  filepath = url.split("?d=")[1]
106
- filepath = os.path.join(LOCAL_FILES_DOCUMENT_ROOT, filepath)
117
+ filepath = safe_build_path(LOCAL_FILES_DOCUMENT_ROOT, filepath)
107
118
  if os.path.exists(filepath):
108
119
  logger.debug(
109
120
  f"Local Storage file path exists locally, use it as a local file: {filepath}"
@@ -124,9 +135,9 @@ def get_local_path(
124
135
  if is_uploaded_file and os.path.exists(image_dir):
125
136
  project_id = url.split("/")[-2] # To retrieve project_id
126
137
  filepath = os.path.join(image_dir, project_id, os.path.basename(url))
127
- if cache_dir and download_resources:
128
- shutil.copy(filepath, cache_dir)
129
138
  if os.path.exists(filepath):
139
+ if cache_dir and download_resources:
140
+ shutil.copy(filepath, cache_dir)
130
141
  logger.debug(f"Uploaded file: Path exists in image_dir: {filepath}")
131
142
  return filepath
132
143
 
@@ -202,7 +213,7 @@ def download_and_cache(
202
213
  filepath = os.path.join(cache_dir, url_hash + "__" + url_filename)
203
214
 
204
215
  if not os.path.exists(filepath):
205
- logger.info("Download {url} to {filepath}".format(url=url, filepath=filepath))
216
+ logger.info("Download {url} to {filepath}. download_resources: {download_resources}".format(url=url, filepath=filepath, download_resources=download_resources))
206
217
  if download_resources:
207
218
  headers = {
208
219
  # avoid requests.exceptions.HTTPError: 403 Client Error: Forbidden. Please comply with the User-Agent policy:
@@ -227,6 +238,7 @@ def download_and_cache(
227
238
  raise e
228
239
  with io.open(filepath, mode="wb") as fout:
229
240
  fout.write(r.content)
241
+ logger.info(f"File downloaded to {filepath}")
230
242
  return filepath
231
243
 
232
244
 
@@ -47,3 +47,11 @@ class AsyncPagerExt(AsyncPager, typing.Generic[T]):
47
47
  if exc.status_code == 404:
48
48
  return
49
49
  raise
50
+
51
+ async def __anext__(self) -> T:
52
+ try:
53
+ return await super().__anext__()
54
+ except ApiError as exc:
55
+ if exc.status_code == 404:
56
+ raise StopAsyncIteration
57
+ raise
@@ -1,15 +1,16 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
+ from ..core.client_wrapper import SyncClientWrapper
5
+ from ..core.request_options import RequestOptions
4
6
  from json.decoder import JSONDecodeError
5
-
6
7
  from ..core.api_error import ApiError
7
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
- from ..core.request_options import RequestOptions
9
- from .types.actions_create_request_filters import ActionsCreateRequestFilters
10
8
  from .types.actions_create_request_id import ActionsCreateRequestId
11
- from .types.actions_create_request_ordering_item import ActionsCreateRequestOrderingItem
9
+ from .types.actions_create_request_filters import ActionsCreateRequestFilters
12
10
  from .types.actions_create_request_selected_items import ActionsCreateRequestSelectedItems
11
+ from .types.actions_create_request_ordering_item import ActionsCreateRequestOrderingItem
12
+ from ..core.serialization import convert_and_respect_annotation_metadata
13
+ from ..core.client_wrapper import AsyncClientWrapper
13
14
 
14
15
  # this is used as the default value for optional parameters
15
16
  OMIT = typing.cast(typing.Any, ...)
@@ -34,7 +35,7 @@ class ActionsClient:
34
35
 
35
36
  Examples
36
37
  --------
37
- from label_studio_sdk.client import LabelStudio
38
+ from label_studio_sdk import LabelStudio
38
39
 
39
40
  client = LabelStudio(
40
41
  api_key="YOUR_API_KEY",
@@ -42,7 +43,9 @@ class ActionsClient:
42
43
  client.actions.list()
43
44
  """
44
45
  _response = self._client_wrapper.httpx_client.request(
45
- "api/dm/actions/", method="GET", request_options=request_options
46
+ "api/dm/actions/",
47
+ method="GET",
48
+ request_options=request_options,
46
49
  )
47
50
  try:
48
51
  if 200 <= _response.status_code < 300:
@@ -61,7 +64,7 @@ class ActionsClient:
61
64
  filters: typing.Optional[ActionsCreateRequestFilters] = OMIT,
62
65
  selected_items: typing.Optional[ActionsCreateRequestSelectedItems] = OMIT,
63
66
  ordering: typing.Optional[typing.Sequence[ActionsCreateRequestOrderingItem]] = OMIT,
64
- request_options: typing.Optional[RequestOptions] = None
67
+ request_options: typing.Optional[RequestOptions] = None,
65
68
  ) -> None:
66
69
  """
67
70
  Perform a Data Manager action with the selected tasks and filters. Note: More complex actions require additional parameters in the request body. Call `GET api/actions?project=<id>` to explore them. <br>Example: `GET api/actions?id=delete_tasks&project=1`
@@ -95,12 +98,12 @@ class ActionsClient:
95
98
 
96
99
  Examples
97
100
  --------
98
- from label_studio_sdk import (
101
+ from label_studio_sdk import LabelStudio
102
+ from label_studio_sdk.actions import (
99
103
  ActionsCreateRequestFilters,
100
104
  ActionsCreateRequestFiltersItemsItem,
101
105
  ActionsCreateRequestSelectedItemsExcluded,
102
106
  )
103
- from label_studio_sdk.client import LabelStudio
104
107
 
105
108
  client = LabelStudio(
106
109
  api_key="YOUR_API_KEY",
@@ -129,8 +132,23 @@ class ActionsClient:
129
132
  _response = self._client_wrapper.httpx_client.request(
130
133
  "api/dm/actions/",
131
134
  method="POST",
132
- params={"id": id, "project": project, "view": view},
133
- json={"filters": filters, "selectedItems": selected_items, "ordering": ordering},
135
+ params={
136
+ "id": id,
137
+ "project": project,
138
+ "view": view,
139
+ },
140
+ json={
141
+ "filters": convert_and_respect_annotation_metadata(
142
+ object_=filters, annotation=ActionsCreateRequestFilters, direction="write"
143
+ ),
144
+ "selectedItems": convert_and_respect_annotation_metadata(
145
+ object_=selected_items, annotation=ActionsCreateRequestSelectedItems, direction="write"
146
+ ),
147
+ "ordering": ordering,
148
+ },
149
+ headers={
150
+ "content-type": "application/json",
151
+ },
134
152
  request_options=request_options,
135
153
  omit=OMIT,
136
154
  )
@@ -162,15 +180,25 @@ class AsyncActionsClient:
162
180
 
163
181
  Examples
164
182
  --------
165
- from label_studio_sdk.client import AsyncLabelStudio
183
+ import asyncio
184
+
185
+ from label_studio_sdk import AsyncLabelStudio
166
186
 
167
187
  client = AsyncLabelStudio(
168
188
  api_key="YOUR_API_KEY",
169
189
  )
170
- await client.actions.list()
190
+
191
+
192
+ async def main() -> None:
193
+ await client.actions.list()
194
+
195
+
196
+ asyncio.run(main())
171
197
  """
172
198
  _response = await self._client_wrapper.httpx_client.request(
173
- "api/dm/actions/", method="GET", request_options=request_options
199
+ "api/dm/actions/",
200
+ method="GET",
201
+ request_options=request_options,
174
202
  )
175
203
  try:
176
204
  if 200 <= _response.status_code < 300:
@@ -189,7 +217,7 @@ class AsyncActionsClient:
189
217
  filters: typing.Optional[ActionsCreateRequestFilters] = OMIT,
190
218
  selected_items: typing.Optional[ActionsCreateRequestSelectedItems] = OMIT,
191
219
  ordering: typing.Optional[typing.Sequence[ActionsCreateRequestOrderingItem]] = OMIT,
192
- request_options: typing.Optional[RequestOptions] = None
220
+ request_options: typing.Optional[RequestOptions] = None,
193
221
  ) -> None:
194
222
  """
195
223
  Perform a Data Manager action with the selected tasks and filters. Note: More complex actions require additional parameters in the request body. Call `GET api/actions?project=<id>` to explore them. <br>Example: `GET api/actions?id=delete_tasks&project=1`
@@ -223,42 +251,65 @@ class AsyncActionsClient:
223
251
 
224
252
  Examples
225
253
  --------
226
- from label_studio_sdk import (
254
+ import asyncio
255
+
256
+ from label_studio_sdk import AsyncLabelStudio
257
+ from label_studio_sdk.actions import (
227
258
  ActionsCreateRequestFilters,
228
259
  ActionsCreateRequestFiltersItemsItem,
229
260
  ActionsCreateRequestSelectedItemsExcluded,
230
261
  )
231
- from label_studio_sdk.client import AsyncLabelStudio
232
262
 
233
263
  client = AsyncLabelStudio(
234
264
  api_key="YOUR_API_KEY",
235
265
  )
236
- await client.actions.create(
237
- id="retrieve_tasks_predictions",
238
- project=1,
239
- filters=ActionsCreateRequestFilters(
240
- conjunction="or",
241
- items=[
242
- ActionsCreateRequestFiltersItemsItem(
243
- filter="filter:tasks:id",
244
- operator="greater",
245
- type="Number",
246
- value=123,
247
- )
248
- ],
249
- ),
250
- selected_items=ActionsCreateRequestSelectedItemsExcluded(
251
- all_=True,
252
- excluded=[124, 125, 126],
253
- ),
254
- ordering=["tasks:total_annotations"],
255
- )
266
+
267
+
268
+ async def main() -> None:
269
+ await client.actions.create(
270
+ id="retrieve_tasks_predictions",
271
+ project=1,
272
+ filters=ActionsCreateRequestFilters(
273
+ conjunction="or",
274
+ items=[
275
+ ActionsCreateRequestFiltersItemsItem(
276
+ filter="filter:tasks:id",
277
+ operator="greater",
278
+ type="Number",
279
+ value=123,
280
+ )
281
+ ],
282
+ ),
283
+ selected_items=ActionsCreateRequestSelectedItemsExcluded(
284
+ all_=True,
285
+ excluded=[124, 125, 126],
286
+ ),
287
+ ordering=["tasks:total_annotations"],
288
+ )
289
+
290
+
291
+ asyncio.run(main())
256
292
  """
257
293
  _response = await self._client_wrapper.httpx_client.request(
258
294
  "api/dm/actions/",
259
295
  method="POST",
260
- params={"id": id, "project": project, "view": view},
261
- json={"filters": filters, "selectedItems": selected_items, "ordering": ordering},
296
+ params={
297
+ "id": id,
298
+ "project": project,
299
+ "view": view,
300
+ },
301
+ json={
302
+ "filters": convert_and_respect_annotation_metadata(
303
+ object_=filters, annotation=ActionsCreateRequestFilters, direction="write"
304
+ ),
305
+ "selectedItems": convert_and_respect_annotation_metadata(
306
+ object_=selected_items, annotation=ActionsCreateRequestSelectedItems, direction="write"
307
+ ),
308
+ "ordering": ordering,
309
+ },
310
+ headers={
311
+ "content-type": "application/json",
312
+ },
262
313
  request_options=request_options,
263
314
  omit=OMIT,
264
315
  )
@@ -1,43 +1,33 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
4
- import typing
5
-
6
- from ...core.datetime_utils import serialize_datetime
7
- from ...core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
3
+ from ...core.pydantic_utilities import UniversalBaseModel
8
4
  from .actions_create_request_filters_conjunction import ActionsCreateRequestFiltersConjunction
5
+ import pydantic
6
+ import typing
9
7
  from .actions_create_request_filters_items_item import ActionsCreateRequestFiltersItemsItem
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
10
9
 
11
10
 
12
- class ActionsCreateRequestFilters(pydantic_v1.BaseModel):
11
+ class ActionsCreateRequestFilters(UniversalBaseModel):
13
12
  """
14
13
  Filters to apply on tasks. You can use [the helper class `Filters` from this page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
15
14
  """
16
15
 
17
- conjunction: ActionsCreateRequestFiltersConjunction = pydantic_v1.Field()
16
+ conjunction: ActionsCreateRequestFiltersConjunction = pydantic.Field()
18
17
  """
19
18
  Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be either combined with "or" or with "and", but not a mix of both.
20
19
  """
21
20
 
22
- items: typing.List[ActionsCreateRequestFiltersItemsItem] = pydantic_v1.Field()
21
+ items: typing.List[ActionsCreateRequestFiltersItemsItem] = pydantic.Field()
23
22
  """
24
23
  List of filter items
25
24
  """
26
25
 
27
- def json(self, **kwargs: typing.Any) -> str:
28
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
29
- return super().json(**kwargs_with_defaults)
30
-
31
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
32
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
33
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
34
-
35
- return deep_union_pydantic_dicts(
36
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
37
- )
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
38
29
 
39
- class Config:
40
- frozen = True
41
- smart_union = True
42
- extra = pydantic_v1.Extra.allow
43
- json_encoders = {dt.datetime: serialize_datetime}
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -1,50 +1,40 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
4
- import typing
5
-
6
- from ...core.datetime_utils import serialize_datetime
7
- from ...core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
3
+ from ...core.pydantic_utilities import UniversalBaseModel
8
4
  from .actions_create_request_filters_items_item_filter import ActionsCreateRequestFiltersItemsItemFilter
5
+ import pydantic
9
6
  from .actions_create_request_filters_items_item_operator import ActionsCreateRequestFiltersItemsItemOperator
10
7
  from .actions_create_request_filters_items_item_value import ActionsCreateRequestFiltersItemsItemValue
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
9
+ import typing
11
10
 
12
11
 
13
- class ActionsCreateRequestFiltersItemsItem(pydantic_v1.BaseModel):
14
- filter: ActionsCreateRequestFiltersItemsItemFilter = pydantic_v1.Field()
12
+ class ActionsCreateRequestFiltersItemsItem(UniversalBaseModel):
13
+ filter: ActionsCreateRequestFiltersItemsItemFilter = pydantic.Field()
15
14
  """
16
15
  Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was created, review added, etc)</li>
17
16
  """
18
17
 
19
- operator: ActionsCreateRequestFiltersItemsItemOperator = pydantic_v1.Field()
18
+ operator: ActionsCreateRequestFiltersItemsItemOperator = pydantic.Field()
20
19
  """
21
20
  Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
22
21
  """
23
22
 
24
- type: str = pydantic_v1.Field()
23
+ type: str = pydantic.Field()
25
24
  """
26
25
  Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br> Unknown is explicitly converted to string format</li>
27
26
  """
28
27
 
29
- value: ActionsCreateRequestFiltersItemsItemValue = pydantic_v1.Field()
28
+ value: ActionsCreateRequestFiltersItemsItemValue = pydantic.Field()
30
29
  """
31
30
  Value to filter by
32
31
  """
33
32
 
34
- def json(self, **kwargs: typing.Any) -> str:
35
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
36
- return super().json(**kwargs_with_defaults)
37
-
38
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
39
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
40
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
41
-
42
- return deep_union_pydantic_dicts(
43
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
44
- )
33
+ if IS_PYDANTIC_V2:
34
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
35
+ else:
45
36
 
46
- class Config:
47
- frozen = True
48
- smart_union = True
49
- extra = pydantic_v1.Extra.allow
50
- json_encoders = {dt.datetime: serialize_datetime}
37
+ class Config:
38
+ frozen = True
39
+ smart_union = True
40
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ActionsCreateRequestFiltersItemsItemValue = typing.Union[
6
+ str, int, float, bool, typing.Dict[str, typing.Optional[typing.Any]]
7
+ ]
@@ -1,9 +1,8 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
-
5
- from .actions_create_request_selected_items_excluded import ActionsCreateRequestSelectedItemsExcluded
6
4
  from .actions_create_request_selected_items_included import ActionsCreateRequestSelectedItemsIncluded
5
+ from .actions_create_request_selected_items_excluded import ActionsCreateRequestSelectedItemsExcluded
7
6
 
8
7
  ActionsCreateRequestSelectedItems = typing.Union[
9
8
  ActionsCreateRequestSelectedItemsIncluded, ActionsCreateRequestSelectedItemsExcluded