label-studio-sdk 1.0.17__tar.gz → 1.0.19__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 (374) hide show
  1. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/PKG-INFO +3 -2
  2. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/pyproject.toml +3 -2
  3. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/__init__.py +8 -1
  4. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +1 -1
  5. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/converter.py +57 -25
  6. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/client.py +2 -2
  7. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/__init__.py +8 -1
  8. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client.py +106 -81
  9. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client.py +2 -2
  10. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/client_ext.py +2 -2
  11. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/__init__.py +8 -1
  12. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_create_response.py +1 -1
  13. label_studio_sdk-1.0.19/src/label_studio_sdk/projects/types/projects_list_request_filter.py +5 -0
  14. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_update_response.py +1 -1
  15. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/client.py +28 -0
  16. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client_ext.py +0 -1
  17. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project.py +1 -1
  18. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/LICENSE +0 -0
  19. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/README.md +0 -0
  20. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/__init__.py +0 -0
  21. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/eval/categorical.py +0 -0
  22. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
  23. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
  24. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
  25. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
  26. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +0 -0
  27. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +0 -0
  28. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
  29. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
  30. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
  31. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
  32. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
  33. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
  34. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
  35. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_extensions/pager_ext.py +0 -0
  36. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/__init__.py +0 -0
  37. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/client.py +0 -0
  38. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
  39. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/project.py +0 -0
  40. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +0 -0
  41. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/users.py +0 -0
  42. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/utils.py +0 -0
  43. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
  44. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/__init__.py +0 -0
  45. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/client.py +0 -0
  46. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/__init__.py +0 -0
  47. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters.py +0 -0
  48. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +0 -0
  49. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +0 -0
  50. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +0 -0
  51. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +0 -0
  52. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +0 -0
  53. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_id.py +0 -0
  54. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +0 -0
  55. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +0 -0
  56. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +0 -0
  57. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +0 -0
  58. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/__init__.py +0 -0
  59. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/client.py +0 -0
  60. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/__init__.py +0 -0
  61. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -0
  62. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +0 -0
  63. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/base_client.py +0 -0
  64. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/client.py +0 -0
  65. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/__init__.py +0 -0
  66. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/comments/client.py +0 -0
  67. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/README.md +0 -0
  68. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/__init__.py +0 -0
  69. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/audio.py +0 -0
  70. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/brush.py +0 -0
  71. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
  72. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/brush_to_coco.py +0 -0
  73. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv.py +0 -0
  74. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
  75. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/exports/yolo.py +0 -0
  76. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/funsd.py +0 -0
  77. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
  78. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/coco.py +0 -0
  79. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/colors.py +0 -0
  80. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
  81. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
  82. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
  83. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/keypoints.py +0 -0
  84. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/main.py +0 -0
  85. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/converter/utils.py +0 -0
  86. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/__init__.py +0 -0
  87. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/api_error.py +0 -0
  88. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/client_wrapper.py +0 -0
  89. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/datetime_utils.py +0 -0
  90. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/file.py +0 -0
  91. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/http_client.py +0 -0
  92. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
  93. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pagination.py +0 -0
  94. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
  95. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/query_encoder.py +0 -0
  96. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
  97. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/request_options.py +0 -0
  98. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/core/serialization.py +0 -0
  99. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/data_manager.py +0 -0
  100. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/environment.py +0 -0
  101. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/__init__.py +0 -0
  102. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
  103. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
  104. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/not_found_error.py +0 -0
  105. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/errors/unauthorized_error.py +0 -0
  106. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/__init__.py +0 -0
  107. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
  108. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/client.py +0 -0
  109. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
  110. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -0
  111. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -0
  112. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/client.py +0 -0
  113. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
  114. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/client.py +0 -0
  115. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
  116. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -0
  117. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -0
  118. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
  119. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/client.py +0 -0
  120. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
  121. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/local_create_response.py +0 -0
  122. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/local/types/local_update_response.py +0 -0
  123. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
  124. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/client.py +0 -0
  125. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
  126. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -0
  127. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -0
  128. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
  129. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/client.py +0 -0
  130. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
  131. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -0
  132. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -0
  133. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/__init__.py +0 -0
  134. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/s3s/client.py +0 -0
  135. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
  136. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -0
  137. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/files/__init__.py +0 -0
  138. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/__init__.py +0 -0
  139. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
  140. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/client.py +0 -0
  141. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
  142. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -0
  143. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -0
  144. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/client.py +0 -0
  145. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
  146. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/client.py +0 -0
  147. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
  148. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -0
  149. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -0
  150. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
  151. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/client.py +0 -0
  152. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
  153. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/local_create_response.py +0 -0
  154. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/local/types/local_update_response.py +0 -0
  155. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
  156. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/client.py +0 -0
  157. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
  158. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -0
  159. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -0
  160. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
  161. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/client.py +0 -0
  162. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
  163. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +0 -0
  164. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +0 -0
  165. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/__init__.py +0 -0
  166. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/s3s/client.py +0 -0
  167. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
  168. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -0
  169. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/__init__.py +0 -0
  170. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/jwt_settings/client.py +0 -0
  171. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/__init__.py +0 -0
  172. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/base.py +0 -0
  173. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/control_tags.py +0 -0
  174. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/create.py +0 -0
  175. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/data_examples.json +0 -0
  176. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/interface.py +0 -0
  177. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/label_tags.py +0 -0
  178. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/object_tags.py +0 -0
  179. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/objects.py +0 -0
  180. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/label_interface/region.py +0 -0
  181. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/__init__.py +0 -0
  182. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/client.py +0 -0
  183. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/__init__.py +0 -0
  184. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
  185. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
  186. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
  187. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
  188. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
  189. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
  190. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/__init__.py +0 -0
  191. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/model_providers/client.py +0 -0
  192. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/__init__.py +0 -0
  193. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/predictions/client.py +0 -0
  194. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/client_ext.py +0 -0
  195. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/__init__.py +0 -0
  196. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/__init__.py +0 -0
  197. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/exports_convert_response.py +0 -0
  198. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -0
  199. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/__init__.py +0 -0
  200. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/pauses/client.py +0 -0
  201. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
  202. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
  203. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/__init__.py +0 -0
  204. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/__init__.py +0 -0
  205. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/indicators/client.py +0 -0
  206. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/__init__.py +0 -0
  207. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/client.py +0 -0
  208. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/types/__init__.py +0 -0
  209. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/runs/types/runs_list_request_project_subset.py +0 -0
  210. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/__init__.py +0 -0
  211. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -0
  212. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +0 -0
  213. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -0
  214. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +0 -0
  215. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/__init__.py +0 -0
  216. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/prompts/versions/client.py +0 -0
  217. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/py.typed +0 -0
  218. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/__init__.py +0 -0
  219. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client.py +0 -0
  220. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/client_ext.py +0 -0
  221. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
  222. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
  223. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
  224. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/__init__.py +0 -0
  225. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/tokens/client.py +0 -0
  226. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/__init__.py +0 -0
  227. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/access_token_response.py +0 -0
  228. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation.py +0 -0
  229. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_completed_by.py +0 -0
  230. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
  231. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
  232. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field.py +0 -0
  233. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/annotations_dm_field_last_action.py +0 -0
  234. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/api_token_response.py +0 -0
  235. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
  236. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
  237. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
  238. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
  239. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task.py +0 -0
  240. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_file_upload.py +0 -0
  241. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_task_updated_by.py +0 -0
  242. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/base_user.py +0 -0
  243. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment.py +0 -0
  244. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/comment_created_by.py +0 -0
  245. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format.py +0 -0
  246. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/converted_format_status.py +0 -0
  247. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer.py +0 -0
  248. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -0
  249. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_comment_authors_item.py +0 -0
  250. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +0 -0
  251. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +0 -0
  252. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item_model_run.py +0 -0
  253. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export.py +0 -0
  254. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_format.py +0 -0
  255. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot.py +0 -0
  256. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_snapshot_status.py +0 -0
  257. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/export_status.py +0 -0
  258. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/file_upload.py +0 -0
  259. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter.py +0 -0
  260. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/filter_group.py +0 -0
  261. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
  262. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
  263. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
  264. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
  265. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run.py +0 -0
  266. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_cost_estimate.py +0 -0
  267. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_created_by.py +0 -0
  268. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_organization.py +0 -0
  269. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_project_subset.py +0 -0
  270. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/inference_run_status.py +0 -0
  271. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/jwt_settings_response.py +0 -0
  272. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicator_value.py +0 -0
  273. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators.py +0 -0
  274. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item.py +0 -0
  275. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +0 -0
  276. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +0 -0
  277. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
  278. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
  279. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
  280. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
  281. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend.py +0 -0
  282. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
  283. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
  284. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection.py +0 -0
  285. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_budget_reset_period.py +0 -0
  286. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_created_by.py +0 -0
  287. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_organization.py +0 -0
  288. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_provider.py +0 -0
  289. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/model_provider_connection_scope.py +0 -0
  290. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause.py +0 -0
  291. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/pause_paused_by.py +0 -0
  292. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prediction.py +0 -0
  293. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import.py +0 -0
  294. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_import_status.py +0 -0
  295. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_label_config.py +0 -0
  296. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_sampling.py +0 -0
  297. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
  298. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt.py +0 -0
  299. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item.py +0 -0
  300. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_associated_projects_item_id.py +0 -0
  301. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_created_by.py +0 -0
  302. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_organization.py +0 -0
  303. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version.py +0 -0
  304. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_created_by.py +0 -0
  305. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_organization.py +0 -0
  306. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/prompt_version_provider.py +0 -0
  307. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
  308. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
  309. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
  310. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
  311. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response.py +0 -0
  312. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -0
  313. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/rotate_token_response.py +0 -0
  314. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage.py +0 -0
  315. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
  316. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage.py +0 -0
  317. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
  318. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_export_storage.py +0 -0
  319. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage.py +0 -0
  320. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/s3s_import_storage_status.py +0 -0
  321. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_option.py +0 -0
  322. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/serialization_options.py +0 -0
  323. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task.py +0 -0
  324. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_annotators_item.py +0 -0
  325. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_comment_authors_item.py +0 -0
  326. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/task_filter_options.py +0 -0
  327. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/user_simple.py +0 -0
  328. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/view.py +0 -0
  329. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook.py +0 -0
  330. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
  331. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
  332. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
  333. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/types/workspace.py +0 -0
  334. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/__init__.py +0 -0
  335. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/client.py +0 -0
  336. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/__init__.py +0 -0
  337. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
  338. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
  339. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/version.py +0 -0
  340. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/__init__.py +0 -0
  341. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/client.py +0 -0
  342. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/__init__.py +0 -0
  343. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response.py +0 -0
  344. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/versions/types/versions_get_response_edition.py +0 -0
  345. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/__init__.py +0 -0
  346. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/client.py +0 -0
  347. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/__init__.py +0 -0
  348. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data.py +0 -0
  349. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +0 -0
  350. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +0 -0
  351. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +0 -0
  352. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +0 -0
  353. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +0 -0
  354. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +0 -0
  355. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -0
  356. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data.py +0 -0
  357. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +0 -0
  358. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +0 -0
  359. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +0 -0
  360. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +0 -0
  361. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +0 -0
  362. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +0 -0
  363. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -0
  364. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/__init__.py +0 -0
  365. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/client.py +0 -0
  366. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
  367. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
  368. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/__init__.py +0 -0
  369. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/client.py +0 -0
  370. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/__init__.py +0 -0
  371. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/client.py +0 -0
  372. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/__init__.py +0 -0
  373. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/members_create_response.py +0 -0
  374. {label_studio_sdk-1.0.17 → label_studio_sdk-1.0.19}/src/label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: label-studio-sdk
3
- Version: 1.0.17
3
+ Version: 1.0.19
4
4
  Summary:
5
5
  Requires-Python: >=3.9,<4
6
6
  Classifier: Intended Audience :: Developers
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.13
19
19
  Classifier: Programming Language :: Python :: 3.8
20
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
21
  Classifier: Typing :: Typed
22
- Requires-Dist: Pillow (>=10.0.1)
22
+ Requires-Dist: Pillow (>=11.3.0)
23
23
  Requires-Dist: appdirs (>=1.4.3)
24
24
  Requires-Dist: datamodel-code-generator (==0.26.1)
25
25
  Requires-Dist: httpx (>=0.21.2)
@@ -38,6 +38,7 @@ Requires-Dist: requests (>=2.22.0)
38
38
  Requires-Dist: requests-mock (==1.12.1)
39
39
  Requires-Dist: typing_extensions (>=4.0.0)
40
40
  Requires-Dist: ujson (>=5.8.0)
41
+ Requires-Dist: urllib3 (>=2.5.0)
41
42
  Requires-Dist: xmljson (==0.2.1)
42
43
  Project-URL: Repository, https://github.com/HumanSignal/label-studio-sdk
43
44
  Description-Content-Type: text/markdown
@@ -3,7 +3,7 @@ name = "label-studio-sdk"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "label-studio-sdk"
6
- version = "1.0.17"
6
+ version = "1.0.19"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -35,7 +35,7 @@ Repository = 'https://github.com/HumanSignal/label-studio-sdk'
35
35
 
36
36
  [tool.poetry.dependencies]
37
37
  python = ">=3.9,<4"
38
- Pillow = ">=10.0.1"
38
+ Pillow = ">=11.3.0"
39
39
  appdirs = ">=1.4.3"
40
40
  datamodel-code-generator = "0.26.1"
41
41
  httpx = ">=0.21.2"
@@ -54,6 +54,7 @@ requests = ">=2.22.0"
54
54
  requests-mock = "1.12.1"
55
55
  typing_extensions = ">= 4.0.0"
56
56
  ujson = ">=5.8.0"
57
+ urllib3 = ">=2.5.0"
57
58
  xmljson = "0.2.1"
58
59
 
59
60
  [tool.poetry.dev-dependencies]
@@ -159,7 +159,13 @@ from .ml import (
159
159
  MlUpdateResponse,
160
160
  MlUpdateResponseAuthMethod,
161
161
  )
162
- from .projects import ProjectsCreateResponse, ProjectsImportTasksResponse, ProjectsListResponse, ProjectsUpdateResponse
162
+ from .projects import (
163
+ ProjectsCreateResponse,
164
+ ProjectsImportTasksResponse,
165
+ ProjectsListRequestFilter,
166
+ ProjectsListResponse,
167
+ ProjectsUpdateResponse,
168
+ )
163
169
  from .prompts import (
164
170
  PromptsBatchFailedPredictionsRequestFailedPredictionsItem,
165
171
  PromptsBatchFailedPredictionsResponse,
@@ -293,6 +299,7 @@ __all__ = [
293
299
  "ProjectSkipQueue",
294
300
  "ProjectsCreateResponse",
295
301
  "ProjectsImportTasksResponse",
302
+ "ProjectsListRequestFilter",
296
303
  "ProjectsListResponse",
297
304
  "ProjectsUpdateResponse",
298
305
  "Prompt",
@@ -134,7 +134,7 @@ def has_variable(actual_value):
134
134
  :param actual_value: value to check
135
135
  :return: True if value has variable
136
136
  """
137
- expression = "^\$[A-Za-z_]+$"
137
+ expression = r"^\$[A-Za-z_]+$"
138
138
  pattern = re.compile(expression)
139
139
  full_match = pattern.fullmatch(actual_value)
140
140
  if full_match:
@@ -481,6 +481,9 @@ class Converter(object):
481
481
  then the from_name "my_output_tag_0" should match it, and we should return "my_output_tag_{{idx}}".
482
482
  """
483
483
 
484
+ best_match = None
485
+ best_match_len = 0
486
+
484
487
  for tag_name, tag_info in self._schema.items():
485
488
  if tag_name == from_name:
486
489
  return tag_name
@@ -492,10 +495,13 @@ class Converter(object):
492
495
  for variable, regex in tag_info["regex"].items():
493
496
  tag_name_pattern = tag_name_pattern.replace(variable, regex)
494
497
 
495
- if re.compile(tag_name_pattern).match(from_name):
496
- return tag_name
498
+ # In some cases there are tags with same prefix - we need to find the best or longest matching pattern
499
+ if r := re.compile(tag_name_pattern).match(from_name):
500
+ if match_len := len(tag_name_pattern) > best_match_len:
501
+ best_match = tag_name
502
+ best_match_len = len(tag_name_pattern)
497
503
 
498
- return None
504
+ return best_match if best_match else None
499
505
 
500
506
  def annotation_result_from_task(self, task):
501
507
  has_annotations = "completions" in task or "annotations" in task
@@ -576,13 +582,26 @@ class Converter(object):
576
582
  self._check_format(Format.JSON)
577
583
  ensure_dir(output_dir)
578
584
  output_file = os.path.join(output_dir, "result.json")
579
- records = []
585
+
580
586
  if is_dir:
581
- for json_file in glob(os.path.join(input_data, "*.json")):
582
- with io.open(json_file, encoding="utf8") as f:
583
- records.append(json.load(f))
587
+ # Memory-optimized: stream JSON writing instead of accumulating in memory
584
588
  with io.open(output_file, mode="w", encoding="utf8") as fout:
585
- json.dump(records, fout, indent=2, ensure_ascii=False)
589
+ fout.write("[\n")
590
+ first_record = True
591
+
592
+ for json_file in glob(os.path.join(input_data, "*.json")):
593
+ with io.open(json_file, encoding="utf8") as f:
594
+ record = json.load(f)
595
+
596
+ if not first_record:
597
+ fout.write(",\n")
598
+ json.dump(record, fout, indent=2, ensure_ascii=False)
599
+ first_record = False
600
+
601
+ # Free memory immediately
602
+ del record
603
+
604
+ fout.write("\n]")
586
605
  else:
587
606
  copy2(input_data, output_file)
588
607
 
@@ -590,26 +609,39 @@ class Converter(object):
590
609
  self._check_format(Format.JSON_MIN)
591
610
  ensure_dir(output_dir)
592
611
  output_file = os.path.join(output_dir, "result.json")
593
- records = []
594
612
  item_iterator = self.iter_from_dir if is_dir else self.iter_from_json_file
595
613
 
596
- for item in item_iterator(input_data):
597
- record = deepcopy(item["input"])
598
- if item.get("id") is not None:
599
- record["id"] = item["id"]
600
- for name, value in item["output"].items():
601
- record[name] = prettify_result(value)
602
- record["annotator"] = get_annotator(item, int_id=True)
603
- record["annotation_id"] = item["annotation_id"]
604
- record["created_at"] = item["created_at"]
605
- record["updated_at"] = item["updated_at"]
606
- record["lead_time"] = item["lead_time"]
607
- if "agreement" in item:
608
- record["agreement"] = item["agreement"]
609
- records.append(record)
610
-
611
614
  with io.open(output_file, mode="w", encoding="utf8") as fout:
612
- json.dump(records, fout, indent=2, ensure_ascii=False)
615
+ fout.write("[\n")
616
+ first_record = True
617
+
618
+ for item in item_iterator(input_data):
619
+ # SAFE memory optimization: use json serialization/deserialization
620
+ # This avoids deepcopy but ensures complete isolation of objects
621
+ record = json.loads(json.dumps(item["input"]))
622
+
623
+ if item.get("id") is not None:
624
+ record["id"] = item["id"]
625
+ for name, value in item["output"].items():
626
+ record[name] = prettify_result(value)
627
+ record["annotator"] = get_annotator(item, int_id=True)
628
+ record["annotation_id"] = item["annotation_id"]
629
+ record["created_at"] = item["created_at"]
630
+ record["updated_at"] = item["updated_at"]
631
+ record["lead_time"] = item["lead_time"]
632
+ if "agreement" in item:
633
+ record["agreement"] = item["agreement"]
634
+
635
+ # Write record to file immediately
636
+ if not first_record:
637
+ fout.write(",\n")
638
+ json.dump(record, fout, indent=2, ensure_ascii=False)
639
+ first_record = False
640
+
641
+ # Explicitly delete record to free memory
642
+ del record
643
+
644
+ fout.write("\n]")
613
645
 
614
646
  def convert_to_csv(self, input_data, output_dir, is_dir=True, **kwargs):
615
647
  self._check_format(Format.CSV)
@@ -119,7 +119,7 @@ class FilesClient:
119
119
 
120
120
  You will need to include the file data in the request body. For example:
121
121
  ```bash
122
- curl -H 'Authorization: Token abc123' \ -X POST 'https://localhost:8080/api/import/file-upload/245' -F file=@path/to/my_file.csv
122
+ curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/import/file-upload/245' -F 'file=@path/to/my_file.csv'
123
123
  ```
124
124
 
125
125
  Parameters
@@ -445,7 +445,7 @@ class AsyncFilesClient:
445
445
 
446
446
  You will need to include the file data in the request body. For example:
447
447
  ```bash
448
- curl -H 'Authorization: Token abc123' \ -X POST 'https://localhost:8080/api/import/file-upload/245' -F file=@path/to/my_file.csv
448
+ curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/import/file-upload/245' -F 'file=@path/to/my_file.csv'
449
449
  ```
450
450
 
451
451
  Parameters
@@ -1,6 +1,12 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from .types import ProjectsCreateResponse, ProjectsImportTasksResponse, ProjectsListResponse, ProjectsUpdateResponse
3
+ from .types import (
4
+ ProjectsCreateResponse,
5
+ ProjectsImportTasksResponse,
6
+ ProjectsListRequestFilter,
7
+ ProjectsListResponse,
8
+ ProjectsUpdateResponse,
9
+ )
4
10
  from . import exports, pauses
5
11
  from .exports import ExportsConvertResponse, ExportsListFormatsResponseItem
6
12
 
@@ -9,6 +15,7 @@ __all__ = [
9
15
  "ExportsListFormatsResponseItem",
10
16
  "ProjectsCreateResponse",
11
17
  "ProjectsImportTasksResponse",
18
+ "ProjectsListRequestFilter",
12
19
  "ProjectsListResponse",
13
20
  "ProjectsUpdateResponse",
14
21
  "exports",
@@ -4,6 +4,7 @@ import typing
4
4
  from ..core.client_wrapper import SyncClientWrapper
5
5
  from .pauses.client import PausesClient
6
6
  from .exports.client import ExportsClient
7
+ from .types.projects_list_request_filter import ProjectsListRequestFilter
7
8
  from ..core.request_options import RequestOptions
8
9
  from ..core.pagination import SyncPager
9
10
  from ..types.project import Project
@@ -41,6 +42,8 @@ class ProjectsClient:
41
42
  page: typing.Optional[int] = None,
42
43
  page_size: typing.Optional[int] = None,
43
44
  workspaces: typing.Optional[int] = None,
45
+ include: typing.Optional[str] = None,
46
+ filter: typing.Optional[ProjectsListRequestFilter] = None,
44
47
  request_options: typing.Optional[RequestOptions] = None,
45
48
  ) -> SyncPager[Project]:
46
49
  """
@@ -75,6 +78,12 @@ class ProjectsClient:
75
78
  workspaces : typing.Optional[int]
76
79
  workspaces
77
80
 
81
+ include : typing.Optional[str]
82
+ Comma-separated list of count fields to include in the response to optimize performance. Available fields: task_number, finished_task_number, total_predictions_number, total_annotations_number, num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If not specified, all count fields are included.
83
+
84
+ filter : typing.Optional[ProjectsListRequestFilter]
85
+ Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to return only non-pinned projects, or 'all' to return all projects.
86
+
78
87
  request_options : typing.Optional[RequestOptions]
79
88
  Request-specific configuration.
80
89
 
@@ -90,7 +99,9 @@ class ProjectsClient:
90
99
  client = LabelStudio(
91
100
  api_key="YOUR_API_KEY",
92
101
  )
93
- response = client.projects.list()
102
+ response = client.projects.list(
103
+ include="task_number,total_annotations_number,num_tasks_with_annotations",
104
+ )
94
105
  for item in response:
95
106
  yield item
96
107
  # alternatively, you can paginate page-by-page
@@ -108,6 +119,8 @@ class ProjectsClient:
108
119
  "page": page,
109
120
  "page_size": page_size,
110
121
  "workspaces": workspaces,
122
+ "include": include,
123
+ "filter": filter,
111
124
  },
112
125
  request_options=request_options,
113
126
  )
@@ -128,6 +141,8 @@ class ProjectsClient:
128
141
  page=page + 1,
129
142
  page_size=page_size,
130
143
  workspaces=workspaces,
144
+ include=include,
145
+ filter=filter,
131
146
  request_options=request_options,
132
147
  )
133
148
  _items = _parsed_response.results
@@ -207,7 +222,8 @@ class ProjectsClient:
207
222
  Project color in HEX format
208
223
 
209
224
  control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
210
- Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
225
+ Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
226
+
211
227
 
212
228
  workspace : typing.Optional[int]
213
229
  Workspace ID
@@ -440,7 +456,8 @@ class ProjectsClient:
440
456
  Project color in HEX format
441
457
 
442
458
  control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
443
- Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
459
+ Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
460
+
444
461
 
445
462
  workspace : typing.Optional[int]
446
463
  Workspace ID
@@ -518,84 +535,80 @@ class ProjectsClient:
518
535
  request_options: typing.Optional[RequestOptions] = None,
519
536
  ) -> ProjectsImportTasksResponse:
520
537
  """
521
-
538
+
522
539
  Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
523
- The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
524
-
540
+ The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
541
+
525
542
  <Note>
526
- Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
527
-
543
+ Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
544
+
528
545
  For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
529
546
  </Note>
530
-
547
+
531
548
  There are three possible ways to import tasks with this endpoint:
532
-
533
- #### 1\. **POST with data**
549
+
550
+ #### 1. **POST with data**
534
551
  Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
535
-
552
+
536
553
  Update this example to specify your authorization token and Label Studio instance host, then run the following from
537
554
  the command line:
538
-
555
+
539
556
  ```bash
540
- curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
541
- -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
557
+ curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
542
558
  ```
543
-
544
- #### 2\. **POST with files**
559
+
560
+ #### 2. **POST with files**
545
561
  Send tasks as files. You can attach multiple files with different names.
546
-
562
+
547
563
  - **JSON**: text files in JavaScript object notation format
548
564
  - **CSV**: text files with tables in Comma Separated Values format
549
565
  - **TSV**: text files with tables in Tab Separated Value format
550
566
  - **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
551
-
567
+
552
568
  Update this example to specify your authorization token, Label Studio instance host, and file name and path,
553
569
  then run the following from the command line:
554
-
570
+
555
571
  ```bash
556
- curl -H 'Authorization: Token abc123' \
557
- -X POST 'https://localhost:8080/api/projects/1/import' -F ‘file=@path/to/my_file.csv’
572
+ curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' -F 'file=@path/to/my_file.csv'
558
573
  ```
559
-
560
- #### 3\. **POST with URL**
574
+
575
+ #### 3. **POST with URL**
561
576
  You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
562
-
577
+
563
578
  ```bash
564
- curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
565
- -X POST 'https://localhost:8080/api/projects/1/import' \
566
- --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
579
+ curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
567
580
  ```
568
-
581
+
569
582
  <br>
570
-
583
+
571
584
  Parameters
572
585
  ----------
573
586
  id : int
574
587
  A unique integer value identifying this project.
575
-
588
+
576
589
  request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
577
-
590
+
578
591
  commit_to_project : typing.Optional[bool]
579
592
  Set to "true" to immediately commit tasks to the project.
580
-
593
+
581
594
  return_task_ids : typing.Optional[bool]
582
595
  Set to "true" to return task IDs in the response.
583
-
596
+
584
597
  preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
585
598
  List of fields to preannotate from the task data. For example, if you provide a list of `{"text": "text", "prediction": "label"}` items in the request, the system will create a task with the `text` field and a prediction with the `label` field when `preannoted_from_fields=["prediction"]`.
586
-
599
+
587
600
  request_options : typing.Optional[RequestOptions]
588
601
  Request-specific configuration.
589
-
602
+
590
603
  Returns
591
604
  -------
592
605
  ProjectsImportTasksResponse
593
606
  Tasks successfully imported
594
-
607
+
595
608
  Examples
596
609
  --------
597
610
  from label_studio_sdk import LabelStudio
598
-
611
+
599
612
  client = LabelStudio(
600
613
  api_key="YOUR_API_KEY",
601
614
  )
@@ -716,6 +729,8 @@ class AsyncProjectsClient:
716
729
  page: typing.Optional[int] = None,
717
730
  page_size: typing.Optional[int] = None,
718
731
  workspaces: typing.Optional[int] = None,
732
+ include: typing.Optional[str] = None,
733
+ filter: typing.Optional[ProjectsListRequestFilter] = None,
719
734
  request_options: typing.Optional[RequestOptions] = None,
720
735
  ) -> AsyncPager[Project]:
721
736
  """
@@ -750,6 +765,12 @@ class AsyncProjectsClient:
750
765
  workspaces : typing.Optional[int]
751
766
  workspaces
752
767
 
768
+ include : typing.Optional[str]
769
+ Comma-separated list of count fields to include in the response to optimize performance. Available fields: task_number, finished_task_number, total_predictions_number, total_annotations_number, num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If not specified, all count fields are included.
770
+
771
+ filter : typing.Optional[ProjectsListRequestFilter]
772
+ Filter projects by pinned status. Use 'pinned_only' to return only pinned projects, 'exclude_pinned' to return only non-pinned projects, or 'all' to return all projects.
773
+
753
774
  request_options : typing.Optional[RequestOptions]
754
775
  Request-specific configuration.
755
776
 
@@ -770,7 +791,9 @@ class AsyncProjectsClient:
770
791
 
771
792
 
772
793
  async def main() -> None:
773
- response = await client.projects.list()
794
+ response = await client.projects.list(
795
+ include="task_number,total_annotations_number,num_tasks_with_annotations",
796
+ )
774
797
  async for item in response:
775
798
  yield item
776
799
  # alternatively, you can paginate page-by-page
@@ -791,6 +814,8 @@ class AsyncProjectsClient:
791
814
  "page": page,
792
815
  "page_size": page_size,
793
816
  "workspaces": workspaces,
817
+ "include": include,
818
+ "filter": filter,
794
819
  },
795
820
  request_options=request_options,
796
821
  )
@@ -811,6 +836,8 @@ class AsyncProjectsClient:
811
836
  page=page + 1,
812
837
  page_size=page_size,
813
838
  workspaces=workspaces,
839
+ include=include,
840
+ filter=filter,
814
841
  request_options=request_options,
815
842
  )
816
843
  _items = _parsed_response.results
@@ -890,7 +917,8 @@ class AsyncProjectsClient:
890
917
  Project color in HEX format
891
918
 
892
919
  control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
893
- Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
920
+ Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
921
+
894
922
 
895
923
  workspace : typing.Optional[int]
896
924
  Workspace ID
@@ -1147,7 +1175,8 @@ class AsyncProjectsClient:
1147
1175
  Project color in HEX format
1148
1176
 
1149
1177
  control_weights : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
1150
- Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}
1178
+ Dict of weights for each control tag in metric calculation. Each control tag (e.g. label or choice) will have its own key in control weight dict with weight for each label and overall weight. For example, if a bounding box annotation with a control tag named my_bbox should be included with 0.33 weight in agreement calculation, and the first label Car should be twice as important as Airplane, then you need to specify: {'my_bbox': {'type': 'RectangleLabels', 'labels': {'Car': 1.0, 'Airplane': 0.5}, 'overall': 0.33}}
1179
+
1151
1180
 
1152
1181
  workspace : typing.Optional[int]
1153
1182
  Workspace ID
@@ -1233,98 +1262,94 @@ class AsyncProjectsClient:
1233
1262
  request_options: typing.Optional[RequestOptions] = None,
1234
1263
  ) -> ProjectsImportTasksResponse:
1235
1264
  """
1236
-
1265
+
1237
1266
  Use this API endpoint to import labeling tasks in bulk. Note that each POST request is limited at 250K tasks and 200 MB.
1238
- The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
1239
-
1267
+ The project ID can be found in the URL when viewing the project in Label Studio, or you can retrieve all project IDs using [List all projects](../projects/list).
1268
+
1240
1269
  <Note>
1241
- Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
1242
-
1270
+ Imported data is verified against a project *label_config* and must include all variables that were used in the *label_config*.
1271
+
1243
1272
  For example, if the label configuration has a *$text* variable, then each item in a data object must include a `text` field.
1244
1273
  </Note>
1245
-
1274
+
1246
1275
  There are three possible ways to import tasks with this endpoint:
1247
-
1248
- #### 1\. **POST with data**
1276
+
1277
+ #### 1. **POST with data**
1249
1278
  Send JSON tasks as POST data. Only JSON is supported for POSTing files directly.
1250
-
1279
+
1251
1280
  Update this example to specify your authorization token and Label Studio instance host, then run the following from
1252
1281
  the command line:
1253
-
1282
+
1254
1283
  ```bash
1255
- curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
1256
- -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
1284
+ curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"text": "Some text 1"}, {"text": "Some text 2"}]'
1257
1285
  ```
1258
-
1259
- #### 2\. **POST with files**
1286
+
1287
+ #### 2. **POST with files**
1260
1288
  Send tasks as files. You can attach multiple files with different names.
1261
-
1289
+
1262
1290
  - **JSON**: text files in JavaScript object notation format
1263
1291
  - **CSV**: text files with tables in Comma Separated Values format
1264
1292
  - **TSV**: text files with tables in Tab Separated Value format
1265
1293
  - **TXT**: simple text files are similar to CSV with one column and no header, supported for projects with one source only
1266
-
1294
+
1267
1295
  Update this example to specify your authorization token, Label Studio instance host, and file name and path,
1268
1296
  then run the following from the command line:
1269
-
1297
+
1270
1298
  ```bash
1271
- curl -H 'Authorization: Token abc123' \
1272
- -X POST 'https://localhost:8080/api/projects/1/import' -F ‘file=@path/to/my_file.csv’
1299
+ curl -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' -F 'file=@path/to/my_file.csv'
1273
1300
  ```
1274
-
1275
- #### 3\. **POST with URL**
1301
+
1302
+ #### 3. **POST with URL**
1276
1303
  You can also provide a URL to a file with labeling tasks. Supported file formats are the same as in option 2.
1277
-
1304
+
1278
1305
  ```bash
1279
- curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' \
1280
- -X POST 'https://localhost:8080/api/projects/1/import' \
1281
- --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
1306
+ curl -H 'Content-Type: application/json' -H 'Authorization: Token abc123' -X POST 'https://localhost:8080/api/projects/1/import' --data '[{"url": "http://example.com/test1.csv"}, {"url": "http://example.com/test2.csv"}]'
1282
1307
  ```
1283
-
1308
+
1284
1309
  <br>
1285
-
1310
+
1286
1311
  Parameters
1287
1312
  ----------
1288
1313
  id : int
1289
1314
  A unique integer value identifying this project.
1290
-
1315
+
1291
1316
  request : typing.Sequence[typing.Dict[str, typing.Optional[typing.Any]]]
1292
-
1317
+
1293
1318
  commit_to_project : typing.Optional[bool]
1294
1319
  Set to "true" to immediately commit tasks to the project.
1295
-
1320
+
1296
1321
  return_task_ids : typing.Optional[bool]
1297
1322
  Set to "true" to return task IDs in the response.
1298
-
1323
+
1299
1324
  preannotated_from_fields : typing.Optional[typing.Union[str, typing.Sequence[str]]]
1300
1325
  List of fields to preannotate from the task data. For example, if you provide a list of `{"text": "text", "prediction": "label"}` items in the request, the system will create a task with the `text` field and a prediction with the `label` field when `preannoted_from_fields=["prediction"]`.
1301
-
1326
+
1302
1327
  request_options : typing.Optional[RequestOptions]
1303
1328
  Request-specific configuration.
1304
-
1329
+
1305
1330
  Returns
1306
1331
  -------
1307
1332
  ProjectsImportTasksResponse
1308
1333
  Tasks successfully imported
1309
-
1334
+
1310
1335
  Examples
1311
1336
  --------
1312
1337
  import asyncio
1313
-
1338
+
1314
1339
  from label_studio_sdk import AsyncLabelStudio
1315
-
1340
+
1316
1341
  client = AsyncLabelStudio(
1317
1342
  api_key="YOUR_API_KEY",
1318
1343
  )
1319
-
1320
-
1344
+
1345
+
1321
1346
  async def main() -> None:
1322
1347
  await client.projects.import_tasks(
1323
1348
  id=1,
1324
1349
  request=[{"key": "value"}],
1325
1350
  )
1326
-
1327
-
1351
+
1352
+
1328
1353
  asyncio.run(main())
1329
1354
  """
1330
1355
  _response = await self._client_wrapper.httpx_client.request(