label-studio-sdk 1.0.8__py3-none-any.whl → 1.0.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (218) hide show
  1. label_studio_sdk/__init__.py +37 -8
  2. label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
  3. label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +5 -0
  4. label_studio_sdk/_extensions/pager_ext.py +8 -0
  5. label_studio_sdk/actions/client.py +91 -40
  6. label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
  7. label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
  8. label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
  9. label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
  10. label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
  11. label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
  12. label_studio_sdk/annotations/__init__.py +2 -2
  13. label_studio_sdk/annotations/client.py +278 -104
  14. label_studio_sdk/annotations/types/__init__.py +2 -1
  15. label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
  16. label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
  17. label_studio_sdk/base_client.py +54 -27
  18. label_studio_sdk/client.py +1 -0
  19. label_studio_sdk/comments/client.py +190 -44
  20. label_studio_sdk/converter/converter.py +56 -13
  21. label_studio_sdk/converter/imports/yolo.py +1 -1
  22. label_studio_sdk/converter/utils.py +3 -2
  23. label_studio_sdk/core/__init__.py +21 -4
  24. label_studio_sdk/core/client_wrapper.py +37 -19
  25. label_studio_sdk/core/file.py +37 -8
  26. label_studio_sdk/core/http_client.py +52 -28
  27. label_studio_sdk/core/jsonable_encoder.py +33 -31
  28. label_studio_sdk/core/pagination.py +5 -4
  29. label_studio_sdk/core/pydantic_utilities.py +272 -4
  30. label_studio_sdk/core/query_encoder.py +38 -13
  31. label_studio_sdk/core/request_options.py +3 -0
  32. label_studio_sdk/core/serialization.py +272 -0
  33. label_studio_sdk/errors/__init__.py +3 -1
  34. label_studio_sdk/errors/bad_request_error.py +2 -3
  35. label_studio_sdk/errors/not_found_error.py +9 -0
  36. label_studio_sdk/errors/unauthorized_error.py +9 -0
  37. label_studio_sdk/export_storage/azure/client.py +228 -58
  38. label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
  39. label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
  40. label_studio_sdk/export_storage/client.py +48 -18
  41. label_studio_sdk/export_storage/gcs/client.py +228 -58
  42. label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
  43. label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
  44. label_studio_sdk/export_storage/local/client.py +222 -56
  45. label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
  46. label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
  47. label_studio_sdk/export_storage/redis/client.py +228 -58
  48. label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
  49. label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
  50. label_studio_sdk/export_storage/s3/client.py +228 -58
  51. label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
  52. label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
  53. label_studio_sdk/export_storage/s3s/client.py +187 -43
  54. label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
  55. label_studio_sdk/files/client.py +172 -56
  56. label_studio_sdk/import_storage/azure/client.py +223 -53
  57. label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
  58. label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
  59. label_studio_sdk/import_storage/client.py +48 -18
  60. label_studio_sdk/import_storage/gcs/client.py +223 -53
  61. label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
  62. label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
  63. label_studio_sdk/import_storage/local/client.py +223 -53
  64. label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
  65. label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
  66. label_studio_sdk/import_storage/redis/client.py +223 -53
  67. label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
  68. label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
  69. label_studio_sdk/import_storage/s3/client.py +223 -53
  70. label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
  71. label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
  72. label_studio_sdk/import_storage/s3s/client.py +222 -52
  73. label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
  74. label_studio_sdk/jwt_settings/__init__.py +2 -0
  75. label_studio_sdk/jwt_settings/client.py +259 -0
  76. label_studio_sdk/label_interface/control_tags.py +16 -3
  77. label_studio_sdk/label_interface/interface.py +80 -1
  78. label_studio_sdk/label_interface/object_tags.py +2 -2
  79. label_studio_sdk/ml/client.py +280 -78
  80. label_studio_sdk/ml/types/ml_create_response.py +21 -31
  81. label_studio_sdk/ml/types/ml_update_response.py +21 -31
  82. label_studio_sdk/model_providers/client.py +173 -56
  83. label_studio_sdk/predictions/client.py +247 -101
  84. label_studio_sdk/projects/__init__.py +5 -1
  85. label_studio_sdk/projects/client.py +313 -115
  86. label_studio_sdk/projects/client_ext.py +16 -0
  87. label_studio_sdk/projects/exports/__init__.py +3 -0
  88. label_studio_sdk/projects/exports/client.py +447 -296
  89. label_studio_sdk/projects/exports/client_ext.py +200 -0
  90. label_studio_sdk/projects/exports/types/__init__.py +6 -0
  91. label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
  92. label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
  93. label_studio_sdk/projects/pauses/__init__.py +2 -0
  94. label_studio_sdk/projects/pauses/client.py +704 -0
  95. label_studio_sdk/projects/types/projects_create_response.py +29 -34
  96. label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
  97. label_studio_sdk/projects/types/projects_list_response.py +11 -21
  98. label_studio_sdk/projects/types/projects_update_response.py +34 -34
  99. label_studio_sdk/prompts/client.py +309 -92
  100. label_studio_sdk/prompts/indicators/client.py +67 -23
  101. label_studio_sdk/prompts/runs/client.py +95 -40
  102. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
  103. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
  104. label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
  105. label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
  106. label_studio_sdk/prompts/versions/client.py +277 -88
  107. label_studio_sdk/tasks/client.py +263 -90
  108. label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
  109. label_studio_sdk/tokens/__init__.py +2 -0
  110. label_studio_sdk/tokens/client.py +470 -0
  111. label_studio_sdk/tokens/client_ext.py +94 -0
  112. label_studio_sdk/types/__init__.py +20 -6
  113. label_studio_sdk/types/access_token_response.py +22 -0
  114. label_studio_sdk/types/annotation.py +29 -38
  115. label_studio_sdk/types/annotation_filter_options.py +14 -24
  116. label_studio_sdk/types/annotations_dm_field.py +30 -39
  117. label_studio_sdk/types/api_token_response.py +32 -0
  118. label_studio_sdk/types/azure_blob_export_storage.py +28 -37
  119. label_studio_sdk/types/azure_blob_import_storage.py +28 -37
  120. label_studio_sdk/types/base_task.py +30 -39
  121. label_studio_sdk/types/base_task_updated_by.py +3 -1
  122. label_studio_sdk/types/base_user.py +14 -21
  123. label_studio_sdk/types/comment.py +12 -21
  124. label_studio_sdk/types/comment_created_by.py +1 -1
  125. label_studio_sdk/types/converted_format.py +12 -22
  126. label_studio_sdk/types/data_manager_task_serializer.py +31 -40
  127. label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
  128. label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
  129. label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
  130. label_studio_sdk/types/export.py +17 -26
  131. label_studio_sdk/types/export_format.py +25 -0
  132. label_studio_sdk/types/export_snapshot.py +45 -0
  133. label_studio_sdk/types/export_snapshot_status.py +5 -0
  134. label_studio_sdk/types/file_upload.py +11 -21
  135. label_studio_sdk/types/filter.py +16 -26
  136. label_studio_sdk/types/filter_group.py +12 -22
  137. label_studio_sdk/types/gcs_export_storage.py +28 -37
  138. label_studio_sdk/types/gcs_import_storage.py +28 -37
  139. label_studio_sdk/types/inference_run.py +14 -23
  140. label_studio_sdk/types/inference_run_cost_estimate.py +17 -27
  141. label_studio_sdk/types/inference_run_created_by.py +1 -1
  142. label_studio_sdk/types/inference_run_organization.py +1 -1
  143. label_studio_sdk/types/jwt_settings_response.py +32 -0
  144. label_studio_sdk/types/key_indicator_value.py +12 -22
  145. label_studio_sdk/types/key_indicators.py +0 -1
  146. label_studio_sdk/types/key_indicators_item.py +15 -25
  147. label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
  148. label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
  149. label_studio_sdk/types/local_files_export_storage.py +25 -34
  150. label_studio_sdk/types/local_files_import_storage.py +24 -33
  151. label_studio_sdk/types/ml_backend.py +23 -32
  152. label_studio_sdk/types/model_provider_connection.py +22 -31
  153. label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
  154. label_studio_sdk/types/model_provider_connection_organization.py +1 -1
  155. label_studio_sdk/types/model_provider_connection_provider.py +3 -1
  156. label_studio_sdk/types/pause.py +34 -0
  157. label_studio_sdk/types/pause_paused_by.py +5 -0
  158. label_studio_sdk/types/prediction.py +21 -30
  159. label_studio_sdk/types/project.py +58 -55
  160. label_studio_sdk/types/project_import.py +21 -30
  161. label_studio_sdk/types/project_label_config.py +12 -22
  162. label_studio_sdk/types/prompt.py +24 -32
  163. label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
  164. label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
  165. label_studio_sdk/types/prompt_created_by.py +1 -1
  166. label_studio_sdk/types/prompt_organization.py +1 -1
  167. label_studio_sdk/types/prompt_version.py +13 -22
  168. label_studio_sdk/types/prompt_version_created_by.py +1 -1
  169. label_studio_sdk/types/prompt_version_organization.py +1 -1
  170. label_studio_sdk/types/prompt_version_provider.py +3 -1
  171. label_studio_sdk/types/redis_export_storage.py +29 -38
  172. label_studio_sdk/types/redis_import_storage.py +28 -37
  173. label_studio_sdk/types/refined_prompt_response.py +19 -29
  174. label_studio_sdk/types/s3export_storage.py +36 -43
  175. label_studio_sdk/types/s3import_storage.py +37 -44
  176. label_studio_sdk/types/s3s_export_storage.py +26 -33
  177. label_studio_sdk/types/s3s_import_storage.py +35 -42
  178. label_studio_sdk/types/serialization_option.py +12 -22
  179. label_studio_sdk/types/serialization_options.py +18 -28
  180. label_studio_sdk/types/task.py +44 -47
  181. label_studio_sdk/types/task_annotators_item.py +1 -1
  182. label_studio_sdk/types/task_comment_authors_item.py +1 -1
  183. label_studio_sdk/types/task_filter_options.py +15 -25
  184. label_studio_sdk/types/user_simple.py +11 -21
  185. label_studio_sdk/types/view.py +16 -26
  186. label_studio_sdk/types/webhook.py +19 -28
  187. label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
  188. label_studio_sdk/types/workspace.py +22 -31
  189. label_studio_sdk/users/client.py +257 -63
  190. label_studio_sdk/users/types/users_get_token_response.py +12 -22
  191. label_studio_sdk/users/types/users_reset_token_response.py +12 -22
  192. label_studio_sdk/version.py +0 -1
  193. label_studio_sdk/versions/__init__.py +5 -0
  194. label_studio_sdk/versions/client.py +112 -0
  195. label_studio_sdk/versions/types/__init__.py +6 -0
  196. label_studio_sdk/versions/types/versions_get_response.py +73 -0
  197. label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
  198. label_studio_sdk/views/client.py +219 -52
  199. label_studio_sdk/views/types/views_create_request_data.py +13 -23
  200. label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
  201. label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
  202. label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
  203. label_studio_sdk/views/types/views_update_request_data.py +13 -23
  204. label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
  205. label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
  206. label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
  207. label_studio_sdk/webhooks/client.py +191 -61
  208. label_studio_sdk/workspaces/client.py +164 -41
  209. label_studio_sdk/workspaces/members/client.py +109 -31
  210. label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
  211. label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
  212. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/METADATA +8 -5
  213. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/RECORD +215 -188
  214. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/WHEEL +1 -1
  215. label_studio_sdk/types/export_convert.py +0 -32
  216. label_studio_sdk/types/export_create.py +0 -54
  217. label_studio_sdk/types/export_create_status.py +0 -5
  218. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.11.dist-info}/LICENSE +0 -0
@@ -1,5 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ from .annotations_create_bulk_request_selected_items import AnnotationsCreateBulkRequestSelectedItems
3
4
  from .annotations_create_bulk_response_item import AnnotationsCreateBulkResponseItem
4
5
 
5
- __all__ = ["AnnotationsCreateBulkResponseItem"]
6
+ __all__ = ["AnnotationsCreateBulkRequestSelectedItems", "AnnotationsCreateBulkResponseItem"]
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ...core.pydantic_utilities import UniversalBaseModel
4
+ import typing_extensions
5
+ import typing
6
+ from ...core.serialization import FieldMetadata
7
+ import pydantic
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
9
+
10
+
11
+ class AnnotationsCreateBulkRequestSelectedItems(UniversalBaseModel):
12
+ all_: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="all")] = pydantic.Field(default=None)
13
+ """
14
+ Indicates whether to apply the operation to all tasks. If true, this overrides any included or excluded lists.
15
+ """
16
+
17
+ included: typing.Optional[typing.List[int]] = pydantic.Field(default=None)
18
+ """
19
+ An explicit list of task IDs to include.
20
+ """
21
+
22
+ excluded: typing.Optional[typing.List[int]] = pydantic.Field(default=None)
23
+ """
24
+ An explicit list of task IDs to exclude.
25
+ """
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -1,29 +1,19 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
3
+ from ...core.pydantic_utilities import UniversalBaseModel
4
4
  import typing
5
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
5
7
 
6
- from ...core.datetime_utils import serialize_datetime
7
- from ...core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
-
10
- class AnnotationsCreateBulkResponseItem(pydantic_v1.BaseModel):
9
+ class AnnotationsCreateBulkResponseItem(UniversalBaseModel):
11
10
  id: typing.Optional[int] = None
12
11
 
13
- def json(self, **kwargs: typing.Any) -> str:
14
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
15
- return super().json(**kwargs_with_defaults)
16
-
17
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
18
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
20
-
21
- return deep_union_pydantic_dicts(
22
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
23
- )
12
+ if IS_PYDANTIC_V2:
13
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
14
+ else:
24
15
 
25
- class Config:
26
- frozen = True
27
- smart_union = True
28
- extra = pydantic_v1.Extra.allow
29
- json_encoders = {dt.datetime: serialize_datetime}
16
+ class Config:
17
+ frozen = True
18
+ smart_union = True
19
+ extra = pydantic.Extra.allow
@@ -1,29 +1,50 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import os
4
3
  import typing
5
-
4
+ from .environment import LabelStudioEnvironment
5
+ import os
6
6
  import httpx
7
-
8
- from .actions.client import ActionsClient, AsyncActionsClient
9
- from .annotations.client import AnnotationsClient, AsyncAnnotationsClient
10
- from .comments.client import AsyncCommentsClient, CommentsClient
11
7
  from .core.api_error import ApiError
12
- from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
13
- from .environment import LabelStudioEnvironment
14
- from .export_storage.client import AsyncExportStorageClient, ExportStorageClient
15
- from .files.client import AsyncFilesClient, FilesClient
16
- from .import_storage.client import AsyncImportStorageClient, ImportStorageClient
17
- from .ml.client import AsyncMlClient, MlClient
18
- from .model_providers.client import AsyncModelProvidersClient, ModelProvidersClient
19
- from .predictions.client import AsyncPredictionsClient, PredictionsClient
20
- from .projects.client import AsyncProjectsClient, ProjectsClient
21
- from .prompts.client import AsyncPromptsClient, PromptsClient
22
- from .tasks.client import AsyncTasksClient, TasksClient
23
- from .users.client import AsyncUsersClient, UsersClient
24
- from .views.client import AsyncViewsClient, ViewsClient
25
- from .webhooks.client import AsyncWebhooksClient, WebhooksClient
26
- from .workspaces.client import AsyncWorkspacesClient, WorkspacesClient
8
+ from .core.client_wrapper import SyncClientWrapper
9
+ from .annotations.client import AnnotationsClient
10
+ from .users.client import UsersClient
11
+ from .actions.client import ActionsClient
12
+ from .views.client import ViewsClient
13
+ from .files.client import FilesClient
14
+ from .ml.client import MlClient
15
+ from .predictions.client import PredictionsClient
16
+ from .projects.client import ProjectsClient
17
+ from .tasks.client import TasksClient
18
+ from .import_storage.client import ImportStorageClient
19
+ from .export_storage.client import ExportStorageClient
20
+ from .webhooks.client import WebhooksClient
21
+ from .versions.client import VersionsClient
22
+ from .prompts.client import PromptsClient
23
+ from .model_providers.client import ModelProvidersClient
24
+ from .comments.client import CommentsClient
25
+ from .workspaces.client import WorkspacesClient
26
+ from .tokens.client import TokensClient
27
+ from .jwt_settings.client import JwtSettingsClient
28
+ from .core.client_wrapper import AsyncClientWrapper
29
+ from .annotations.client import AsyncAnnotationsClient
30
+ from .users.client import AsyncUsersClient
31
+ from .actions.client import AsyncActionsClient
32
+ from .views.client import AsyncViewsClient
33
+ from .files.client import AsyncFilesClient
34
+ from .ml.client import AsyncMlClient
35
+ from .predictions.client import AsyncPredictionsClient
36
+ from .projects.client import AsyncProjectsClient
37
+ from .tasks.client import AsyncTasksClient
38
+ from .import_storage.client import AsyncImportStorageClient
39
+ from .export_storage.client import AsyncExportStorageClient
40
+ from .webhooks.client import AsyncWebhooksClient
41
+ from .versions.client import AsyncVersionsClient
42
+ from .prompts.client import AsyncPromptsClient
43
+ from .model_providers.client import AsyncModelProvidersClient
44
+ from .comments.client import AsyncCommentsClient
45
+ from .workspaces.client import AsyncWorkspacesClient
46
+ from .tokens.client import AsyncTokensClient
47
+ from .jwt_settings.client import AsyncJwtSettingsClient
27
48
 
28
49
 
29
50
  class LabelStudioBase:
@@ -56,7 +77,7 @@ class LabelStudioBase:
56
77
 
57
78
  Examples
58
79
  --------
59
- from label_studio_sdk.client import LabelStudio
80
+ from label_studio_sdk import LabelStudio
60
81
 
61
82
  client = LabelStudio(
62
83
  api_key="YOUR_API_KEY",
@@ -71,7 +92,7 @@ class LabelStudioBase:
71
92
  api_key: typing.Optional[str] = os.getenv("LABEL_STUDIO_API_KEY"),
72
93
  timeout: typing.Optional[float] = None,
73
94
  follow_redirects: typing.Optional[bool] = True,
74
- httpx_client: typing.Optional[httpx.Client] = None
95
+ httpx_client: typing.Optional[httpx.Client] = None,
75
96
  ):
76
97
  _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
77
98
  if api_key is None:
@@ -93,17 +114,20 @@ class LabelStudioBase:
93
114
  self.actions = ActionsClient(client_wrapper=self._client_wrapper)
94
115
  self.views = ViewsClient(client_wrapper=self._client_wrapper)
95
116
  self.files = FilesClient(client_wrapper=self._client_wrapper)
96
- self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
97
117
  self.ml = MlClient(client_wrapper=self._client_wrapper)
98
118
  self.predictions = PredictionsClient(client_wrapper=self._client_wrapper)
119
+ self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
99
120
  self.tasks = TasksClient(client_wrapper=self._client_wrapper)
100
121
  self.import_storage = ImportStorageClient(client_wrapper=self._client_wrapper)
101
122
  self.export_storage = ExportStorageClient(client_wrapper=self._client_wrapper)
102
123
  self.webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
124
+ self.versions = VersionsClient(client_wrapper=self._client_wrapper)
103
125
  self.prompts = PromptsClient(client_wrapper=self._client_wrapper)
104
126
  self.model_providers = ModelProvidersClient(client_wrapper=self._client_wrapper)
105
127
  self.comments = CommentsClient(client_wrapper=self._client_wrapper)
106
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)
107
131
 
108
132
 
109
133
  class AsyncLabelStudioBase:
@@ -136,7 +160,7 @@ class AsyncLabelStudioBase:
136
160
 
137
161
  Examples
138
162
  --------
139
- from label_studio_sdk.client import AsyncLabelStudio
163
+ from label_studio_sdk import AsyncLabelStudio
140
164
 
141
165
  client = AsyncLabelStudio(
142
166
  api_key="YOUR_API_KEY",
@@ -151,7 +175,7 @@ class AsyncLabelStudioBase:
151
175
  api_key: typing.Optional[str] = os.getenv("LABEL_STUDIO_API_KEY"),
152
176
  timeout: typing.Optional[float] = None,
153
177
  follow_redirects: typing.Optional[bool] = True,
154
- httpx_client: typing.Optional[httpx.AsyncClient] = None
178
+ httpx_client: typing.Optional[httpx.AsyncClient] = None,
155
179
  ):
156
180
  _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
157
181
  if api_key is None:
@@ -173,17 +197,20 @@ class AsyncLabelStudioBase:
173
197
  self.actions = AsyncActionsClient(client_wrapper=self._client_wrapper)
174
198
  self.views = AsyncViewsClient(client_wrapper=self._client_wrapper)
175
199
  self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
176
- self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
177
200
  self.ml = AsyncMlClient(client_wrapper=self._client_wrapper)
178
201
  self.predictions = AsyncPredictionsClient(client_wrapper=self._client_wrapper)
202
+ self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
179
203
  self.tasks = AsyncTasksClient(client_wrapper=self._client_wrapper)
180
204
  self.import_storage = AsyncImportStorageClient(client_wrapper=self._client_wrapper)
181
205
  self.export_storage = AsyncExportStorageClient(client_wrapper=self._client_wrapper)
182
206
  self.webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
207
+ self.versions = AsyncVersionsClient(client_wrapper=self._client_wrapper)
183
208
  self.prompts = AsyncPromptsClient(client_wrapper=self._client_wrapper)
184
209
  self.model_providers = AsyncModelProvidersClient(client_wrapper=self._client_wrapper)
185
210
  self.comments = AsyncCommentsClient(client_wrapper=self._client_wrapper)
186
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)
187
214
 
188
215
 
189
216
  def _get_base_url(*, base_url: typing.Optional[str] = None, environment: LabelStudioEnvironment) -> str:
@@ -1,6 +1,7 @@
1
1
  from .base_client import LabelStudioBase, AsyncLabelStudioBase
2
2
  from .tasks.client_ext import TasksClientExt, AsyncTasksClientExt
3
3
  from .projects.client_ext import ProjectsClientExt, AsyncProjectsClientExt
4
+ from .core.api_error import ApiError
4
5
 
5
6
 
6
7
  class LabelStudio(LabelStudioBase):