label-studio-sdk 1.0.8__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 (200) hide show
  1. label_studio_sdk/__init__.py +20 -7
  2. label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
  3. label_studio_sdk/_extensions/pager_ext.py +8 -0
  4. label_studio_sdk/actions/client.py +91 -40
  5. label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
  6. label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
  7. label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
  8. label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
  9. label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
  10. label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
  11. label_studio_sdk/annotations/__init__.py +2 -2
  12. label_studio_sdk/annotations/client.py +278 -104
  13. label_studio_sdk/annotations/types/__init__.py +2 -1
  14. label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
  15. label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
  16. label_studio_sdk/base_client.py +46 -27
  17. label_studio_sdk/client.py +1 -0
  18. label_studio_sdk/comments/client.py +190 -44
  19. label_studio_sdk/converter/converter.py +56 -13
  20. label_studio_sdk/converter/imports/yolo.py +1 -1
  21. label_studio_sdk/converter/utils.py +3 -2
  22. label_studio_sdk/core/__init__.py +21 -4
  23. label_studio_sdk/core/client_wrapper.py +9 -10
  24. label_studio_sdk/core/file.py +37 -8
  25. label_studio_sdk/core/http_client.py +52 -28
  26. label_studio_sdk/core/jsonable_encoder.py +33 -31
  27. label_studio_sdk/core/pagination.py +5 -4
  28. label_studio_sdk/core/pydantic_utilities.py +272 -4
  29. label_studio_sdk/core/query_encoder.py +38 -13
  30. label_studio_sdk/core/request_options.py +3 -0
  31. label_studio_sdk/core/serialization.py +272 -0
  32. label_studio_sdk/errors/bad_request_error.py +2 -3
  33. label_studio_sdk/export_storage/azure/client.py +228 -58
  34. label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
  35. label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
  36. label_studio_sdk/export_storage/client.py +48 -18
  37. label_studio_sdk/export_storage/gcs/client.py +228 -58
  38. label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
  39. label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
  40. label_studio_sdk/export_storage/local/client.py +222 -56
  41. label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
  42. label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
  43. label_studio_sdk/export_storage/redis/client.py +228 -58
  44. label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
  45. label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
  46. label_studio_sdk/export_storage/s3/client.py +228 -58
  47. label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
  48. label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
  49. label_studio_sdk/export_storage/s3s/client.py +187 -43
  50. label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
  51. label_studio_sdk/files/client.py +172 -56
  52. label_studio_sdk/import_storage/azure/client.py +223 -53
  53. label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
  54. label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
  55. label_studio_sdk/import_storage/client.py +48 -18
  56. label_studio_sdk/import_storage/gcs/client.py +223 -53
  57. label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
  58. label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
  59. label_studio_sdk/import_storage/local/client.py +223 -53
  60. label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
  61. label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
  62. label_studio_sdk/import_storage/redis/client.py +223 -53
  63. label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
  64. label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
  65. label_studio_sdk/import_storage/s3/client.py +223 -53
  66. label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
  67. label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
  68. label_studio_sdk/import_storage/s3s/client.py +222 -52
  69. label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
  70. label_studio_sdk/label_interface/control_tags.py +1 -1
  71. label_studio_sdk/ml/client.py +280 -78
  72. label_studio_sdk/ml/types/ml_create_response.py +21 -31
  73. label_studio_sdk/ml/types/ml_update_response.py +21 -31
  74. label_studio_sdk/model_providers/client.py +173 -56
  75. label_studio_sdk/predictions/client.py +247 -101
  76. label_studio_sdk/projects/__init__.py +3 -0
  77. label_studio_sdk/projects/client.py +309 -115
  78. label_studio_sdk/projects/client_ext.py +16 -0
  79. label_studio_sdk/projects/exports/__init__.py +3 -0
  80. label_studio_sdk/projects/exports/client.py +447 -296
  81. label_studio_sdk/projects/exports/client_ext.py +134 -0
  82. label_studio_sdk/projects/exports/types/__init__.py +6 -0
  83. label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
  84. label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
  85. label_studio_sdk/projects/types/projects_create_response.py +29 -34
  86. label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
  87. label_studio_sdk/projects/types/projects_list_response.py +11 -21
  88. label_studio_sdk/projects/types/projects_update_response.py +24 -34
  89. label_studio_sdk/prompts/client.py +309 -92
  90. label_studio_sdk/prompts/indicators/client.py +67 -23
  91. label_studio_sdk/prompts/runs/client.py +95 -40
  92. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
  93. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
  94. label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
  95. label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
  96. label_studio_sdk/prompts/versions/client.py +277 -88
  97. label_studio_sdk/tasks/client.py +263 -90
  98. label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
  99. label_studio_sdk/types/__init__.py +10 -6
  100. label_studio_sdk/types/annotation.py +29 -38
  101. label_studio_sdk/types/annotation_filter_options.py +14 -24
  102. label_studio_sdk/types/annotations_dm_field.py +30 -39
  103. label_studio_sdk/types/azure_blob_export_storage.py +28 -37
  104. label_studio_sdk/types/azure_blob_import_storage.py +28 -37
  105. label_studio_sdk/types/base_task.py +30 -39
  106. label_studio_sdk/types/base_task_updated_by.py +3 -1
  107. label_studio_sdk/types/base_user.py +14 -21
  108. label_studio_sdk/types/comment.py +12 -21
  109. label_studio_sdk/types/comment_created_by.py +1 -1
  110. label_studio_sdk/types/converted_format.py +12 -22
  111. label_studio_sdk/types/data_manager_task_serializer.py +31 -40
  112. label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
  113. label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
  114. label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
  115. label_studio_sdk/types/export.py +17 -26
  116. label_studio_sdk/types/export_format.py +25 -0
  117. label_studio_sdk/types/export_snapshot.py +45 -0
  118. label_studio_sdk/types/export_snapshot_status.py +5 -0
  119. label_studio_sdk/types/file_upload.py +11 -21
  120. label_studio_sdk/types/filter.py +16 -26
  121. label_studio_sdk/types/filter_group.py +12 -22
  122. label_studio_sdk/types/gcs_export_storage.py +28 -37
  123. label_studio_sdk/types/gcs_import_storage.py +28 -37
  124. label_studio_sdk/types/inference_run.py +14 -23
  125. label_studio_sdk/types/inference_run_cost_estimate.py +17 -27
  126. label_studio_sdk/types/inference_run_created_by.py +1 -1
  127. label_studio_sdk/types/inference_run_organization.py +1 -1
  128. label_studio_sdk/types/key_indicator_value.py +12 -22
  129. label_studio_sdk/types/key_indicators.py +0 -1
  130. label_studio_sdk/types/key_indicators_item.py +15 -25
  131. label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
  132. label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
  133. label_studio_sdk/types/local_files_export_storage.py +25 -34
  134. label_studio_sdk/types/local_files_import_storage.py +24 -33
  135. label_studio_sdk/types/ml_backend.py +23 -32
  136. label_studio_sdk/types/model_provider_connection.py +22 -31
  137. label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
  138. label_studio_sdk/types/model_provider_connection_organization.py +1 -1
  139. label_studio_sdk/types/model_provider_connection_provider.py +3 -1
  140. label_studio_sdk/types/prediction.py +21 -30
  141. label_studio_sdk/types/project.py +48 -55
  142. label_studio_sdk/types/project_import.py +21 -30
  143. label_studio_sdk/types/project_label_config.py +12 -22
  144. label_studio_sdk/types/prompt.py +24 -32
  145. label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
  146. label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
  147. label_studio_sdk/types/prompt_created_by.py +1 -1
  148. label_studio_sdk/types/prompt_organization.py +1 -1
  149. label_studio_sdk/types/prompt_version.py +13 -22
  150. label_studio_sdk/types/prompt_version_created_by.py +1 -1
  151. label_studio_sdk/types/prompt_version_organization.py +1 -1
  152. label_studio_sdk/types/prompt_version_provider.py +3 -1
  153. label_studio_sdk/types/redis_export_storage.py +29 -38
  154. label_studio_sdk/types/redis_import_storage.py +28 -37
  155. label_studio_sdk/types/refined_prompt_response.py +19 -29
  156. label_studio_sdk/types/s3export_storage.py +36 -43
  157. label_studio_sdk/types/s3import_storage.py +37 -44
  158. label_studio_sdk/types/s3s_export_storage.py +26 -33
  159. label_studio_sdk/types/s3s_import_storage.py +35 -42
  160. label_studio_sdk/types/serialization_option.py +12 -22
  161. label_studio_sdk/types/serialization_options.py +18 -28
  162. label_studio_sdk/types/task.py +44 -47
  163. label_studio_sdk/types/task_annotators_item.py +1 -1
  164. label_studio_sdk/types/task_comment_authors_item.py +1 -1
  165. label_studio_sdk/types/task_filter_options.py +15 -25
  166. label_studio_sdk/types/user_simple.py +11 -21
  167. label_studio_sdk/types/view.py +16 -26
  168. label_studio_sdk/types/webhook.py +19 -28
  169. label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
  170. label_studio_sdk/types/workspace.py +22 -31
  171. label_studio_sdk/users/client.py +257 -63
  172. label_studio_sdk/users/types/users_get_token_response.py +12 -22
  173. label_studio_sdk/users/types/users_reset_token_response.py +12 -22
  174. label_studio_sdk/version.py +0 -1
  175. label_studio_sdk/versions/__init__.py +5 -0
  176. label_studio_sdk/versions/client.py +112 -0
  177. label_studio_sdk/versions/types/__init__.py +6 -0
  178. label_studio_sdk/versions/types/versions_get_response.py +73 -0
  179. label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
  180. label_studio_sdk/views/client.py +219 -52
  181. label_studio_sdk/views/types/views_create_request_data.py +13 -23
  182. label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
  183. label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
  184. label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
  185. label_studio_sdk/views/types/views_update_request_data.py +13 -23
  186. label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
  187. label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
  188. label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
  189. label_studio_sdk/webhooks/client.py +191 -61
  190. label_studio_sdk/workspaces/client.py +164 -41
  191. label_studio_sdk/workspaces/members/client.py +109 -31
  192. label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
  193. label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
  194. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.10.dist-info}/METADATA +7 -5
  195. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.10.dist-info}/RECORD +197 -184
  196. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.10.dist-info}/WHEEL +1 -1
  197. label_studio_sdk/types/export_convert.py +0 -32
  198. label_studio_sdk/types/export_create.py +0 -54
  199. label_studio_sdk/types/export_create_status.py +0 -5
  200. {label_studio_sdk-1.0.8.dist-info → label_studio_sdk-1.0.10.dist-info}/LICENSE +0 -0
@@ -1,15 +1,16 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
+ from ..core.client_wrapper import SyncClientWrapper
5
+ from .members.client import MembersClient
6
+ from ..core.request_options import RequestOptions
7
+ from ..types.workspace import Workspace
8
+ from ..core.pydantic_utilities import parse_obj_as
4
9
  from json.decoder import JSONDecodeError
5
-
6
10
  from ..core.api_error import ApiError
7
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
11
  from ..core.jsonable_encoder import jsonable_encoder
9
- from ..core.pydantic_utilities import pydantic_v1
10
- from ..core.request_options import RequestOptions
11
- from ..types.workspace import Workspace
12
- from .members.client import AsyncMembersClient, MembersClient
12
+ from ..core.client_wrapper import AsyncClientWrapper
13
+ from .members.client import AsyncMembersClient
13
14
 
14
15
  # this is used as the default value for optional parameters
15
16
  OMIT = typing.cast(typing.Any, ...)
@@ -22,6 +23,7 @@ class WorkspacesClient:
22
23
 
23
24
  def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Workspace]:
24
25
  """
26
+
25
27
  List all workspaces for your organization.
26
28
 
27
29
  Workspaces in Label Studio let you organize your projects and users into separate spaces. This is useful for managing different teams, departments, or projects within your organization.
@@ -40,7 +42,7 @@ class WorkspacesClient:
40
42
 
41
43
  Examples
42
44
  --------
43
- from label_studio_sdk.client import LabelStudio
45
+ from label_studio_sdk import LabelStudio
44
46
 
45
47
  client = LabelStudio(
46
48
  api_key="YOUR_API_KEY",
@@ -48,11 +50,19 @@ class WorkspacesClient:
48
50
  client.workspaces.list()
49
51
  """
50
52
  _response = self._client_wrapper.httpx_client.request(
51
- "api/workspaces", method="GET", request_options=request_options
53
+ "api/workspaces",
54
+ method="GET",
55
+ request_options=request_options,
52
56
  )
53
57
  try:
54
58
  if 200 <= _response.status_code < 300:
55
- return pydantic_v1.parse_obj_as(typing.List[Workspace], _response.json()) # type: ignore
59
+ return typing.cast(
60
+ typing.List[Workspace],
61
+ parse_obj_as(
62
+ type_=typing.List[Workspace], # type: ignore
63
+ object_=_response.json(),
64
+ ),
65
+ )
56
66
  _response_json = _response.json()
57
67
  except JSONDecodeError:
58
68
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -70,6 +80,7 @@ class WorkspacesClient:
70
80
  request_options: typing.Optional[RequestOptions] = None,
71
81
  ) -> Workspace:
72
82
  """
83
+
73
84
  Create a new workspace.
74
85
 
75
86
  Workspaces in Label Studio let you organize your projects and users into separate spaces. This is useful for managing different teams, departments, or projects within your organization.
@@ -106,7 +117,7 @@ class WorkspacesClient:
106
117
 
107
118
  Examples
108
119
  --------
109
- from label_studio_sdk.client import LabelStudio
120
+ from label_studio_sdk import LabelStudio
110
121
 
111
122
  client = LabelStudio(
112
123
  api_key="YOUR_API_KEY",
@@ -124,12 +135,21 @@ class WorkspacesClient:
124
135
  "color": color,
125
136
  "is_archived": is_archived,
126
137
  },
138
+ headers={
139
+ "content-type": "application/json",
140
+ },
127
141
  request_options=request_options,
128
142
  omit=OMIT,
129
143
  )
130
144
  try:
131
145
  if 200 <= _response.status_code < 300:
132
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
146
+ return typing.cast(
147
+ Workspace,
148
+ parse_obj_as(
149
+ type_=Workspace, # type: ignore
150
+ object_=_response.json(),
151
+ ),
152
+ )
133
153
  _response_json = _response.json()
134
154
  except JSONDecodeError:
135
155
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -137,6 +157,7 @@ class WorkspacesClient:
137
157
 
138
158
  def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Workspace:
139
159
  """
160
+
140
161
  Get information about a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
141
162
 
142
163
  Parameters
@@ -154,7 +175,7 @@ class WorkspacesClient:
154
175
 
155
176
  Examples
156
177
  --------
157
- from label_studio_sdk.client import LabelStudio
178
+ from label_studio_sdk import LabelStudio
158
179
 
159
180
  client = LabelStudio(
160
181
  api_key="YOUR_API_KEY",
@@ -164,11 +185,19 @@ class WorkspacesClient:
164
185
  )
165
186
  """
166
187
  _response = self._client_wrapper.httpx_client.request(
167
- f"api/workspaces/{jsonable_encoder(id)}", method="GET", request_options=request_options
188
+ f"api/workspaces/{jsonable_encoder(id)}",
189
+ method="GET",
190
+ request_options=request_options,
168
191
  )
169
192
  try:
170
193
  if 200 <= _response.status_code < 300:
171
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
194
+ return typing.cast(
195
+ Workspace,
196
+ parse_obj_as(
197
+ type_=Workspace, # type: ignore
198
+ object_=_response.json(),
199
+ ),
200
+ )
172
201
  _response_json = _response.json()
173
202
  except JSONDecodeError:
174
203
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -176,6 +205,7 @@ class WorkspacesClient:
176
205
 
177
206
  def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
178
207
  """
208
+
179
209
  Delete a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
180
210
 
181
211
  Parameters
@@ -192,7 +222,7 @@ class WorkspacesClient:
192
222
 
193
223
  Examples
194
224
  --------
195
- from label_studio_sdk.client import LabelStudio
225
+ from label_studio_sdk import LabelStudio
196
226
 
197
227
  client = LabelStudio(
198
228
  api_key="YOUR_API_KEY",
@@ -202,7 +232,9 @@ class WorkspacesClient:
202
232
  )
203
233
  """
204
234
  _response = self._client_wrapper.httpx_client.request(
205
- f"api/workspaces/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
235
+ f"api/workspaces/{jsonable_encoder(id)}",
236
+ method="DELETE",
237
+ request_options=request_options,
206
238
  )
207
239
  try:
208
240
  if 200 <= _response.status_code < 300:
@@ -225,6 +257,7 @@ class WorkspacesClient:
225
257
  request_options: typing.Optional[RequestOptions] = None,
226
258
  ) -> Workspace:
227
259
  """
260
+
228
261
  Update a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
229
262
 
230
263
  Parameters
@@ -260,7 +293,7 @@ class WorkspacesClient:
260
293
 
261
294
  Examples
262
295
  --------
263
- from label_studio_sdk.client import LabelStudio
296
+ from label_studio_sdk import LabelStudio
264
297
 
265
298
  client = LabelStudio(
266
299
  api_key="YOUR_API_KEY",
@@ -280,12 +313,21 @@ class WorkspacesClient:
280
313
  "color": color,
281
314
  "is_archived": is_archived,
282
315
  },
316
+ headers={
317
+ "content-type": "application/json",
318
+ },
283
319
  request_options=request_options,
284
320
  omit=OMIT,
285
321
  )
286
322
  try:
287
323
  if 200 <= _response.status_code < 300:
288
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
324
+ return typing.cast(
325
+ Workspace,
326
+ parse_obj_as(
327
+ type_=Workspace, # type: ignore
328
+ object_=_response.json(),
329
+ ),
330
+ )
289
331
  _response_json = _response.json()
290
332
  except JSONDecodeError:
291
333
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -299,6 +341,7 @@ class AsyncWorkspacesClient:
299
341
 
300
342
  async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Workspace]:
301
343
  """
344
+
302
345
  List all workspaces for your organization.
303
346
 
304
347
  Workspaces in Label Studio let you organize your projects and users into separate spaces. This is useful for managing different teams, departments, or projects within your organization.
@@ -317,19 +360,35 @@ class AsyncWorkspacesClient:
317
360
 
318
361
  Examples
319
362
  --------
320
- from label_studio_sdk.client import AsyncLabelStudio
363
+ import asyncio
364
+
365
+ from label_studio_sdk import AsyncLabelStudio
321
366
 
322
367
  client = AsyncLabelStudio(
323
368
  api_key="YOUR_API_KEY",
324
369
  )
325
- await client.workspaces.list()
370
+
371
+
372
+ async def main() -> None:
373
+ await client.workspaces.list()
374
+
375
+
376
+ asyncio.run(main())
326
377
  """
327
378
  _response = await self._client_wrapper.httpx_client.request(
328
- "api/workspaces", method="GET", request_options=request_options
379
+ "api/workspaces",
380
+ method="GET",
381
+ request_options=request_options,
329
382
  )
330
383
  try:
331
384
  if 200 <= _response.status_code < 300:
332
- return pydantic_v1.parse_obj_as(typing.List[Workspace], _response.json()) # type: ignore
385
+ return typing.cast(
386
+ typing.List[Workspace],
387
+ parse_obj_as(
388
+ type_=typing.List[Workspace], # type: ignore
389
+ object_=_response.json(),
390
+ ),
391
+ )
333
392
  _response_json = _response.json()
334
393
  except JSONDecodeError:
335
394
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -347,6 +406,7 @@ class AsyncWorkspacesClient:
347
406
  request_options: typing.Optional[RequestOptions] = None,
348
407
  ) -> Workspace:
349
408
  """
409
+
350
410
  Create a new workspace.
351
411
 
352
412
  Workspaces in Label Studio let you organize your projects and users into separate spaces. This is useful for managing different teams, departments, or projects within your organization.
@@ -383,12 +443,20 @@ class AsyncWorkspacesClient:
383
443
 
384
444
  Examples
385
445
  --------
386
- from label_studio_sdk.client import AsyncLabelStudio
446
+ import asyncio
447
+
448
+ from label_studio_sdk import AsyncLabelStudio
387
449
 
388
450
  client = AsyncLabelStudio(
389
451
  api_key="YOUR_API_KEY",
390
452
  )
391
- await client.workspaces.create()
453
+
454
+
455
+ async def main() -> None:
456
+ await client.workspaces.create()
457
+
458
+
459
+ asyncio.run(main())
392
460
  """
393
461
  _response = await self._client_wrapper.httpx_client.request(
394
462
  "api/workspaces",
@@ -401,12 +469,21 @@ class AsyncWorkspacesClient:
401
469
  "color": color,
402
470
  "is_archived": is_archived,
403
471
  },
472
+ headers={
473
+ "content-type": "application/json",
474
+ },
404
475
  request_options=request_options,
405
476
  omit=OMIT,
406
477
  )
407
478
  try:
408
479
  if 200 <= _response.status_code < 300:
409
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
480
+ return typing.cast(
481
+ Workspace,
482
+ parse_obj_as(
483
+ type_=Workspace, # type: ignore
484
+ object_=_response.json(),
485
+ ),
486
+ )
410
487
  _response_json = _response.json()
411
488
  except JSONDecodeError:
412
489
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -414,6 +491,7 @@ class AsyncWorkspacesClient:
414
491
 
415
492
  async def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Workspace:
416
493
  """
494
+
417
495
  Get information about a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
418
496
 
419
497
  Parameters
@@ -431,21 +509,37 @@ class AsyncWorkspacesClient:
431
509
 
432
510
  Examples
433
511
  --------
434
- from label_studio_sdk.client import AsyncLabelStudio
512
+ import asyncio
513
+
514
+ from label_studio_sdk import AsyncLabelStudio
435
515
 
436
516
  client = AsyncLabelStudio(
437
517
  api_key="YOUR_API_KEY",
438
518
  )
439
- await client.workspaces.get(
440
- id=1,
441
- )
519
+
520
+
521
+ async def main() -> None:
522
+ await client.workspaces.get(
523
+ id=1,
524
+ )
525
+
526
+
527
+ asyncio.run(main())
442
528
  """
443
529
  _response = await self._client_wrapper.httpx_client.request(
444
- f"api/workspaces/{jsonable_encoder(id)}", method="GET", request_options=request_options
530
+ f"api/workspaces/{jsonable_encoder(id)}",
531
+ method="GET",
532
+ request_options=request_options,
445
533
  )
446
534
  try:
447
535
  if 200 <= _response.status_code < 300:
448
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
536
+ return typing.cast(
537
+ Workspace,
538
+ parse_obj_as(
539
+ type_=Workspace, # type: ignore
540
+ object_=_response.json(),
541
+ ),
542
+ )
449
543
  _response_json = _response.json()
450
544
  except JSONDecodeError:
451
545
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -453,6 +547,7 @@ class AsyncWorkspacesClient:
453
547
 
454
548
  async def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
455
549
  """
550
+
456
551
  Delete a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
457
552
 
458
553
  Parameters
@@ -469,17 +564,27 @@ class AsyncWorkspacesClient:
469
564
 
470
565
  Examples
471
566
  --------
472
- from label_studio_sdk.client import AsyncLabelStudio
567
+ import asyncio
568
+
569
+ from label_studio_sdk import AsyncLabelStudio
473
570
 
474
571
  client = AsyncLabelStudio(
475
572
  api_key="YOUR_API_KEY",
476
573
  )
477
- await client.workspaces.delete(
478
- id=1,
479
- )
574
+
575
+
576
+ async def main() -> None:
577
+ await client.workspaces.delete(
578
+ id=1,
579
+ )
580
+
581
+
582
+ asyncio.run(main())
480
583
  """
481
584
  _response = await self._client_wrapper.httpx_client.request(
482
- f"api/workspaces/{jsonable_encoder(id)}", method="DELETE", request_options=request_options
585
+ f"api/workspaces/{jsonable_encoder(id)}",
586
+ method="DELETE",
587
+ request_options=request_options,
483
588
  )
484
589
  try:
485
590
  if 200 <= _response.status_code < 300:
@@ -502,6 +607,7 @@ class AsyncWorkspacesClient:
502
607
  request_options: typing.Optional[RequestOptions] = None,
503
608
  ) -> Workspace:
504
609
  """
610
+
505
611
  Update a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
506
612
 
507
613
  Parameters
@@ -537,14 +643,22 @@ class AsyncWorkspacesClient:
537
643
 
538
644
  Examples
539
645
  --------
540
- from label_studio_sdk.client import AsyncLabelStudio
646
+ import asyncio
647
+
648
+ from label_studio_sdk import AsyncLabelStudio
541
649
 
542
650
  client = AsyncLabelStudio(
543
651
  api_key="YOUR_API_KEY",
544
652
  )
545
- await client.workspaces.update(
546
- id=1,
547
- )
653
+
654
+
655
+ async def main() -> None:
656
+ await client.workspaces.update(
657
+ id=1,
658
+ )
659
+
660
+
661
+ asyncio.run(main())
548
662
  """
549
663
  _response = await self._client_wrapper.httpx_client.request(
550
664
  f"api/workspaces/{jsonable_encoder(id)}",
@@ -557,12 +671,21 @@ class AsyncWorkspacesClient:
557
671
  "color": color,
558
672
  "is_archived": is_archived,
559
673
  },
674
+ headers={
675
+ "content-type": "application/json",
676
+ },
560
677
  request_options=request_options,
561
678
  omit=OMIT,
562
679
  )
563
680
  try:
564
681
  if 200 <= _response.status_code < 300:
565
- return pydantic_v1.parse_obj_as(Workspace, _response.json()) # type: ignore
682
+ return typing.cast(
683
+ Workspace,
684
+ parse_obj_as(
685
+ type_=Workspace, # type: ignore
686
+ object_=_response.json(),
687
+ ),
688
+ )
566
689
  _response_json = _response.json()
567
690
  except JSONDecodeError:
568
691
  raise ApiError(status_code=_response.status_code, body=_response.text)