label-studio-sdk 1.0.7__py3-none-any.whl → 1.0.10__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 (206) hide show
  1. label_studio_sdk/__init__.py +26 -7
  2. label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +13 -4
  3. label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
  4. label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +86 -0
  5. label_studio_sdk/_extensions/pager_ext.py +8 -0
  6. label_studio_sdk/_legacy/schema/label_config_schema.json +42 -11
  7. label_studio_sdk/actions/client.py +91 -40
  8. label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
  9. label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
  10. label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
  11. label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
  12. label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
  13. label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
  14. label_studio_sdk/annotations/__init__.py +2 -2
  15. label_studio_sdk/annotations/client.py +278 -104
  16. label_studio_sdk/annotations/types/__init__.py +2 -1
  17. label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
  18. label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
  19. label_studio_sdk/base_client.py +46 -27
  20. label_studio_sdk/client.py +1 -0
  21. label_studio_sdk/comments/client.py +190 -44
  22. label_studio_sdk/converter/converter.py +66 -18
  23. label_studio_sdk/converter/imports/yolo.py +1 -1
  24. label_studio_sdk/converter/utils.py +3 -2
  25. label_studio_sdk/core/__init__.py +21 -4
  26. label_studio_sdk/core/client_wrapper.py +9 -10
  27. label_studio_sdk/core/file.py +37 -8
  28. label_studio_sdk/core/http_client.py +52 -28
  29. label_studio_sdk/core/jsonable_encoder.py +33 -31
  30. label_studio_sdk/core/pagination.py +5 -4
  31. label_studio_sdk/core/pydantic_utilities.py +272 -4
  32. label_studio_sdk/core/query_encoder.py +38 -13
  33. label_studio_sdk/core/request_options.py +3 -0
  34. label_studio_sdk/core/serialization.py +272 -0
  35. label_studio_sdk/errors/bad_request_error.py +2 -3
  36. label_studio_sdk/export_storage/azure/client.py +228 -58
  37. label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
  38. label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
  39. label_studio_sdk/export_storage/client.py +48 -18
  40. label_studio_sdk/export_storage/gcs/client.py +228 -58
  41. label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
  42. label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
  43. label_studio_sdk/export_storage/local/client.py +222 -56
  44. label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
  45. label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
  46. label_studio_sdk/export_storage/redis/client.py +228 -58
  47. label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
  48. label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
  49. label_studio_sdk/export_storage/s3/client.py +228 -58
  50. label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
  51. label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
  52. label_studio_sdk/export_storage/s3s/client.py +187 -43
  53. label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
  54. label_studio_sdk/files/client.py +172 -56
  55. label_studio_sdk/import_storage/azure/client.py +223 -53
  56. label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
  57. label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
  58. label_studio_sdk/import_storage/client.py +48 -18
  59. label_studio_sdk/import_storage/gcs/client.py +223 -53
  60. label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
  61. label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
  62. label_studio_sdk/import_storage/local/client.py +223 -53
  63. label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
  64. label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
  65. label_studio_sdk/import_storage/redis/client.py +223 -53
  66. label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
  67. label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
  68. label_studio_sdk/import_storage/s3/client.py +223 -53
  69. label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
  70. label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
  71. label_studio_sdk/import_storage/s3s/client.py +222 -52
  72. label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
  73. label_studio_sdk/label_interface/control_tags.py +205 -10
  74. label_studio_sdk/label_interface/interface.py +80 -6
  75. label_studio_sdk/label_interface/region.py +1 -10
  76. label_studio_sdk/ml/client.py +280 -78
  77. label_studio_sdk/ml/types/ml_create_response.py +21 -31
  78. label_studio_sdk/ml/types/ml_update_response.py +21 -31
  79. label_studio_sdk/model_providers/client.py +656 -21
  80. label_studio_sdk/predictions/client.py +247 -101
  81. label_studio_sdk/projects/__init__.py +3 -0
  82. label_studio_sdk/projects/client.py +309 -115
  83. label_studio_sdk/projects/client_ext.py +16 -0
  84. label_studio_sdk/projects/exports/__init__.py +3 -0
  85. label_studio_sdk/projects/exports/client.py +447 -296
  86. label_studio_sdk/projects/exports/client_ext.py +134 -0
  87. label_studio_sdk/projects/exports/types/__init__.py +6 -0
  88. label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
  89. label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
  90. label_studio_sdk/projects/types/projects_create_response.py +29 -34
  91. label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
  92. label_studio_sdk/projects/types/projects_list_response.py +11 -21
  93. label_studio_sdk/projects/types/projects_update_response.py +24 -34
  94. label_studio_sdk/prompts/client.py +309 -92
  95. label_studio_sdk/prompts/indicators/client.py +67 -23
  96. label_studio_sdk/prompts/runs/client.py +95 -40
  97. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
  98. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
  99. label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
  100. label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
  101. label_studio_sdk/prompts/versions/client.py +389 -75
  102. label_studio_sdk/tasks/client.py +263 -90
  103. label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
  104. label_studio_sdk/types/__init__.py +16 -6
  105. label_studio_sdk/types/annotation.py +29 -38
  106. label_studio_sdk/types/annotation_filter_options.py +14 -24
  107. label_studio_sdk/types/annotations_dm_field.py +30 -39
  108. label_studio_sdk/types/azure_blob_export_storage.py +28 -37
  109. label_studio_sdk/types/azure_blob_import_storage.py +28 -37
  110. label_studio_sdk/types/base_task.py +30 -39
  111. label_studio_sdk/types/base_task_updated_by.py +3 -1
  112. label_studio_sdk/types/base_user.py +14 -21
  113. label_studio_sdk/types/comment.py +12 -21
  114. label_studio_sdk/types/comment_created_by.py +1 -1
  115. label_studio_sdk/types/converted_format.py +12 -22
  116. label_studio_sdk/types/data_manager_task_serializer.py +31 -40
  117. label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
  118. label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
  119. label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
  120. label_studio_sdk/types/export.py +17 -26
  121. label_studio_sdk/types/export_format.py +25 -0
  122. label_studio_sdk/types/export_snapshot.py +45 -0
  123. label_studio_sdk/types/export_snapshot_status.py +5 -0
  124. label_studio_sdk/types/file_upload.py +11 -21
  125. label_studio_sdk/types/filter.py +16 -26
  126. label_studio_sdk/types/filter_group.py +12 -22
  127. label_studio_sdk/types/gcs_export_storage.py +28 -37
  128. label_studio_sdk/types/gcs_import_storage.py +28 -37
  129. label_studio_sdk/types/inference_run.py +14 -23
  130. label_studio_sdk/types/inference_run_cost_estimate.py +47 -0
  131. label_studio_sdk/types/inference_run_created_by.py +1 -1
  132. label_studio_sdk/types/inference_run_organization.py +1 -1
  133. label_studio_sdk/types/key_indicator_value.py +12 -22
  134. label_studio_sdk/types/key_indicators.py +0 -1
  135. label_studio_sdk/types/key_indicators_item.py +15 -25
  136. label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
  137. label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
  138. label_studio_sdk/types/local_files_export_storage.py +25 -34
  139. label_studio_sdk/types/local_files_import_storage.py +24 -33
  140. label_studio_sdk/types/ml_backend.py +23 -32
  141. label_studio_sdk/types/model_provider_connection.py +47 -26
  142. label_studio_sdk/types/model_provider_connection_budget_reset_period.py +5 -0
  143. label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
  144. label_studio_sdk/types/model_provider_connection_organization.py +1 -1
  145. label_studio_sdk/types/model_provider_connection_provider.py +3 -1
  146. label_studio_sdk/types/prediction.py +21 -30
  147. label_studio_sdk/types/project.py +48 -55
  148. label_studio_sdk/types/project_import.py +21 -30
  149. label_studio_sdk/types/project_label_config.py +12 -22
  150. label_studio_sdk/types/prompt.py +24 -32
  151. label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
  152. label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
  153. label_studio_sdk/types/prompt_created_by.py +1 -1
  154. label_studio_sdk/types/prompt_organization.py +1 -1
  155. label_studio_sdk/types/prompt_version.py +13 -22
  156. label_studio_sdk/types/prompt_version_created_by.py +1 -1
  157. label_studio_sdk/types/prompt_version_organization.py +1 -1
  158. label_studio_sdk/types/prompt_version_provider.py +3 -1
  159. label_studio_sdk/types/redis_export_storage.py +29 -38
  160. label_studio_sdk/types/redis_import_storage.py +28 -37
  161. label_studio_sdk/types/refined_prompt_response.py +19 -29
  162. label_studio_sdk/types/s3export_storage.py +36 -43
  163. label_studio_sdk/types/s3import_storage.py +37 -44
  164. label_studio_sdk/types/s3s_export_storage.py +26 -33
  165. label_studio_sdk/types/s3s_import_storage.py +35 -42
  166. label_studio_sdk/types/serialization_option.py +12 -22
  167. label_studio_sdk/types/serialization_options.py +18 -28
  168. label_studio_sdk/types/task.py +46 -48
  169. label_studio_sdk/types/task_annotators_item.py +1 -1
  170. label_studio_sdk/types/task_comment_authors_item.py +5 -0
  171. label_studio_sdk/types/task_filter_options.py +15 -25
  172. label_studio_sdk/types/user_simple.py +11 -21
  173. label_studio_sdk/types/view.py +16 -26
  174. label_studio_sdk/types/webhook.py +19 -28
  175. label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
  176. label_studio_sdk/types/workspace.py +22 -31
  177. label_studio_sdk/users/client.py +257 -63
  178. label_studio_sdk/users/types/users_get_token_response.py +12 -22
  179. label_studio_sdk/users/types/users_reset_token_response.py +12 -22
  180. label_studio_sdk/version.py +0 -1
  181. label_studio_sdk/versions/__init__.py +5 -0
  182. label_studio_sdk/versions/client.py +112 -0
  183. label_studio_sdk/versions/types/__init__.py +6 -0
  184. label_studio_sdk/versions/types/versions_get_response.py +73 -0
  185. label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
  186. label_studio_sdk/views/client.py +219 -52
  187. label_studio_sdk/views/types/views_create_request_data.py +13 -23
  188. label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
  189. label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
  190. label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
  191. label_studio_sdk/views/types/views_update_request_data.py +13 -23
  192. label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
  193. label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
  194. label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
  195. label_studio_sdk/webhooks/client.py +191 -61
  196. label_studio_sdk/workspaces/client.py +164 -41
  197. label_studio_sdk/workspaces/members/client.py +109 -31
  198. label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
  199. label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
  200. {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/METADATA +9 -5
  201. {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/RECORD +203 -186
  202. {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/WHEEL +1 -1
  203. label_studio_sdk/types/export_convert.py +0 -32
  204. label_studio_sdk/types/export_create.py +0 -54
  205. label_studio_sdk/types/export_create_status.py +0 -5
  206. {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.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,46 @@
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 .core.client_wrapper import AsyncClientWrapper
27
+ from .annotations.client import AsyncAnnotationsClient
28
+ from .users.client import AsyncUsersClient
29
+ from .actions.client import AsyncActionsClient
30
+ from .views.client import AsyncViewsClient
31
+ from .files.client import AsyncFilesClient
32
+ from .ml.client import AsyncMlClient
33
+ from .predictions.client import AsyncPredictionsClient
34
+ from .projects.client import AsyncProjectsClient
35
+ from .tasks.client import AsyncTasksClient
36
+ from .import_storage.client import AsyncImportStorageClient
37
+ from .export_storage.client import AsyncExportStorageClient
38
+ from .webhooks.client import AsyncWebhooksClient
39
+ from .versions.client import AsyncVersionsClient
40
+ from .prompts.client import AsyncPromptsClient
41
+ from .model_providers.client import AsyncModelProvidersClient
42
+ from .comments.client import AsyncCommentsClient
43
+ from .workspaces.client import AsyncWorkspacesClient
27
44
 
28
45
 
29
46
  class LabelStudioBase:
@@ -56,7 +73,7 @@ class LabelStudioBase:
56
73
 
57
74
  Examples
58
75
  --------
59
- from label_studio_sdk.client import LabelStudio
76
+ from label_studio_sdk import LabelStudio
60
77
 
61
78
  client = LabelStudio(
62
79
  api_key="YOUR_API_KEY",
@@ -71,7 +88,7 @@ class LabelStudioBase:
71
88
  api_key: typing.Optional[str] = os.getenv("LABEL_STUDIO_API_KEY"),
72
89
  timeout: typing.Optional[float] = None,
73
90
  follow_redirects: typing.Optional[bool] = True,
74
- httpx_client: typing.Optional[httpx.Client] = None
91
+ httpx_client: typing.Optional[httpx.Client] = None,
75
92
  ):
76
93
  _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
77
94
  if api_key is None:
@@ -93,13 +110,14 @@ class LabelStudioBase:
93
110
  self.actions = ActionsClient(client_wrapper=self._client_wrapper)
94
111
  self.views = ViewsClient(client_wrapper=self._client_wrapper)
95
112
  self.files = FilesClient(client_wrapper=self._client_wrapper)
96
- self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
97
113
  self.ml = MlClient(client_wrapper=self._client_wrapper)
98
114
  self.predictions = PredictionsClient(client_wrapper=self._client_wrapper)
115
+ self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
99
116
  self.tasks = TasksClient(client_wrapper=self._client_wrapper)
100
117
  self.import_storage = ImportStorageClient(client_wrapper=self._client_wrapper)
101
118
  self.export_storage = ExportStorageClient(client_wrapper=self._client_wrapper)
102
119
  self.webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
120
+ self.versions = VersionsClient(client_wrapper=self._client_wrapper)
103
121
  self.prompts = PromptsClient(client_wrapper=self._client_wrapper)
104
122
  self.model_providers = ModelProvidersClient(client_wrapper=self._client_wrapper)
105
123
  self.comments = CommentsClient(client_wrapper=self._client_wrapper)
@@ -136,7 +154,7 @@ class AsyncLabelStudioBase:
136
154
 
137
155
  Examples
138
156
  --------
139
- from label_studio_sdk.client import AsyncLabelStudio
157
+ from label_studio_sdk import AsyncLabelStudio
140
158
 
141
159
  client = AsyncLabelStudio(
142
160
  api_key="YOUR_API_KEY",
@@ -151,7 +169,7 @@ class AsyncLabelStudioBase:
151
169
  api_key: typing.Optional[str] = os.getenv("LABEL_STUDIO_API_KEY"),
152
170
  timeout: typing.Optional[float] = None,
153
171
  follow_redirects: typing.Optional[bool] = True,
154
- httpx_client: typing.Optional[httpx.AsyncClient] = None
172
+ httpx_client: typing.Optional[httpx.AsyncClient] = None,
155
173
  ):
156
174
  _defaulted_timeout = timeout if timeout is not None else 60 if httpx_client is None else None
157
175
  if api_key is None:
@@ -173,13 +191,14 @@ class AsyncLabelStudioBase:
173
191
  self.actions = AsyncActionsClient(client_wrapper=self._client_wrapper)
174
192
  self.views = AsyncViewsClient(client_wrapper=self._client_wrapper)
175
193
  self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
176
- self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
177
194
  self.ml = AsyncMlClient(client_wrapper=self._client_wrapper)
178
195
  self.predictions = AsyncPredictionsClient(client_wrapper=self._client_wrapper)
196
+ self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
179
197
  self.tasks = AsyncTasksClient(client_wrapper=self._client_wrapper)
180
198
  self.import_storage = AsyncImportStorageClient(client_wrapper=self._client_wrapper)
181
199
  self.export_storage = AsyncExportStorageClient(client_wrapper=self._client_wrapper)
182
200
  self.webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
201
+ self.versions = AsyncVersionsClient(client_wrapper=self._client_wrapper)
183
202
  self.prompts = AsyncPromptsClient(client_wrapper=self._client_wrapper)
184
203
  self.model_providers = AsyncModelProvidersClient(client_wrapper=self._client_wrapper)
185
204
  self.comments = AsyncCommentsClient(client_wrapper=self._client_wrapper)
@@ -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):