label-studio-sdk 1.0.10__tar.gz → 1.0.11__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 (366) hide show
  1. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/PKG-INFO +2 -1
  2. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/pyproject.toml +3 -1
  3. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/__init__.py +17 -1
  4. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +5 -0
  5. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/base_client.py +8 -0
  6. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/client_wrapper.py +34 -15
  7. label_studio_sdk-1.0.11/src/label_studio_sdk/errors/__init__.py +8 -0
  8. label_studio_sdk-1.0.11/src/label_studio_sdk/errors/not_found_error.py +9 -0
  9. label_studio_sdk-1.0.11/src/label_studio_sdk/errors/unauthorized_error.py +9 -0
  10. label_studio_sdk-1.0.11/src/label_studio_sdk/jwt_settings/client.py +259 -0
  11. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/control_tags.py +15 -2
  12. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/interface.py +80 -1
  13. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/object_tags.py +2 -2
  14. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/__init__.py +2 -1
  15. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/client.py +4 -0
  16. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/client_ext.py +106 -40
  17. label_studio_sdk-1.0.11/src/label_studio_sdk/projects/pauses/client.py +704 -0
  18. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/types/projects_update_response.py +10 -0
  19. label_studio_sdk-1.0.11/src/label_studio_sdk/prompts/indicators/__init__.py +2 -0
  20. label_studio_sdk-1.0.11/src/label_studio_sdk/prompts/versions/__init__.py +2 -0
  21. label_studio_sdk-1.0.11/src/label_studio_sdk/tokens/__init__.py +2 -0
  22. label_studio_sdk-1.0.11/src/label_studio_sdk/tokens/client.py +470 -0
  23. label_studio_sdk-1.0.11/src/label_studio_sdk/tokens/client_ext.py +94 -0
  24. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/__init__.py +10 -0
  25. label_studio_sdk-1.0.11/src/label_studio_sdk/types/access_token_response.py +22 -0
  26. label_studio_sdk-1.0.11/src/label_studio_sdk/types/api_token_response.py +32 -0
  27. label_studio_sdk-1.0.11/src/label_studio_sdk/types/jwt_settings_response.py +32 -0
  28. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection_provider.py +1 -1
  29. label_studio_sdk-1.0.11/src/label_studio_sdk/types/pause.py +34 -0
  30. label_studio_sdk-1.0.11/src/label_studio_sdk/types/pause_paused_by.py +5 -0
  31. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project.py +10 -0
  32. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_version_provider.py +1 -1
  33. label_studio_sdk-1.0.10/src/label_studio_sdk/errors/__init__.py +0 -6
  34. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/LICENSE +0 -0
  35. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/README.md +0 -0
  36. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/__init__.py +0 -0
  37. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/eval/categorical.py +0 -0
  38. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/__init__.py +0 -0
  39. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/__init__.py +0 -0
  40. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +0 -0
  41. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/__init__.py +0 -0
  42. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/exceptions.py +0 -0
  43. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +0 -0
  44. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/core/utils/params.py +0 -0
  45. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/etl/__init__.py +0 -0
  46. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/etl/beam.py +0 -0
  47. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/etl/example.py +0 -0
  48. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/etl/registry.py +0 -0
  49. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/__init__.py +0 -0
  50. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/label_studio_tools/postprocessing/video.py +0 -0
  51. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_extensions/pager_ext.py +0 -0
  52. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/__init__.py +0 -0
  53. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/client.py +0 -0
  54. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/exceptions.py +0 -0
  55. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/project.py +0 -0
  56. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/schema/label_config_schema.json +0 -0
  57. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/users.py +0 -0
  58. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/utils.py +0 -0
  59. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/_legacy/workspaces.py +0 -0
  60. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/__init__.py +0 -0
  61. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/client.py +0 -0
  62. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/__init__.py +0 -0
  63. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters.py +0 -0
  64. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +0 -0
  65. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +0 -0
  66. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +0 -0
  67. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +0 -0
  68. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +0 -0
  69. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_id.py +0 -0
  70. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_ordering_item.py +0 -0
  71. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_selected_items.py +0 -0
  72. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +0 -0
  73. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +0 -0
  74. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/annotations/__init__.py +0 -0
  75. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/annotations/client.py +0 -0
  76. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/annotations/types/__init__.py +0 -0
  77. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -0
  78. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +0 -0
  79. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/client.py +0 -0
  80. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/comments/__init__.py +0 -0
  81. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/comments/client.py +0 -0
  82. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/__init__.py +0 -0
  83. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/audio.py +0 -0
  84. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/brush.py +0 -0
  85. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/converter.py +0 -0
  86. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/exports/__init__.py +0 -0
  87. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/exports/csv.py +0 -0
  88. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/exports/csv2.py +0 -0
  89. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/funsd.py +0 -0
  90. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/__init__.py +0 -0
  91. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/coco.py +0 -0
  92. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/colors.py +0 -0
  93. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/label_config.py +0 -0
  94. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/pathtrack.py +0 -0
  95. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/imports/yolo.py +0 -0
  96. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/main.py +0 -0
  97. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/converter/utils.py +0 -0
  98. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/__init__.py +0 -0
  99. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/api_error.py +0 -0
  100. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/datetime_utils.py +0 -0
  101. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/file.py +0 -0
  102. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/http_client.py +0 -0
  103. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/jsonable_encoder.py +0 -0
  104. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/pagination.py +0 -0
  105. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/pydantic_utilities.py +0 -0
  106. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/query_encoder.py +0 -0
  107. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/remove_none_from_dict.py +0 -0
  108. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/request_options.py +0 -0
  109. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/core/serialization.py +0 -0
  110. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/data_manager.py +0 -0
  111. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/environment.py +0 -0
  112. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/errors/bad_request_error.py +0 -0
  113. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/errors/internal_server_error.py +0 -0
  114. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/__init__.py +0 -0
  115. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/azure/__init__.py +0 -0
  116. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/azure/client.py +0 -0
  117. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/azure/types/__init__.py +0 -0
  118. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -0
  119. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -0
  120. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/client.py +0 -0
  121. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/gcs/__init__.py +0 -0
  122. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/gcs/client.py +0 -0
  123. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/gcs/types/__init__.py +0 -0
  124. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -0
  125. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -0
  126. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/local/__init__.py +0 -0
  127. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/local/client.py +0 -0
  128. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/local/types/__init__.py +0 -0
  129. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/local/types/local_create_response.py +0 -0
  130. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/local/types/local_update_response.py +0 -0
  131. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/redis/__init__.py +0 -0
  132. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/redis/client.py +0 -0
  133. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/redis/types/__init__.py +0 -0
  134. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -0
  135. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -0
  136. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3/__init__.py +0 -0
  137. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3/client.py +0 -0
  138. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3/types/__init__.py +0 -0
  139. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -0
  140. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -0
  141. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3s/__init__.py +0 -0
  142. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/s3s/client.py +0 -0
  143. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/types/__init__.py +0 -0
  144. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +0 -0
  145. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/files/__init__.py +0 -0
  146. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/files/client.py +0 -0
  147. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/__init__.py +0 -0
  148. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/azure/__init__.py +0 -0
  149. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/azure/client.py +0 -0
  150. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/azure/types/__init__.py +0 -0
  151. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -0
  152. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -0
  153. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/client.py +0 -0
  154. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/gcs/__init__.py +0 -0
  155. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/gcs/client.py +0 -0
  156. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/gcs/types/__init__.py +0 -0
  157. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -0
  158. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -0
  159. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/local/__init__.py +0 -0
  160. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/local/client.py +0 -0
  161. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/local/types/__init__.py +0 -0
  162. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/local/types/local_create_response.py +0 -0
  163. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/local/types/local_update_response.py +0 -0
  164. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/redis/__init__.py +0 -0
  165. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/redis/client.py +0 -0
  166. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/redis/types/__init__.py +0 -0
  167. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -0
  168. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -0
  169. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3/__init__.py +0 -0
  170. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3/client.py +0 -0
  171. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3/types/__init__.py +0 -0
  172. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3/types/s3create_response.py +0 -0
  173. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3/types/s3update_response.py +0 -0
  174. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3s/__init__.py +0 -0
  175. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/s3s/client.py +0 -0
  176. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/types/__init__.py +0 -0
  177. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +0 -0
  178. {label_studio_sdk-1.0.10/src/label_studio_sdk/model_providers → label_studio_sdk-1.0.11/src/label_studio_sdk/jwt_settings}/__init__.py +0 -0
  179. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/__init__.py +0 -0
  180. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/base.py +0 -0
  181. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/create.py +0 -0
  182. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/data_examples.json +0 -0
  183. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/label_tags.py +0 -0
  184. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/objects.py +0 -0
  185. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/label_interface/region.py +0 -0
  186. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/__init__.py +0 -0
  187. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/client.py +0 -0
  188. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/__init__.py +0 -0
  189. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_create_request_auth_method.py +0 -0
  190. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_create_response.py +0 -0
  191. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -0
  192. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_update_request_auth_method.py +0 -0
  193. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_update_response.py +0 -0
  194. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -0
  195. {label_studio_sdk-1.0.10/src/label_studio_sdk/predictions → label_studio_sdk-1.0.11/src/label_studio_sdk/model_providers}/__init__.py +0 -0
  196. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/model_providers/client.py +0 -0
  197. {label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/indicators → label_studio_sdk-1.0.11/src/label_studio_sdk/predictions}/__init__.py +0 -0
  198. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/predictions/client.py +0 -0
  199. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/client_ext.py +0 -0
  200. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/__init__.py +0 -0
  201. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/client.py +0 -0
  202. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/types/__init__.py +0 -0
  203. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/types/exports_convert_response.py +0 -0
  204. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -0
  205. {label_studio_sdk-1.0.10/src/label_studio_sdk/prompts/versions → label_studio_sdk-1.0.11/src/label_studio_sdk/projects/pauses}/__init__.py +0 -0
  206. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/types/__init__.py +0 -0
  207. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/types/projects_create_response.py +0 -0
  208. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/types/projects_import_tasks_response.py +0 -0
  209. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/projects/types/projects_list_response.py +0 -0
  210. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/__init__.py +0 -0
  211. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/client.py +0 -0
  212. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/indicators/client.py +0 -0
  213. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/runs/__init__.py +0 -0
  214. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/runs/client.py +0 -0
  215. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/runs/types/__init__.py +0 -0
  216. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/runs/types/runs_list_request_project_subset.py +0 -0
  217. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/types/__init__.py +0 -0
  218. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -0
  219. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +0 -0
  220. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -0
  221. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +0 -0
  222. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/prompts/versions/client.py +0 -0
  223. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/py.typed +0 -0
  224. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/__init__.py +0 -0
  225. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/client.py +0 -0
  226. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/client_ext.py +0 -0
  227. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/types/__init__.py +0 -0
  228. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/types/tasks_list_request_fields.py +0 -0
  229. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/tasks/types/tasks_list_response.py +0 -0
  230. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/annotation.py +0 -0
  231. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/annotation_filter_options.py +0 -0
  232. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/annotation_last_action.py +0 -0
  233. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/annotations_dm_field.py +0 -0
  234. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/annotations_dm_field_last_action.py +0 -0
  235. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/azure_blob_export_storage.py +0 -0
  236. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/azure_blob_export_storage_status.py +0 -0
  237. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/azure_blob_import_storage.py +0 -0
  238. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/azure_blob_import_storage_status.py +0 -0
  239. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/base_task.py +0 -0
  240. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/base_task_file_upload.py +0 -0
  241. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/base_task_updated_by.py +0 -0
  242. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/base_user.py +0 -0
  243. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/comment.py +0 -0
  244. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/comment_created_by.py +0 -0
  245. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/converted_format.py +0 -0
  246. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/converted_format_status.py +0 -0
  247. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/data_manager_task_serializer.py +0 -0
  248. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -0
  249. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +0 -0
  250. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +0 -0
  251. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/export.py +0 -0
  252. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/export_format.py +0 -0
  253. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/export_snapshot.py +0 -0
  254. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/export_snapshot_status.py +0 -0
  255. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/export_status.py +0 -0
  256. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/file_upload.py +0 -0
  257. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/filter.py +0 -0
  258. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/filter_group.py +0 -0
  259. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/gcs_export_storage.py +0 -0
  260. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/gcs_export_storage_status.py +0 -0
  261. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/gcs_import_storage.py +0 -0
  262. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/gcs_import_storage_status.py +0 -0
  263. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run.py +0 -0
  264. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run_cost_estimate.py +0 -0
  265. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run_created_by.py +0 -0
  266. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run_organization.py +0 -0
  267. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run_project_subset.py +0 -0
  268. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/inference_run_status.py +0 -0
  269. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/key_indicator_value.py +0 -0
  270. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/key_indicators.py +0 -0
  271. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/key_indicators_item.py +0 -0
  272. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +0 -0
  273. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +0 -0
  274. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/local_files_export_storage.py +0 -0
  275. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/local_files_export_storage_status.py +0 -0
  276. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/local_files_import_storage.py +0 -0
  277. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/local_files_import_storage_status.py +0 -0
  278. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/ml_backend.py +0 -0
  279. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/ml_backend_auth_method.py +0 -0
  280. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/ml_backend_state.py +0 -0
  281. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection.py +0 -0
  282. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection_budget_reset_period.py +0 -0
  283. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection_created_by.py +0 -0
  284. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection_organization.py +0 -0
  285. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/model_provider_connection_scope.py +0 -0
  286. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prediction.py +0 -0
  287. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project_import.py +0 -0
  288. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project_import_status.py +0 -0
  289. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project_label_config.py +0 -0
  290. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project_sampling.py +0 -0
  291. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/project_skip_queue.py +0 -0
  292. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt.py +0 -0
  293. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_associated_projects_item.py +0 -0
  294. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_associated_projects_item_id.py +0 -0
  295. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_created_by.py +0 -0
  296. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_organization.py +0 -0
  297. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_version.py +0 -0
  298. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_version_created_by.py +0 -0
  299. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/prompt_version_organization.py +0 -0
  300. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/redis_export_storage.py +0 -0
  301. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/redis_export_storage_status.py +0 -0
  302. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/redis_import_storage.py +0 -0
  303. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/redis_import_storage_status.py +0 -0
  304. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/refined_prompt_response.py +0 -0
  305. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -0
  306. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3export_storage.py +0 -0
  307. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3export_storage_status.py +0 -0
  308. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3import_storage.py +0 -0
  309. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3import_storage_status.py +0 -0
  310. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3s_export_storage.py +0 -0
  311. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3s_import_storage.py +0 -0
  312. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/s3s_import_storage_status.py +0 -0
  313. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/serialization_option.py +0 -0
  314. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/serialization_options.py +0 -0
  315. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/task.py +0 -0
  316. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/task_annotators_item.py +0 -0
  317. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/task_comment_authors_item.py +0 -0
  318. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/task_filter_options.py +0 -0
  319. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/user_simple.py +0 -0
  320. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/view.py +0 -0
  321. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/webhook.py +0 -0
  322. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/webhook_actions_item.py +0 -0
  323. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/webhook_serializer_for_update.py +0 -0
  324. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -0
  325. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/types/workspace.py +0 -0
  326. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/users/__init__.py +0 -0
  327. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/users/client.py +0 -0
  328. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/users/types/__init__.py +0 -0
  329. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/users/types/users_get_token_response.py +0 -0
  330. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/users/types/users_reset_token_response.py +0 -0
  331. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/version.py +0 -0
  332. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/versions/__init__.py +0 -0
  333. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/versions/client.py +0 -0
  334. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/versions/types/__init__.py +0 -0
  335. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/versions/types/versions_get_response.py +0 -0
  336. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/versions/types/versions_get_response_edition.py +0 -0
  337. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/__init__.py +0 -0
  338. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/client.py +0 -0
  339. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/__init__.py +0 -0
  340. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data.py +0 -0
  341. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters.py +0 -0
  342. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +0 -0
  343. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +0 -0
  344. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +0 -0
  345. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +0 -0
  346. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +0 -0
  347. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_create_request_data_ordering_item.py +0 -0
  348. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data.py +0 -0
  349. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters.py +0 -0
  350. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +0 -0
  351. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +0 -0
  352. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +0 -0
  353. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +0 -0
  354. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +0 -0
  355. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/views/types/views_update_request_data_ordering_item.py +0 -0
  356. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/webhooks/__init__.py +0 -0
  357. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/webhooks/client.py +0 -0
  358. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/webhooks/types/__init__.py +0 -0
  359. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/webhooks/types/webhooks_update_request_actions_item.py +0 -0
  360. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/__init__.py +0 -0
  361. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/client.py +0 -0
  362. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/members/__init__.py +0 -0
  363. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/members/client.py +0 -0
  364. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/members/types/__init__.py +0 -0
  365. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/src/label_studio_sdk/workspaces/members/types/members_create_response.py +0 -0
  366. {label_studio_sdk-1.0.10 → label_studio_sdk-1.0.11}/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.10
3
+ Version: 1.0.11
4
4
  Summary:
5
5
  Requires-Python: >=3.9,<4
6
6
  Classifier: Intended Audience :: Developers
@@ -32,6 +32,7 @@ Requires-Dist: numpy (>=1.26.4,<2.0.0)
32
32
  Requires-Dist: pandas (>=0.24.0)
33
33
  Requires-Dist: pydantic (>=1.9.2)
34
34
  Requires-Dist: pydantic-core (>=2.18.2,<3.0.0)
35
+ Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
35
36
  Requires-Dist: requests (>=2.22.0)
36
37
  Requires-Dist: requests-mock (==1.12.1)
37
38
  Requires-Dist: typing_extensions (>=4.0.0)
@@ -3,7 +3,7 @@ name = "label-studio-sdk"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "label-studio-sdk"
6
- version = "1.0.10"
6
+ version = "1.0.11"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -48,6 +48,7 @@ numpy = ">=1.26.4,<2.0.0"
48
48
  pandas = ">=0.24.0"
49
49
  pydantic = ">= 1.9.2"
50
50
  pydantic-core = "^2.18.2"
51
+ pyjwt = "^2.10.1"
51
52
  requests = ">=2.22.0"
52
53
  requests-mock = "1.12.1"
53
54
  typing_extensions = ">= 4.0.0"
@@ -60,6 +61,7 @@ pytest = "^7.4.0"
60
61
  pytest-asyncio = "^0.23.5"
61
62
  python-dateutil = "^2.9.0"
62
63
  types-python-dateutil = "^2.9.0.20240316"
64
+ respx = "^0.22.0"
63
65
  ruff = "^0.5.6"
64
66
 
65
67
  [tool.pytest.ini_options]
@@ -1,11 +1,13 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from .types import (
4
+ AccessTokenResponse,
4
5
  Annotation,
5
6
  AnnotationFilterOptions,
6
7
  AnnotationLastAction,
7
8
  AnnotationsDmField,
8
9
  AnnotationsDmFieldLastAction,
10
+ ApiTokenResponse,
9
11
  AzureBlobExportStorage,
10
12
  AzureBlobExportStorageStatus,
11
13
  AzureBlobImportStorage,
@@ -40,6 +42,7 @@ from .types import (
40
42
  InferenceRunOrganization,
41
43
  InferenceRunProjectSubset,
42
44
  InferenceRunStatus,
45
+ JwtSettingsResponse,
43
46
  KeyIndicatorValue,
44
47
  KeyIndicators,
45
48
  KeyIndicatorsItem,
@@ -58,6 +61,8 @@ from .types import (
58
61
  ModelProviderConnectionOrganization,
59
62
  ModelProviderConnectionProvider,
60
63
  ModelProviderConnectionScope,
64
+ Pause,
65
+ PausePausedBy,
61
66
  Prediction,
62
67
  Project,
63
68
  ProjectImport,
@@ -101,7 +106,7 @@ from .types import (
101
106
  WebhookSerializerForUpdateActionsItem,
102
107
  Workspace,
103
108
  )
104
- from .errors import BadRequestError, InternalServerError
109
+ from .errors import BadRequestError, InternalServerError, NotFoundError, UnauthorizedError
105
110
  from . import (
106
111
  actions,
107
112
  annotations,
@@ -109,12 +114,14 @@ from . import (
109
114
  export_storage,
110
115
  files,
111
116
  import_storage,
117
+ jwt_settings,
112
118
  ml,
113
119
  model_providers,
114
120
  predictions,
115
121
  projects,
116
122
  prompts,
117
123
  tasks,
124
+ tokens,
118
125
  users,
119
126
  versions,
120
127
  views,
@@ -180,6 +187,7 @@ from .views import (
180
187
  from .webhooks import WebhooksUpdateRequestActionsItem
181
188
 
182
189
  __all__ = [
190
+ "AccessTokenResponse",
183
191
  "ActionsCreateRequestFilters",
184
192
  "ActionsCreateRequestFiltersConjunction",
185
193
  "ActionsCreateRequestFiltersItemsItem",
@@ -198,6 +206,7 @@ __all__ = [
198
206
  "AnnotationsCreateBulkResponseItem",
199
207
  "AnnotationsDmField",
200
208
  "AnnotationsDmFieldLastAction",
209
+ "ApiTokenResponse",
201
210
  "AsyncLabelStudio",
202
211
  "AzureBlobExportStorage",
203
212
  "AzureBlobExportStorageStatus",
@@ -238,6 +247,7 @@ __all__ = [
238
247
  "InferenceRunProjectSubset",
239
248
  "InferenceRunStatus",
240
249
  "InternalServerError",
250
+ "JwtSettingsResponse",
241
251
  "KeyIndicatorValue",
242
252
  "KeyIndicators",
243
253
  "KeyIndicatorsItem",
@@ -264,6 +274,9 @@ __all__ = [
264
274
  "ModelProviderConnectionOrganization",
265
275
  "ModelProviderConnectionProvider",
266
276
  "ModelProviderConnectionScope",
277
+ "NotFoundError",
278
+ "Pause",
279
+ "PausePausedBy",
267
280
  "Prediction",
268
281
  "Project",
269
282
  "ProjectImport",
@@ -309,6 +322,7 @@ __all__ = [
309
322
  "TaskFilterOptions",
310
323
  "TasksListRequestFields",
311
324
  "TasksListResponse",
325
+ "UnauthorizedError",
312
326
  "UserSimple",
313
327
  "UsersGetTokenResponse",
314
328
  "UsersResetTokenResponse",
@@ -344,12 +358,14 @@ __all__ = [
344
358
  "export_storage",
345
359
  "files",
346
360
  "import_storage",
361
+ "jwt_settings",
347
362
  "ml",
348
363
  "model_providers",
349
364
  "predictions",
350
365
  "projects",
351
366
  "prompts",
352
367
  "tasks",
368
+ "tokens",
353
369
  "users",
354
370
  "versions",
355
371
  "views",
@@ -2,6 +2,7 @@ import json
2
2
  import types
3
3
  import sys
4
4
  import functools
5
+ import logging
5
6
  from typing import Type, Dict, Any, Tuple, Generator
6
7
  from pathlib import Path
7
8
  from tempfile import TemporaryDirectory
@@ -11,6 +12,8 @@ from datamodel_code_generator.parser.jsonschema import JsonSchemaParser
11
12
  from pydantic import BaseModel
12
13
  from contextlib import contextmanager
13
14
 
15
+ logger = logging.getLogger(__name__)
16
+
14
17
 
15
18
  @functools.lru_cache(maxsize=128)
16
19
  def _generate_model_code(json_schema_str: str, class_name: str = 'MyModel') -> str:
@@ -65,6 +68,7 @@ def json_schema_to_pydantic(json_schema: dict, class_name: str = 'MyModel') -> G
65
68
  json_schema_str = json.dumps(json_schema)
66
69
 
67
70
  # Generate Pydantic model code from the JSON schema string
71
+ logger.debug(f"Generating Pydantic model code from json schema: {json_schema_str}")
68
72
  model_code: str = _generate_model_code(json_schema_str, class_name)
69
73
 
70
74
  # Create a unique module name using the id of the JSON schema string
@@ -79,6 +83,7 @@ def json_schema_to_pydantic(json_schema: dict, class_name: str = 'MyModel') -> G
79
83
  # Add the new module to sys.modules to make it importable
80
84
  # This is necessary to avoid Pydantic errors related to undefined models
81
85
  sys.modules[module_name] = mod
86
+ logger.debug(f"Generated Pydantic model: {model_class}")
82
87
  yield model_class
83
88
  finally:
84
89
  if module_name in sys.modules:
@@ -23,6 +23,8 @@ from .prompts.client import PromptsClient
23
23
  from .model_providers.client import ModelProvidersClient
24
24
  from .comments.client import CommentsClient
25
25
  from .workspaces.client import WorkspacesClient
26
+ from .tokens.client import TokensClient
27
+ from .jwt_settings.client import JwtSettingsClient
26
28
  from .core.client_wrapper import AsyncClientWrapper
27
29
  from .annotations.client import AsyncAnnotationsClient
28
30
  from .users.client import AsyncUsersClient
@@ -41,6 +43,8 @@ from .prompts.client import AsyncPromptsClient
41
43
  from .model_providers.client import AsyncModelProvidersClient
42
44
  from .comments.client import AsyncCommentsClient
43
45
  from .workspaces.client import AsyncWorkspacesClient
46
+ from .tokens.client import AsyncTokensClient
47
+ from .jwt_settings.client import AsyncJwtSettingsClient
44
48
 
45
49
 
46
50
  class LabelStudioBase:
@@ -122,6 +126,8 @@ class LabelStudioBase:
122
126
  self.model_providers = ModelProvidersClient(client_wrapper=self._client_wrapper)
123
127
  self.comments = CommentsClient(client_wrapper=self._client_wrapper)
124
128
  self.workspaces = WorkspacesClient(client_wrapper=self._client_wrapper)
129
+ self.tokens = TokensClient(client_wrapper=self._client_wrapper)
130
+ self.jwt_settings = JwtSettingsClient(client_wrapper=self._client_wrapper)
125
131
 
126
132
 
127
133
  class AsyncLabelStudioBase:
@@ -203,6 +209,8 @@ class AsyncLabelStudioBase:
203
209
  self.model_providers = AsyncModelProvidersClient(client_wrapper=self._client_wrapper)
204
210
  self.comments = AsyncCommentsClient(client_wrapper=self._client_wrapper)
205
211
  self.workspaces = AsyncWorkspacesClient(client_wrapper=self._client_wrapper)
212
+ self.tokens = AsyncTokensClient(client_wrapper=self._client_wrapper)
213
+ self.jwt_settings = AsyncJwtSettingsClient(client_wrapper=self._client_wrapper)
206
214
 
207
215
 
208
216
  def _get_base_url(*, base_url: typing.Optional[str] = None, environment: LabelStudioEnvironment) -> str:
@@ -1,36 +1,55 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
1
  import typing
2
+
4
3
  import httpx
5
- from .http_client import HttpClient
6
- from .http_client import AsyncHttpClient
4
+
5
+ from .http_client import AsyncHttpClient, HttpClient
7
6
 
8
7
 
9
8
  class BaseClientWrapper:
10
- def __init__(self, *, api_key: str, base_url: str, timeout: typing.Optional[float] = None):
11
- self.api_key = api_key
9
+ def __init__(
10
+ self,
11
+ *,
12
+ api_key: str,
13
+ base_url: str,
14
+ timeout: typing.Optional[float] = None,
15
+ ):
12
16
  self._base_url = base_url
13
17
  self._timeout = timeout
14
18
 
19
+ # even in the async case, refreshing access token (when the existing one is expired) should be sync
20
+ from ..tokens.client_ext import TokensClientExt
21
+ self._tokens_client = TokensClientExt(base_url=base_url, api_key=api_key)
22
+
23
+
24
+ def get_timeout(self) -> typing.Optional[float]:
25
+ return self._timeout
26
+
27
+
28
+ def get_base_url(self) -> str:
29
+ return self._base_url
30
+
31
+
15
32
  def get_headers(self) -> typing.Dict[str, str]:
16
33
  headers: typing.Dict[str, str] = {
17
34
  "X-Fern-Language": "Python",
18
35
  "X-Fern-SDK-Name": "label-studio-sdk",
19
- "X-Fern-SDK-Version": "1.0.9",
36
+ "X-Fern-SDK-Version": "1.0.11",
20
37
  }
21
- headers["Authorization"] = f"Token {self.api_key}"
38
+ if self._tokens_client._use_legacy_token:
39
+ headers["Authorization"] = f"Token {self._tokens_client.api_key}"
40
+ else:
41
+ headers["Authorization"] = f"Bearer {self._tokens_client.api_key}"
22
42
  return headers
23
43
 
24
- def get_base_url(self) -> str:
25
- return self._base_url
26
-
27
- def get_timeout(self) -> typing.Optional[float]:
28
- return self._timeout
29
-
30
44
 
31
45
  class SyncClientWrapper(BaseClientWrapper):
32
46
  def __init__(
33
- self, *, api_key: str, base_url: str, timeout: typing.Optional[float] = None, httpx_client: httpx.Client
47
+ self,
48
+ *,
49
+ api_key: str,
50
+ base_url: str,
51
+ timeout: typing.Optional[float] = None,
52
+ httpx_client: httpx.Client,
34
53
  ):
35
54
  super().__init__(api_key=api_key, base_url=base_url, timeout=timeout)
36
55
  self.httpx_client = HttpClient(
@@ -0,0 +1,8 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .bad_request_error import BadRequestError
4
+ from .internal_server_error import InternalServerError
5
+ from .not_found_error import NotFoundError
6
+ from .unauthorized_error import UnauthorizedError
7
+
8
+ __all__ = ["BadRequestError", "InternalServerError", "NotFoundError", "UnauthorizedError"]
@@ -0,0 +1,9 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.api_error import ApiError
4
+ import typing
5
+
6
+
7
+ class NotFoundError(ApiError):
8
+ def __init__(self, body: typing.Optional[typing.Any]):
9
+ super().__init__(status_code=404, body=body)
@@ -0,0 +1,9 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.api_error import ApiError
4
+ import typing
5
+
6
+
7
+ class UnauthorizedError(ApiError):
8
+ def __init__(self, body: typing.Optional[typing.Any]):
9
+ super().__init__(status_code=401, body=body)
@@ -0,0 +1,259 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ..core.client_wrapper import SyncClientWrapper
5
+ from ..core.request_options import RequestOptions
6
+ from ..types.jwt_settings_response import JwtSettingsResponse
7
+ from ..core.pydantic_utilities import parse_obj_as
8
+ from json.decoder import JSONDecodeError
9
+ from ..core.api_error import ApiError
10
+ from ..core.client_wrapper import AsyncClientWrapper
11
+
12
+ # this is used as the default value for optional parameters
13
+ OMIT = typing.cast(typing.Any, ...)
14
+
15
+
16
+ class JwtSettingsClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._client_wrapper = client_wrapper
19
+
20
+ def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> JwtSettingsResponse:
21
+ """
22
+ Retrieve JWT settings for the currently active organization.
23
+
24
+ Parameters
25
+ ----------
26
+ request_options : typing.Optional[RequestOptions]
27
+ Request-specific configuration.
28
+
29
+ Returns
30
+ -------
31
+ JwtSettingsResponse
32
+ JWT settings retrieved successfully
33
+
34
+ Examples
35
+ --------
36
+ from label_studio_sdk import LabelStudio
37
+
38
+ client = LabelStudio(
39
+ api_key="YOUR_API_KEY",
40
+ )
41
+ client.jwt_settings.get()
42
+ """
43
+ _response = self._client_wrapper.httpx_client.request(
44
+ "api/jwt/settings",
45
+ method="GET",
46
+ request_options=request_options,
47
+ )
48
+ try:
49
+ if 200 <= _response.status_code < 300:
50
+ return typing.cast(
51
+ JwtSettingsResponse,
52
+ parse_obj_as(
53
+ type_=JwtSettingsResponse, # type: ignore
54
+ object_=_response.json(),
55
+ ),
56
+ )
57
+ _response_json = _response.json()
58
+ except JSONDecodeError:
59
+ raise ApiError(status_code=_response.status_code, body=_response.text)
60
+ raise ApiError(status_code=_response.status_code, body=_response_json)
61
+
62
+ def create(
63
+ self,
64
+ *,
65
+ api_tokens_enabled: bool,
66
+ legacy_api_tokens_enabled: bool,
67
+ api_token_ttl_days: int,
68
+ request_options: typing.Optional[RequestOptions] = None,
69
+ ) -> JwtSettingsResponse:
70
+ """
71
+ Update JWT settings for the currently active organization.
72
+
73
+ Parameters
74
+ ----------
75
+ api_tokens_enabled : bool
76
+ Whether JWT API tokens are enabled
77
+
78
+ legacy_api_tokens_enabled : bool
79
+ Whether legacy API tokens are enabled
80
+
81
+ api_token_ttl_days : int
82
+ Number of days before API tokens expire
83
+
84
+ request_options : typing.Optional[RequestOptions]
85
+ Request-specific configuration.
86
+
87
+ Returns
88
+ -------
89
+ JwtSettingsResponse
90
+ JWT settings updated successfully
91
+
92
+ Examples
93
+ --------
94
+ from label_studio_sdk import LabelStudio
95
+
96
+ client = LabelStudio(
97
+ api_key="YOUR_API_KEY",
98
+ )
99
+ client.jwt_settings.create(
100
+ api_tokens_enabled=True,
101
+ legacy_api_tokens_enabled=True,
102
+ api_token_ttl_days=1,
103
+ )
104
+ """
105
+ _response = self._client_wrapper.httpx_client.request(
106
+ "api/jwt/settings",
107
+ method="POST",
108
+ json={
109
+ "api_tokens_enabled": api_tokens_enabled,
110
+ "legacy_api_tokens_enabled": legacy_api_tokens_enabled,
111
+ "api_token_ttl_days": api_token_ttl_days,
112
+ },
113
+ request_options=request_options,
114
+ omit=OMIT,
115
+ )
116
+ try:
117
+ if 200 <= _response.status_code < 300:
118
+ return typing.cast(
119
+ JwtSettingsResponse,
120
+ parse_obj_as(
121
+ type_=JwtSettingsResponse, # type: ignore
122
+ object_=_response.json(),
123
+ ),
124
+ )
125
+ _response_json = _response.json()
126
+ except JSONDecodeError:
127
+ raise ApiError(status_code=_response.status_code, body=_response.text)
128
+ raise ApiError(status_code=_response.status_code, body=_response_json)
129
+
130
+
131
+ class AsyncJwtSettingsClient:
132
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
133
+ self._client_wrapper = client_wrapper
134
+
135
+ async def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> JwtSettingsResponse:
136
+ """
137
+ Retrieve JWT settings for the currently active organization.
138
+
139
+ Parameters
140
+ ----------
141
+ request_options : typing.Optional[RequestOptions]
142
+ Request-specific configuration.
143
+
144
+ Returns
145
+ -------
146
+ JwtSettingsResponse
147
+ JWT settings retrieved successfully
148
+
149
+ Examples
150
+ --------
151
+ import asyncio
152
+
153
+ from label_studio_sdk import AsyncLabelStudio
154
+
155
+ client = AsyncLabelStudio(
156
+ api_key="YOUR_API_KEY",
157
+ )
158
+
159
+
160
+ async def main() -> None:
161
+ await client.jwt_settings.get()
162
+
163
+
164
+ asyncio.run(main())
165
+ """
166
+ _response = await self._client_wrapper.httpx_client.request(
167
+ "api/jwt/settings",
168
+ method="GET",
169
+ request_options=request_options,
170
+ )
171
+ try:
172
+ if 200 <= _response.status_code < 300:
173
+ return typing.cast(
174
+ JwtSettingsResponse,
175
+ parse_obj_as(
176
+ type_=JwtSettingsResponse, # type: ignore
177
+ object_=_response.json(),
178
+ ),
179
+ )
180
+ _response_json = _response.json()
181
+ except JSONDecodeError:
182
+ raise ApiError(status_code=_response.status_code, body=_response.text)
183
+ raise ApiError(status_code=_response.status_code, body=_response_json)
184
+
185
+ async def create(
186
+ self,
187
+ *,
188
+ api_tokens_enabled: bool,
189
+ legacy_api_tokens_enabled: bool,
190
+ api_token_ttl_days: int,
191
+ request_options: typing.Optional[RequestOptions] = None,
192
+ ) -> JwtSettingsResponse:
193
+ """
194
+ Update JWT settings for the currently active organization.
195
+
196
+ Parameters
197
+ ----------
198
+ api_tokens_enabled : bool
199
+ Whether JWT API tokens are enabled
200
+
201
+ legacy_api_tokens_enabled : bool
202
+ Whether legacy API tokens are enabled
203
+
204
+ api_token_ttl_days : int
205
+ Number of days before API tokens expire
206
+
207
+ request_options : typing.Optional[RequestOptions]
208
+ Request-specific configuration.
209
+
210
+ Returns
211
+ -------
212
+ JwtSettingsResponse
213
+ JWT settings updated successfully
214
+
215
+ Examples
216
+ --------
217
+ import asyncio
218
+
219
+ from label_studio_sdk import AsyncLabelStudio
220
+
221
+ client = AsyncLabelStudio(
222
+ api_key="YOUR_API_KEY",
223
+ )
224
+
225
+
226
+ async def main() -> None:
227
+ await client.jwt_settings.create(
228
+ api_tokens_enabled=True,
229
+ legacy_api_tokens_enabled=True,
230
+ api_token_ttl_days=1,
231
+ )
232
+
233
+
234
+ asyncio.run(main())
235
+ """
236
+ _response = await self._client_wrapper.httpx_client.request(
237
+ "api/jwt/settings",
238
+ method="POST",
239
+ json={
240
+ "api_tokens_enabled": api_tokens_enabled,
241
+ "legacy_api_tokens_enabled": legacy_api_tokens_enabled,
242
+ "api_token_ttl_days": api_token_ttl_days,
243
+ },
244
+ request_options=request_options,
245
+ omit=OMIT,
246
+ )
247
+ try:
248
+ if 200 <= _response.status_code < 300:
249
+ return typing.cast(
250
+ JwtSettingsResponse,
251
+ parse_obj_as(
252
+ type_=JwtSettingsResponse, # type: ignore
253
+ object_=_response.json(),
254
+ ),
255
+ )
256
+ _response_json = _response.json()
257
+ except JSONDecodeError:
258
+ raise ApiError(status_code=_response.status_code, body=_response.text)
259
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -92,6 +92,12 @@ class ControlTag(LabelStudioTag):
92
92
  and tag.attrib.get("toName")
93
93
  and tag.tag not in _NOT_CONTROL_TAGS
94
94
  )
95
+
96
+ @property
97
+ def is_output_required(self):
98
+ # TextArea can be blank unless user specifies "required"="true" in the attribute
99
+ required_in_attr = str(self.attr.get("required", "false")).lower() == "true"
100
+ return required_in_attr or False
95
101
 
96
102
  def to_json_schema(self):
97
103
  """
@@ -566,6 +572,7 @@ class LabelsTag(ControlTag):
566
572
  "properties": {
567
573
  "start": {
568
574
  "type": "integer",
575
+ # TODO: this is incompatible with the OpenAI API using PredictedOutputs
569
576
  "minimum": 0
570
577
  },
571
578
  "end": {
@@ -985,8 +992,14 @@ class TextAreaTag(ControlTag):
985
992
  dict: A dictionary representing the JSON Schema compatible with OpenAPI 3.
986
993
  """
987
994
  return {
988
- "type": "string",
989
- "description": f"Text for {self.to_name[0]}"
995
+ "oneOf": [
996
+ {"type": "string"},
997
+ {
998
+ "type": "array",
999
+ "items": {"type": "string"}
1000
+ }
1001
+ ],
1002
+ "description": f"Text or list of texts for {self.to_name[0]}"
990
1003
  }
991
1004
 
992
1005