label-studio-sdk 1.0.0__tar.gz → 1.0.1__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 (266) hide show
  1. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/PKG-INFO +17 -161
  2. label_studio_sdk-1.0.1/README.md +126 -0
  3. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/pyproject.toml +2 -2
  4. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/__init__.py +30 -4
  5. label_studio_sdk-1.0.1/src/label_studio_sdk/_extensions/pager_ext.py +49 -0
  6. label_studio_sdk-1.0.1/src/label_studio_sdk/_legacy/objects.py +74 -0
  7. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +14 -14
  8. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/__init__.py +27 -0
  9. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/client.py +223 -0
  10. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/__init__.py +25 -0
  11. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py → label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters.py +8 -12
  12. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +5 -0
  13. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +49 -0
  14. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +31 -0
  15. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +23 -0
  16. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_id.py +19 -0
  17. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +31 -0
  18. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +10 -0
  19. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +39 -0
  20. label_studio_sdk-1.0.1/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +39 -0
  21. label_studio_sdk-1.0.0/src/label_studio_sdk/client.py → label_studio_sdk-1.0.1/src/label_studio_sdk/base_client.py +2 -2
  22. label_studio_sdk-1.0.1/src/label_studio_sdk/client.py +25 -0
  23. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/client_wrapper.py +1 -1
  24. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/http_client.py +5 -1
  25. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/client.py +176 -10
  26. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +15 -0
  27. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +15 -0
  28. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/client.py +180 -14
  29. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +16 -1
  30. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +16 -1
  31. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/client.py +168 -22
  32. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/local_create_response.py +12 -2
  33. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/local_update_response.py +12 -2
  34. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/client.py +234 -30
  35. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -5
  36. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -5
  37. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/client.py +214 -26
  38. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +15 -0
  39. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +15 -0
  40. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/client.py +266 -90
  41. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +28 -18
  42. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +28 -18
  43. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/client.py +270 -94
  44. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +28 -18
  45. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +28 -18
  46. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/client.py +168 -22
  47. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/local_create_response.py +12 -2
  48. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/local_update_response.py +12 -2
  49. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/client.py +206 -50
  50. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -10
  51. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -10
  52. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/client.py +336 -110
  53. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +35 -25
  54. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +35 -25
  55. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/base.py +10 -0
  56. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/control_tags.py +109 -71
  57. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/interface.py +96 -50
  58. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/object_tags.py +8 -13
  59. label_studio_sdk-1.0.1/src/label_studio_sdk/label_interface/region.py +75 -0
  60. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/client.py +4 -2
  61. label_studio_sdk-1.0.1/src/label_studio_sdk/projects/client_ext.py +19 -0
  62. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/client.py +26 -2
  63. label_studio_sdk-1.0.1/src/label_studio_sdk/tasks/client_ext.py +18 -0
  64. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation.py +5 -5
  65. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/task.py +1 -1
  66. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/__init__.py +8 -4
  67. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/__init__.py +8 -4
  68. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data.py +2 -2
  69. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +5 -5
  70. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +1 -1
  71. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +49 -0
  72. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +31 -0
  73. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +23 -0
  74. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +31 -0
  75. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data.py +2 -2
  76. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +5 -5
  77. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +1 -1
  78. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +49 -0
  79. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +31 -0
  80. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +23 -0
  81. label_studio_sdk-1.0.1/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +31 -0
  82. label_studio_sdk-1.0.0/README.md +0 -270
  83. label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy/label_interface/region.py +0 -43
  84. label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy/objects.py +0 -35
  85. label_studio_sdk-1.0.0/src/label_studio_sdk/actions/client.py +0 -150
  86. label_studio_sdk-1.0.0/src/label_studio_sdk/projects/exports/__init__.py +0 -2
  87. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -38
  88. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_create_request_data_ordering_item_direction.py +0 -5
  89. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +0 -47
  90. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -38
  91. label_studio_sdk-1.0.0/src/label_studio_sdk/views/types/views_update_request_data_ordering_item_direction.py +0 -5
  92. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/__init__.py +0 -0
  93. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
  94. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
  95. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +0 -0
  96. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
  97. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
  98. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +0 -0
  99. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
  100. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
  101. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
  102. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
  103. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
  104. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
  105. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
  106. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/__init__.py +0 -0
  107. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/client.py +0 -0
  108. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
  109. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/project.py +0 -0
  110. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/users.py +0 -0
  111. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/utils.py +0 -0
  112. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
  113. {label_studio_sdk-1.0.0/src/label_studio_sdk/actions → label_studio_sdk-1.0.1/src/label_studio_sdk/annotations}/__init__.py +0 -0
  114. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/annotations/client.py +0 -0
  115. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/__init__.py +0 -0
  116. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/audio.py +0 -0
  117. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/brush.py +0 -0
  118. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/converter.py +0 -0
  119. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
  120. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/csv.py +0 -0
  121. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
  122. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/funsd.py +0 -0
  123. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
  124. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/coco.py +0 -0
  125. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/colors.py +0 -0
  126. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
  127. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
  128. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
  129. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/main.py +0 -0
  130. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/converter/utils.py +0 -0
  131. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/__init__.py +0 -0
  132. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/api_error.py +0 -0
  133. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/datetime_utils.py +0 -0
  134. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/file.py +0 -0
  135. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
  136. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/pagination.py +0 -0
  137. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
  138. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/query_encoder.py +0 -0
  139. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
  140. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/core/request_options.py +0 -0
  141. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/data_manager.py +0 -0
  142. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/environment.py +0 -0
  143. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/__init__.py +0 -0
  144. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
  145. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
  146. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/__init__.py +0 -0
  147. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
  148. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
  149. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/client.py +0 -0
  150. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
  151. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
  152. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
  153. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
  154. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
  155. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
  156. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
  157. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
  158. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
  159. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -0
  160. {label_studio_sdk-1.0.0/src/label_studio_sdk/annotations → label_studio_sdk-1.0.1/src/label_studio_sdk/files}/__init__.py +0 -0
  161. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/files/client.py +0 -0
  162. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/__init__.py +0 -0
  163. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
  164. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
  165. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/client.py +0 -0
  166. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
  167. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
  168. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
  169. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
  170. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
  171. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
  172. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
  173. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
  174. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
  175. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -0
  176. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/__init__.py +0 -0
  177. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/data_examples.json +0 -0
  178. {label_studio_sdk-1.0.0/src/label_studio_sdk/_legacy → label_studio_sdk-1.0.1/src/label_studio_sdk}/label_interface/label_tags.py +0 -0
  179. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/__init__.py +0 -0
  180. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/client.py +0 -0
  181. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/__init__.py +0 -0
  182. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
  183. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
  184. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
  185. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
  186. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
  187. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
  188. {label_studio_sdk-1.0.0/src/label_studio_sdk/files → label_studio_sdk-1.0.1/src/label_studio_sdk/predictions}/__init__.py +0 -0
  189. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/predictions/client.py +0 -0
  190. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/__init__.py +0 -0
  191. {label_studio_sdk-1.0.0/src/label_studio_sdk/predictions → label_studio_sdk-1.0.1/src/label_studio_sdk/projects/exports}/__init__.py +0 -0
  192. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/exports/client.py +0 -0
  193. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/__init__.py +0 -0
  194. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_create_response.py +0 -0
  195. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
  196. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
  197. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/py.typed +0 -0
  198. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/__init__.py +0 -0
  199. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
  200. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
  201. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
  202. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/__init__.py +0 -0
  203. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
  204. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
  205. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
  206. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
  207. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
  208. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
  209. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/base_task.py +0 -0
  210. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/base_user.py +0 -0
  211. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/converted_format.py +0 -0
  212. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/converted_format_status.py +0 -0
  213. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export.py +0 -0
  214. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_convert.py +0 -0
  215. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_create.py +0 -0
  216. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_create_status.py +0 -0
  217. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/export_status.py +0 -0
  218. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/file_upload.py +0 -0
  219. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/filter.py +0 -0
  220. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/filter_group.py +0 -0
  221. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
  222. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
  223. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
  224. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
  225. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
  226. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
  227. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
  228. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
  229. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend.py +0 -0
  230. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
  231. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
  232. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/prediction.py +0 -0
  233. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project.py +0 -0
  234. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_import.py +0 -0
  235. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_import_status.py +0 -0
  236. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_label_config.py +0 -0
  237. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_sampling.py +0 -0
  238. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
  239. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
  240. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
  241. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
  242. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
  243. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3export_storage.py +0 -0
  244. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
  245. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3import_storage.py +0 -0
  246. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
  247. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/serialization_option.py +0 -0
  248. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/serialization_options.py +0 -0
  249. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/task_filter_options.py +0 -0
  250. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/user_simple.py +0 -0
  251. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/view.py +0 -0
  252. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook.py +0 -0
  253. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
  254. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
  255. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
  256. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/__init__.py +0 -0
  257. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/client.py +0 -0
  258. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/__init__.py +0 -0
  259. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
  260. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
  261. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/version.py +0 -0
  262. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/views/client.py +0 -0
  263. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/__init__.py +0 -0
  264. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/client.py +0 -0
  265. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
  266. {label_studio_sdk-1.0.0 → label_studio_sdk-1.0.1}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: label-studio-sdk
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -65,63 +65,36 @@ The Label Studio Python Library provides convenient access to the Label Studio A
65
65
 
66
66
  <!-- Outline -->
67
67
 
68
- - [Installation](#installation)
69
- - [Usage](#usage)
70
- - [Examples](#examples)
71
- - [Get all projects](#get-all-projects)
72
- - [Create a new project](#create-a-new-project)
73
- - [Get project by ID](#get-project-by-id)
74
- - [Update project](#update-project)
75
- - [Delete project](#delete-project)
76
- - [Get tasks with annotations and predictions](#get-tasks-with-annotations-and-predictions)
77
- - [Get task by ID](#get-task-by-id)
78
- - [Get all annotations for a task](#get-all-annotations-for-a-task)
79
- - [Create a new task](#create-a-new-task)
80
- - [Import batch tasks](#import-batch-tasks)
81
- - [Update task](#update-task)
82
- - [Delete task](#delete-task)
83
- - [Create prediction](#create-prediction)
84
- - [Update prediction](#update-prediction)
85
- - [Delete prediction](#delete-prediction)
86
- - [Async client](#async-client)
87
-
88
68
 
89
69
  # Documentation
90
- Explore the Label Studio API documentation [here](https://label-studio.docs.buildwithfern.com/).
70
+ Explore the Label Studio API documentation [here](https://api.labelstud.io/).
91
71
 
92
72
 
93
- <!-- Begin Installation, generated by Fern -->
94
73
  # Installation
95
74
 
96
75
  ```sh
97
76
  pip install --upgrade label-studio-sdk
98
77
  ```
99
- <!-- End Installation -->
100
78
 
101
- <!-- Begin Usage, generated by Fern -->
102
79
  # Usage
103
80
 
104
81
  ```python
105
82
  from label_studio_sdk.client import LabelStudio
106
83
 
107
- client = LabelStudio(
84
+ ls = LabelStudio(
85
+ base_url='YOUR_LABEL_STUDIO_URL',
108
86
  api_key="YOUR_API_KEY",
109
87
  )
110
88
  ```
111
- <!-- End Usage -->
112
89
 
113
90
  # Examples
114
91
 
115
- ## Get all projects
116
-
117
- ```python
118
- projects = client.projects.list()
119
- ```
92
+ Check more examples [here](https://api.labelstud.io/).
120
93
 
121
94
  ## Create a new project
122
95
 
123
96
  ```python
124
- project = client.projects.create(
97
+ project = ls.projects.create(
125
98
  name="Project name",
126
99
  description="Project description",
127
100
  label_config="""
@@ -136,143 +109,26 @@ project = client.projects.create(
136
109
  )
137
110
  ```
138
111
 
139
- ## Get project by ID
140
-
141
- ```python
142
- project = client.projects.get("PROJECT_ID")
143
- ```
144
-
145
- ## Update project
146
-
147
- ```python
148
- project = client.projects.update(
149
- project="PROJECT_ID",
150
- description="New project description",
151
- )
152
- ```
153
-
154
- ## Delete project
155
-
156
- ```python
157
- client.projects.delete("PROJECT_ID")
158
- ```
159
-
160
- ## Get tasks with annotations and predictions
161
-
162
- ```python
163
- tasks = client.tasks.list(project="PROJECT_ID")
164
- ```
165
-
166
- ## Get task by ID
167
-
168
- ```python
169
- task = client.tasks.get("TASK_ID")
170
- print(task)
171
- ```
172
- Task data, annotations and predictions in [Label Studio tasks format](https://labelstud.io/guide/task_format#Label-Studio-JSON-format-of-annotated-tasks):
173
- ```json
174
- {
175
- "id": "TASK_ID",
176
- "data": {
177
- "image": "https://example.com/image.jpg",
178
- "label": "cat"
179
- },
180
- "annotations": [],
181
- "predictions": []
182
- }
183
- ```
184
-
185
- ## Get all annotations for a task
186
-
187
- ```python
188
- annotations = client.annotations.list(task="TASK_ID")
189
- ```
190
-
191
112
  ## Create a new task
192
-
193
- ```python
194
- task = client.tasks.create(
195
- project="PROJECT_ID",
196
- data={
197
- "data": {
198
- "image": "https://example.com/image.jpg",
199
- "label": "cat"
200
- }
201
- }
202
- )
203
- ```
204
-
205
- ## Import batch tasks
206
-
207
- ```python
208
- tasks = client.projects.import_tasks(
209
- project="PROJECT_ID",
210
- data=[
211
- {
212
- "data": {
213
- "image": "https://example.com/image1.jpg",
214
- "label": "cat"
215
- }
216
- },
217
- {
218
- "data": {
219
- "image": "https://example.com/image2.jpg",
220
- "label": "dog"
221
- }
222
- }
223
- ]
224
- )
225
- ```
226
-
227
- ## Update task
228
-
113
+
229
114
  ```python
230
- task = client.tasks.update(
231
- project="PROJECT_ID",
232
- task="TASK_ID",
233
- data={
234
- "data": {
235
- "image": "https://example.com/image.jpg",
236
- "label": "dog"
237
- }
238
- }
115
+ task = ls.tasks.create(
116
+ project=project.id,
117
+ data={"image": "https://example.com/image.jpg"}
239
118
  )
240
119
  ```
120
+ Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
241
121
 
242
- ## Delete task
122
+ ## Export annotations
243
123
 
244
124
  ```python
245
- client.tasks.delete(project="PROJECT_ID", task="TASK_ID")
125
+ annotations = [
126
+ task.annotations
127
+ for task in ls.tasks.list(project=project.id, fields='all')
128
+ if task.annotations
129
+ ]
246
130
  ```
247
131
 
248
- ## Create prediction
249
-
250
- ```python
251
- prediction = client.predictions.create(
252
- task="TASK_ID",
253
- result=[{'from_name': 'bbox', 'to_name': 'image', 'type': 'labels', 'value': {'rectanglelabels': [{'x': 10, 'y': 20, 'width': 30, 'height': 40, 'rectanglelabels': ['cat']}]}}],
254
- score=0.9,
255
- model_version='yolov8',
256
- )
257
- ```
258
-
259
- ## Update prediction
260
-
261
- ```python
262
- prediction = client.predictions.update(
263
- task="TASK_ID",
264
- prediction="PREDICTION_ID",
265
- result=[{'from_name': 'bbox', 'to_name': 'image', 'type': 'labels', 'value': {'rectanglelabels': [{'x': 10, 'y': 20, 'width': 30, 'height': 40, 'rectanglelabels': ['dog']}]}}],
266
- score=0.8,
267
- model_version='yolov8',
268
- )
269
- ```
270
-
271
- ## Delete prediction
272
-
273
- ```python
274
- client.predictions.delete(task="TASK_ID", prediction="PREDICTION_ID")
275
- ```
276
132
 
277
133
  ## Async client
278
134
 
@@ -0,0 +1,126 @@
1
+ # Label Studio Python Library
2
+
3
+ <!-- Note about deprecated version <1 -->
4
+ ---
5
+ > :warning: **Note**<br/>
6
+ >
7
+ > The version of `label-studio-sdk<1` is deprecated and no longer supported. We recommend updating to the latest version.
8
+ > If you still want to use the old version, you can install it with `pip install "label-studio-sdk<1"`.
9
+ > OR You can find the branch with the old version by cloning the repository and checking out the branch as follows:
10
+ >
11
+ > ```sh
12
+ > git clone https://github.com/HumanSignal/label-studio-sdk.git
13
+ > cd label-studio-sdk
14
+ > git checkout previous-version
15
+ > ```
16
+ >
17
+ > OR you can change your import statements as follows:
18
+ > ```python
19
+ > from label_studio_sdk import Client
20
+ > from label_studio_sdk.data_manager import Filters, Column, Operator, Type
21
+ > from label_studio_sdk._legacy import Project
22
+ > ```
23
+ ---
24
+
25
+ [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-SDK%20generated%20by%20Fern-brightgreen)](https://github.com/fern-api/fern)
26
+
27
+ The Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python.
28
+ <!-- End Title -->
29
+
30
+ <!-- Outline -->
31
+
32
+
33
+ # Documentation
34
+ Explore the Label Studio API documentation [here](https://api.labelstud.io/).
35
+
36
+
37
+ # Installation
38
+
39
+ ```sh
40
+ pip install --upgrade label-studio-sdk
41
+ ```
42
+
43
+ # Usage
44
+
45
+ ```python
46
+ from label_studio_sdk.client import LabelStudio
47
+
48
+ ls = LabelStudio(
49
+ base_url='YOUR_LABEL_STUDIO_URL',
50
+ api_key="YOUR_API_KEY",
51
+ )
52
+ ```
53
+
54
+ # Examples
55
+
56
+ Check more examples [here](https://api.labelstud.io/).
57
+
58
+ ## Create a new project
59
+
60
+ ```python
61
+ project = ls.projects.create(
62
+ name="Project name",
63
+ description="Project description",
64
+ label_config="""
65
+ <View>
66
+ <Image name="image" value="$image" />
67
+ <RectangleLabels name="label" toName="image">
68
+ <Label value="cat" />
69
+ <Label value="dog" />
70
+ </RectangleLabels>
71
+ </View>
72
+ """
73
+ )
74
+ ```
75
+
76
+ ## Create a new task
77
+
78
+ ```python
79
+ task = ls.tasks.create(
80
+ project=project.id,
81
+ data={"image": "https://example.com/image.jpg"}
82
+ )
83
+ ```
84
+ Now you can open the project `PROJECT_ID` in the Label Studio UI and create annotations for the task.
85
+
86
+ ## Export annotations
87
+
88
+ ```python
89
+ annotations = [
90
+ task.annotations
91
+ for task in ls.tasks.list(project=project.id, fields='all')
92
+ if task.annotations
93
+ ]
94
+ ```
95
+
96
+
97
+ ## Async client
98
+
99
+ ```python
100
+ from label_studio_sdk.client import AsyncLabelStudio
101
+
102
+ client = AsyncLabelStudio(
103
+ api_key="YOUR_API_KEY",
104
+ )
105
+ ```
106
+
107
+ <!-- Begin Status, generated by Fern -->
108
+ # Beta Status
109
+
110
+ This SDK is in beta, and there may be breaking changes between versions without a major
111
+ version update. Therefore, we recommend pinning the package version to a specific version.
112
+ This way, you can install the same version each time without breaking changes.
113
+ <!-- End Status -->
114
+
115
+ <!-- Begin Contributing, generated by Fern -->
116
+ # Contributing
117
+
118
+ While we value open-source contributions to this SDK, this library is generated programmatically.
119
+ Additions made directly to this library would have to be moved over to our generation code,
120
+ otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
121
+ a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
122
+ an issue first to discuss with us!
123
+
124
+ On the other hand, contributions to the README are always very welcome!
125
+ <!-- End Contributing -->
126
+
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "label-studio-sdk"
3
- version = "1.0.0"
3
+ version = "1.0.1"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  authors = []
@@ -48,7 +48,7 @@ ujson = ">=5.8.0"
48
48
  xmljson = "0.2.1"
49
49
 
50
50
  [tool.poetry.dev-dependencies]
51
- mypy = "1.9.0"
51
+ mypy = "1.0.1"
52
52
  pytest = "^7.4.0"
53
53
  pytest-asyncio = "^0.23.5"
54
54
  python-dateutil = "^2.9.0"
@@ -73,6 +73,18 @@ from . import (
73
73
  webhooks,
74
74
  )
75
75
  from ._legacy import Client
76
+ from .actions import (
77
+ ActionsCreateRequestFilters,
78
+ ActionsCreateRequestFiltersConjunction,
79
+ ActionsCreateRequestFiltersItemsItem,
80
+ ActionsCreateRequestFiltersItemsItemFilter,
81
+ ActionsCreateRequestFiltersItemsItemOperator,
82
+ ActionsCreateRequestId,
83
+ ActionsCreateRequestOrderingItem,
84
+ ActionsCreateRequestSelectedItems,
85
+ ActionsCreateRequestSelectedItemsExcluded,
86
+ ActionsCreateRequestSelectedItemsIncluded,
87
+ )
76
88
  from .environment import LabelStudioEnvironment
77
89
  from .export_storage import ExportStorageListTypesResponseItem
78
90
  from .import_storage import ImportStorageListTypesResponseItem
@@ -93,18 +105,30 @@ from .views import (
93
105
  ViewsCreateRequestDataFilters,
94
106
  ViewsCreateRequestDataFiltersConjunction,
95
107
  ViewsCreateRequestDataFiltersItemsItem,
108
+ ViewsCreateRequestDataFiltersItemsItemFilter,
109
+ ViewsCreateRequestDataFiltersItemsItemOperator,
96
110
  ViewsCreateRequestDataOrderingItem,
97
- ViewsCreateRequestDataOrderingItemDirection,
98
111
  ViewsUpdateRequestData,
99
112
  ViewsUpdateRequestDataFilters,
100
113
  ViewsUpdateRequestDataFiltersConjunction,
101
114
  ViewsUpdateRequestDataFiltersItemsItem,
115
+ ViewsUpdateRequestDataFiltersItemsItemFilter,
116
+ ViewsUpdateRequestDataFiltersItemsItemOperator,
102
117
  ViewsUpdateRequestDataOrderingItem,
103
- ViewsUpdateRequestDataOrderingItemDirection,
104
118
  )
105
119
  from .webhooks import WebhooksUpdateRequestActionsItem
106
120
 
107
121
  __all__ = [
122
+ "ActionsCreateRequestFilters",
123
+ "ActionsCreateRequestFiltersConjunction",
124
+ "ActionsCreateRequestFiltersItemsItem",
125
+ "ActionsCreateRequestFiltersItemsItemFilter",
126
+ "ActionsCreateRequestFiltersItemsItemOperator",
127
+ "ActionsCreateRequestId",
128
+ "ActionsCreateRequestOrderingItem",
129
+ "ActionsCreateRequestSelectedItems",
130
+ "ActionsCreateRequestSelectedItemsExcluded",
131
+ "ActionsCreateRequestSelectedItemsIncluded",
108
132
  "Annotation",
109
133
  "AnnotationFilterOptions",
110
134
  "AnnotationLastAction",
@@ -179,14 +203,16 @@ __all__ = [
179
203
  "ViewsCreateRequestDataFilters",
180
204
  "ViewsCreateRequestDataFiltersConjunction",
181
205
  "ViewsCreateRequestDataFiltersItemsItem",
206
+ "ViewsCreateRequestDataFiltersItemsItemFilter",
207
+ "ViewsCreateRequestDataFiltersItemsItemOperator",
182
208
  "ViewsCreateRequestDataOrderingItem",
183
- "ViewsCreateRequestDataOrderingItemDirection",
184
209
  "ViewsUpdateRequestData",
185
210
  "ViewsUpdateRequestDataFilters",
186
211
  "ViewsUpdateRequestDataFiltersConjunction",
187
212
  "ViewsUpdateRequestDataFiltersItemsItem",
213
+ "ViewsUpdateRequestDataFiltersItemsItemFilter",
214
+ "ViewsUpdateRequestDataFiltersItemsItemOperator",
188
215
  "ViewsUpdateRequestDataOrderingItem",
189
- "ViewsUpdateRequestDataOrderingItemDirection",
190
216
  "Webhook",
191
217
  "WebhookActionsItem",
192
218
  "WebhookSerializerForUpdate",
@@ -0,0 +1,49 @@
1
+ import typing
2
+ from label_studio_sdk.core.pagination import SyncPager, AsyncPager, T
3
+ from label_studio_sdk.core.api_error import ApiError
4
+
5
+ # This is a custom extension of the autogenerated SyncPager and AsyncPager classes
6
+ # that works with the Label Studio SDK's default pagination behavior
7
+ # that throws 404 errors at the end of the pagination.
8
+
9
+
10
+ class SyncPagerExt(SyncPager, typing.Generic[T]):
11
+
12
+ @classmethod
13
+ def from_sync_pager(cls, sync_pager: SyncPager) -> 'SyncPagerExt':
14
+ return cls(
15
+ get_next=sync_pager.get_next,
16
+ has_next=sync_pager.has_next,
17
+ items=sync_pager.items
18
+ )
19
+
20
+ def __iter__(self) -> typing.Iterator[T]: # type: ignore
21
+ # Extends the iterator to catch 404 errors at the end of the pagination
22
+ try:
23
+ for item in super().__iter__():
24
+ yield item
25
+ except ApiError as exc:
26
+ if exc.status_code == 404:
27
+ return
28
+ raise
29
+
30
+
31
+ class AsyncPagerExt(AsyncPager, typing.Generic[T]):
32
+
33
+ @classmethod
34
+ async def from_async_pager(cls, async_pager: AsyncPager) -> 'AsyncPagerExt':
35
+ return cls(
36
+ get_next=async_pager.get_next,
37
+ has_next=async_pager.has_next,
38
+ items=async_pager.items
39
+ )
40
+
41
+ async def __aiter__(self) -> typing.AsyncIterator[T]: # type: ignore
42
+ # Extends the iterator to catch 404 errors at the end of the pagination
43
+ try:
44
+ async for item in super().__aiter__():
45
+ yield item
46
+ except ApiError as exc:
47
+ if exc.status_code == 404:
48
+ return
49
+ raise
@@ -0,0 +1,74 @@
1
+ from typing import Type, Dict, Optional, List, Tuple, Any, Union
2
+ from pydantic import BaseModel, Field, confloat
3
+
4
+ from label_studio_sdk.label_interface.region import Region
5
+
6
+
7
+ def serialize_regions(result):
8
+ """ """
9
+ res = []
10
+ relations = []
11
+ for r in result:
12
+ if isinstance(r, Region):
13
+ res.append(r._dict())
14
+ if r.has_relations:
15
+ relations.append(r._dict_relations())
16
+ else:
17
+ res.append(r)
18
+
19
+ return res + relations
20
+
21
+
22
+ class PredictionValue(BaseModel):
23
+ """ """
24
+
25
+ model_version: Optional[Any] = None
26
+ score: Optional[float] = 0.00
27
+ result: Optional[List[Union[Dict[str, Any], Region]]]
28
+ # cluster: Optional[Any] = None
29
+ # neighbors: Optional[Any] = None
30
+
31
+ class Config:
32
+ allow_population_by_field_name = True
33
+
34
+ def serialize(self):
35
+ """ """
36
+ return {
37
+ "model_version": self.model_version,
38
+ "score": self.score,
39
+ "result": serialize_regions(self.result),
40
+ }
41
+
42
+
43
+ class AnnotationValue(BaseModel):
44
+ """ """
45
+
46
+ was_cancelled: Optional[bool] = False
47
+ ground_truth: Optional[bool] = False
48
+ lead_time: Optional[float] = 0.0
49
+ result_count: Optional[int] = 0
50
+ completed_by: int
51
+
52
+ result: Optional[List[Union[Dict[str, Any], Region]]]
53
+
54
+ class Config:
55
+ allow_population_by_field_name = True
56
+
57
+ def serialize(self):
58
+ """ """
59
+ return {
60
+ "was_cancelled": self.was_cancelled,
61
+ "ground_truth": self.ground_truth,
62
+ "lead_time": self.lead_time,
63
+ "result_count": self.result_count,
64
+ "completed_by": self.completed_by,
65
+ "result": serialize_regions(self.result),
66
+ }
67
+
68
+
69
+ class TaskValue(BaseModel):
70
+ """ """
71
+
72
+ data: Optional[dict]
73
+ annotations: Optional[List[AnnotationValue]]
74
+ predictions: Optional[List[PredictionValue]]
@@ -37,19 +37,19 @@
37
37
  },
38
38
  "tag_with_value_required_name": {
39
39
  "type": "object",
40
- "oneOf": [
41
- {
42
- "required": [
43
- "@name",
44
- "@value"
45
- ]
46
- },
47
- {
48
- "required": [
49
- "@name",
50
- "@valueList"
51
- ]
52
- }
40
+ "anyOf": [
41
+ {
42
+ "required": [
43
+ "@name",
44
+ "@valueList"
45
+ ]
46
+ },
47
+ {
48
+ "required": [
49
+ "@name",
50
+ "@value"
51
+ ]
52
+ }
53
53
  ],
54
54
  "properties": {
55
55
  "@value": {
@@ -223,4 +223,4 @@
223
223
  }
224
224
  }
225
225
  }
226
- }
226
+ }
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .types import (
4
+ ActionsCreateRequestFilters,
5
+ ActionsCreateRequestFiltersConjunction,
6
+ ActionsCreateRequestFiltersItemsItem,
7
+ ActionsCreateRequestFiltersItemsItemFilter,
8
+ ActionsCreateRequestFiltersItemsItemOperator,
9
+ ActionsCreateRequestId,
10
+ ActionsCreateRequestOrderingItem,
11
+ ActionsCreateRequestSelectedItems,
12
+ ActionsCreateRequestSelectedItemsExcluded,
13
+ ActionsCreateRequestSelectedItemsIncluded,
14
+ )
15
+
16
+ __all__ = [
17
+ "ActionsCreateRequestFilters",
18
+ "ActionsCreateRequestFiltersConjunction",
19
+ "ActionsCreateRequestFiltersItemsItem",
20
+ "ActionsCreateRequestFiltersItemsItemFilter",
21
+ "ActionsCreateRequestFiltersItemsItemOperator",
22
+ "ActionsCreateRequestId",
23
+ "ActionsCreateRequestOrderingItem",
24
+ "ActionsCreateRequestSelectedItems",
25
+ "ActionsCreateRequestSelectedItemsExcluded",
26
+ "ActionsCreateRequestSelectedItemsIncluded",
27
+ ]