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,16 +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 ..core.request_options import RequestOptions
6
+ from .types.users_reset_token_response import UsersResetTokenResponse
7
+ from ..core.pydantic_utilities import parse_obj_as
4
8
  from json.decoder import JSONDecodeError
5
-
6
9
  from ..core.api_error import ApiError
7
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
- 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.base_user import BaseUser
12
10
  from .types.users_get_token_response import UsersGetTokenResponse
13
- from .types.users_reset_token_response import UsersResetTokenResponse
11
+ from ..types.base_user import BaseUser
12
+ from ..core.jsonable_encoder import jsonable_encoder
13
+ from ..core.client_wrapper import AsyncClientWrapper
14
14
 
15
15
  # this is used as the default value for optional parameters
16
16
  OMIT = typing.cast(typing.Any, ...)
@@ -36,7 +36,7 @@ class UsersClient:
36
36
 
37
37
  Examples
38
38
  --------
39
- from label_studio_sdk.client import LabelStudio
39
+ from label_studio_sdk import LabelStudio
40
40
 
41
41
  client = LabelStudio(
42
42
  api_key="YOUR_API_KEY",
@@ -44,11 +44,19 @@ class UsersClient:
44
44
  client.users.reset_token()
45
45
  """
46
46
  _response = self._client_wrapper.httpx_client.request(
47
- "api/current-user/reset-token/", method="POST", request_options=request_options
47
+ "api/current-user/reset-token/",
48
+ method="POST",
49
+ request_options=request_options,
48
50
  )
49
51
  try:
50
52
  if 200 <= _response.status_code < 300:
51
- return pydantic_v1.parse_obj_as(UsersResetTokenResponse, _response.json()) # type: ignore
53
+ return typing.cast(
54
+ UsersResetTokenResponse,
55
+ parse_obj_as(
56
+ type_=UsersResetTokenResponse, # type: ignore
57
+ object_=_response.json(),
58
+ ),
59
+ )
52
60
  _response_json = _response.json()
53
61
  except JSONDecodeError:
54
62
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -70,7 +78,7 @@ class UsersClient:
70
78
 
71
79
  Examples
72
80
  --------
73
- from label_studio_sdk.client import LabelStudio
81
+ from label_studio_sdk import LabelStudio
74
82
 
75
83
  client = LabelStudio(
76
84
  api_key="YOUR_API_KEY",
@@ -78,11 +86,19 @@ class UsersClient:
78
86
  client.users.get_token()
79
87
  """
80
88
  _response = self._client_wrapper.httpx_client.request(
81
- "api/current-user/token", method="GET", request_options=request_options
89
+ "api/current-user/token",
90
+ method="GET",
91
+ request_options=request_options,
82
92
  )
83
93
  try:
84
94
  if 200 <= _response.status_code < 300:
85
- return pydantic_v1.parse_obj_as(UsersGetTokenResponse, _response.json()) # type: ignore
95
+ return typing.cast(
96
+ UsersGetTokenResponse,
97
+ parse_obj_as(
98
+ type_=UsersGetTokenResponse, # type: ignore
99
+ object_=_response.json(),
100
+ ),
101
+ )
86
102
  _response_json = _response.json()
87
103
  except JSONDecodeError:
88
104
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -104,7 +120,7 @@ class UsersClient:
104
120
 
105
121
  Examples
106
122
  --------
107
- from label_studio_sdk.client import LabelStudio
123
+ from label_studio_sdk import LabelStudio
108
124
 
109
125
  client = LabelStudio(
110
126
  api_key="YOUR_API_KEY",
@@ -112,11 +128,19 @@ class UsersClient:
112
128
  client.users.whoami()
113
129
  """
114
130
  _response = self._client_wrapper.httpx_client.request(
115
- "api/current-user/whoami", method="GET", request_options=request_options
131
+ "api/current-user/whoami",
132
+ method="GET",
133
+ request_options=request_options,
116
134
  )
117
135
  try:
118
136
  if 200 <= _response.status_code < 300:
119
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
137
+ return typing.cast(
138
+ BaseUser,
139
+ parse_obj_as(
140
+ type_=BaseUser, # type: ignore
141
+ object_=_response.json(),
142
+ ),
143
+ )
120
144
  _response_json = _response.json()
121
145
  except JSONDecodeError:
122
146
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -124,6 +148,7 @@ class UsersClient:
124
148
 
125
149
  def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[BaseUser]:
126
150
  """
151
+
127
152
  List all users in your Label Studio organization.
128
153
 
129
154
  Parameters
@@ -138,7 +163,7 @@ class UsersClient:
138
163
 
139
164
  Examples
140
165
  --------
141
- from label_studio_sdk.client import LabelStudio
166
+ from label_studio_sdk import LabelStudio
142
167
 
143
168
  client = LabelStudio(
144
169
  api_key="YOUR_API_KEY",
@@ -146,11 +171,19 @@ class UsersClient:
146
171
  client.users.list()
147
172
  """
148
173
  _response = self._client_wrapper.httpx_client.request(
149
- "api/users/", method="GET", request_options=request_options
174
+ "api/users/",
175
+ method="GET",
176
+ request_options=request_options,
150
177
  )
151
178
  try:
152
179
  if 200 <= _response.status_code < 300:
153
- return pydantic_v1.parse_obj_as(typing.List[BaseUser], _response.json()) # type: ignore
180
+ return typing.cast(
181
+ typing.List[BaseUser],
182
+ parse_obj_as(
183
+ type_=typing.List[BaseUser], # type: ignore
184
+ object_=_response.json(),
185
+ ),
186
+ )
154
187
  _response_json = _response.json()
155
188
  except JSONDecodeError:
156
189
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -171,6 +204,7 @@ class UsersClient:
171
204
  request_options: typing.Optional[RequestOptions] = None,
172
205
  ) -> BaseUser:
173
206
  """
207
+
174
208
  Create a user in Label Studio.
175
209
 
176
210
  Parameters
@@ -212,7 +246,7 @@ class UsersClient:
212
246
 
213
247
  Examples
214
248
  --------
215
- from label_studio_sdk.client import LabelStudio
249
+ from label_studio_sdk import LabelStudio
216
250
 
217
251
  client = LabelStudio(
218
252
  api_key="YOUR_API_KEY",
@@ -233,12 +267,21 @@ class UsersClient:
233
267
  "phone": phone,
234
268
  "allow_newsletters": allow_newsletters,
235
269
  },
270
+ headers={
271
+ "content-type": "application/json",
272
+ },
236
273
  request_options=request_options,
237
274
  omit=OMIT,
238
275
  )
239
276
  try:
240
277
  if 200 <= _response.status_code < 300:
241
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
278
+ return typing.cast(
279
+ BaseUser,
280
+ parse_obj_as(
281
+ type_=BaseUser, # type: ignore
282
+ object_=_response.json(),
283
+ ),
284
+ )
242
285
  _response_json = _response.json()
243
286
  except JSONDecodeError:
244
287
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -246,6 +289,7 @@ class UsersClient:
246
289
 
247
290
  def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> BaseUser:
248
291
  """
292
+
249
293
  Get info about a specific Label Studio user.
250
294
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
251
295
 
@@ -264,7 +308,7 @@ class UsersClient:
264
308
 
265
309
  Examples
266
310
  --------
267
- from label_studio_sdk.client import LabelStudio
311
+ from label_studio_sdk import LabelStudio
268
312
 
269
313
  client = LabelStudio(
270
314
  api_key="YOUR_API_KEY",
@@ -274,11 +318,19 @@ class UsersClient:
274
318
  )
275
319
  """
276
320
  _response = self._client_wrapper.httpx_client.request(
277
- f"api/users/{jsonable_encoder(id)}/", method="GET", request_options=request_options
321
+ f"api/users/{jsonable_encoder(id)}/",
322
+ method="GET",
323
+ request_options=request_options,
278
324
  )
279
325
  try:
280
326
  if 200 <= _response.status_code < 300:
281
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
327
+ return typing.cast(
328
+ BaseUser,
329
+ parse_obj_as(
330
+ type_=BaseUser, # type: ignore
331
+ object_=_response.json(),
332
+ ),
333
+ )
282
334
  _response_json = _response.json()
283
335
  except JSONDecodeError:
284
336
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -286,6 +338,7 @@ class UsersClient:
286
338
 
287
339
  def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
288
340
  """
341
+
289
342
  Delete a specific Label Studio user.
290
343
 
291
344
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
@@ -306,7 +359,7 @@ class UsersClient:
306
359
 
307
360
  Examples
308
361
  --------
309
- from label_studio_sdk.client import LabelStudio
362
+ from label_studio_sdk import LabelStudio
310
363
 
311
364
  client = LabelStudio(
312
365
  api_key="YOUR_API_KEY",
@@ -316,7 +369,9 @@ class UsersClient:
316
369
  )
317
370
  """
318
371
  _response = self._client_wrapper.httpx_client.request(
319
- f"api/users/{jsonable_encoder(id)}/", method="DELETE", request_options=request_options
372
+ f"api/users/{jsonable_encoder(id)}/",
373
+ method="DELETE",
374
+ request_options=request_options,
320
375
  )
321
376
  try:
322
377
  if 200 <= _response.status_code < 300:
@@ -342,6 +397,7 @@ class UsersClient:
342
397
  request_options: typing.Optional[RequestOptions] = None,
343
398
  ) -> BaseUser:
344
399
  """
400
+
345
401
  Update details for a specific Label Studio user, such as their name or contact information.
346
402
 
347
403
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
@@ -388,7 +444,7 @@ class UsersClient:
388
444
 
389
445
  Examples
390
446
  --------
391
- from label_studio_sdk.client import LabelStudio
447
+ from label_studio_sdk import LabelStudio
392
448
 
393
449
  client = LabelStudio(
394
450
  api_key="YOUR_API_KEY",
@@ -411,12 +467,21 @@ class UsersClient:
411
467
  "phone": phone,
412
468
  "allow_newsletters": allow_newsletters,
413
469
  },
470
+ headers={
471
+ "content-type": "application/json",
472
+ },
414
473
  request_options=request_options,
415
474
  omit=OMIT,
416
475
  )
417
476
  try:
418
477
  if 200 <= _response.status_code < 300:
419
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
478
+ return typing.cast(
479
+ BaseUser,
480
+ parse_obj_as(
481
+ type_=BaseUser, # type: ignore
482
+ object_=_response.json(),
483
+ ),
484
+ )
420
485
  _response_json = _response.json()
421
486
  except JSONDecodeError:
422
487
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -443,19 +508,35 @@ class AsyncUsersClient:
443
508
 
444
509
  Examples
445
510
  --------
446
- from label_studio_sdk.client import AsyncLabelStudio
511
+ import asyncio
512
+
513
+ from label_studio_sdk import AsyncLabelStudio
447
514
 
448
515
  client = AsyncLabelStudio(
449
516
  api_key="YOUR_API_KEY",
450
517
  )
451
- await client.users.reset_token()
518
+
519
+
520
+ async def main() -> None:
521
+ await client.users.reset_token()
522
+
523
+
524
+ asyncio.run(main())
452
525
  """
453
526
  _response = await self._client_wrapper.httpx_client.request(
454
- "api/current-user/reset-token/", method="POST", request_options=request_options
527
+ "api/current-user/reset-token/",
528
+ method="POST",
529
+ request_options=request_options,
455
530
  )
456
531
  try:
457
532
  if 200 <= _response.status_code < 300:
458
- return pydantic_v1.parse_obj_as(UsersResetTokenResponse, _response.json()) # type: ignore
533
+ return typing.cast(
534
+ UsersResetTokenResponse,
535
+ parse_obj_as(
536
+ type_=UsersResetTokenResponse, # type: ignore
537
+ object_=_response.json(),
538
+ ),
539
+ )
459
540
  _response_json = _response.json()
460
541
  except JSONDecodeError:
461
542
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -477,19 +558,35 @@ class AsyncUsersClient:
477
558
 
478
559
  Examples
479
560
  --------
480
- from label_studio_sdk.client import AsyncLabelStudio
561
+ import asyncio
562
+
563
+ from label_studio_sdk import AsyncLabelStudio
481
564
 
482
565
  client = AsyncLabelStudio(
483
566
  api_key="YOUR_API_KEY",
484
567
  )
485
- await client.users.get_token()
568
+
569
+
570
+ async def main() -> None:
571
+ await client.users.get_token()
572
+
573
+
574
+ asyncio.run(main())
486
575
  """
487
576
  _response = await self._client_wrapper.httpx_client.request(
488
- "api/current-user/token", method="GET", request_options=request_options
577
+ "api/current-user/token",
578
+ method="GET",
579
+ request_options=request_options,
489
580
  )
490
581
  try:
491
582
  if 200 <= _response.status_code < 300:
492
- return pydantic_v1.parse_obj_as(UsersGetTokenResponse, _response.json()) # type: ignore
583
+ return typing.cast(
584
+ UsersGetTokenResponse,
585
+ parse_obj_as(
586
+ type_=UsersGetTokenResponse, # type: ignore
587
+ object_=_response.json(),
588
+ ),
589
+ )
493
590
  _response_json = _response.json()
494
591
  except JSONDecodeError:
495
592
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -511,19 +608,35 @@ class AsyncUsersClient:
511
608
 
512
609
  Examples
513
610
  --------
514
- from label_studio_sdk.client import AsyncLabelStudio
611
+ import asyncio
612
+
613
+ from label_studio_sdk import AsyncLabelStudio
515
614
 
516
615
  client = AsyncLabelStudio(
517
616
  api_key="YOUR_API_KEY",
518
617
  )
519
- await client.users.whoami()
618
+
619
+
620
+ async def main() -> None:
621
+ await client.users.whoami()
622
+
623
+
624
+ asyncio.run(main())
520
625
  """
521
626
  _response = await self._client_wrapper.httpx_client.request(
522
- "api/current-user/whoami", method="GET", request_options=request_options
627
+ "api/current-user/whoami",
628
+ method="GET",
629
+ request_options=request_options,
523
630
  )
524
631
  try:
525
632
  if 200 <= _response.status_code < 300:
526
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
633
+ return typing.cast(
634
+ BaseUser,
635
+ parse_obj_as(
636
+ type_=BaseUser, # type: ignore
637
+ object_=_response.json(),
638
+ ),
639
+ )
527
640
  _response_json = _response.json()
528
641
  except JSONDecodeError:
529
642
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -531,6 +644,7 @@ class AsyncUsersClient:
531
644
 
532
645
  async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[BaseUser]:
533
646
  """
647
+
534
648
  List all users in your Label Studio organization.
535
649
 
536
650
  Parameters
@@ -545,19 +659,35 @@ class AsyncUsersClient:
545
659
 
546
660
  Examples
547
661
  --------
548
- from label_studio_sdk.client import AsyncLabelStudio
662
+ import asyncio
663
+
664
+ from label_studio_sdk import AsyncLabelStudio
549
665
 
550
666
  client = AsyncLabelStudio(
551
667
  api_key="YOUR_API_KEY",
552
668
  )
553
- await client.users.list()
669
+
670
+
671
+ async def main() -> None:
672
+ await client.users.list()
673
+
674
+
675
+ asyncio.run(main())
554
676
  """
555
677
  _response = await self._client_wrapper.httpx_client.request(
556
- "api/users/", method="GET", request_options=request_options
678
+ "api/users/",
679
+ method="GET",
680
+ request_options=request_options,
557
681
  )
558
682
  try:
559
683
  if 200 <= _response.status_code < 300:
560
- return pydantic_v1.parse_obj_as(typing.List[BaseUser], _response.json()) # type: ignore
684
+ return typing.cast(
685
+ typing.List[BaseUser],
686
+ parse_obj_as(
687
+ type_=typing.List[BaseUser], # type: ignore
688
+ object_=_response.json(),
689
+ ),
690
+ )
561
691
  _response_json = _response.json()
562
692
  except JSONDecodeError:
563
693
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -578,6 +708,7 @@ class AsyncUsersClient:
578
708
  request_options: typing.Optional[RequestOptions] = None,
579
709
  ) -> BaseUser:
580
710
  """
711
+
581
712
  Create a user in Label Studio.
582
713
 
583
714
  Parameters
@@ -619,12 +750,20 @@ class AsyncUsersClient:
619
750
 
620
751
  Examples
621
752
  --------
622
- from label_studio_sdk.client import AsyncLabelStudio
753
+ import asyncio
754
+
755
+ from label_studio_sdk import AsyncLabelStudio
623
756
 
624
757
  client = AsyncLabelStudio(
625
758
  api_key="YOUR_API_KEY",
626
759
  )
627
- await client.users.create()
760
+
761
+
762
+ async def main() -> None:
763
+ await client.users.create()
764
+
765
+
766
+ asyncio.run(main())
628
767
  """
629
768
  _response = await self._client_wrapper.httpx_client.request(
630
769
  "api/users/",
@@ -640,12 +779,21 @@ class AsyncUsersClient:
640
779
  "phone": phone,
641
780
  "allow_newsletters": allow_newsletters,
642
781
  },
782
+ headers={
783
+ "content-type": "application/json",
784
+ },
643
785
  request_options=request_options,
644
786
  omit=OMIT,
645
787
  )
646
788
  try:
647
789
  if 200 <= _response.status_code < 300:
648
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
790
+ return typing.cast(
791
+ BaseUser,
792
+ parse_obj_as(
793
+ type_=BaseUser, # type: ignore
794
+ object_=_response.json(),
795
+ ),
796
+ )
649
797
  _response_json = _response.json()
650
798
  except JSONDecodeError:
651
799
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -653,6 +801,7 @@ class AsyncUsersClient:
653
801
 
654
802
  async def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> BaseUser:
655
803
  """
804
+
656
805
  Get info about a specific Label Studio user.
657
806
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
658
807
 
@@ -671,21 +820,37 @@ class AsyncUsersClient:
671
820
 
672
821
  Examples
673
822
  --------
674
- from label_studio_sdk.client import AsyncLabelStudio
823
+ import asyncio
824
+
825
+ from label_studio_sdk import AsyncLabelStudio
675
826
 
676
827
  client = AsyncLabelStudio(
677
828
  api_key="YOUR_API_KEY",
678
829
  )
679
- await client.users.get(
680
- id=1,
681
- )
830
+
831
+
832
+ async def main() -> None:
833
+ await client.users.get(
834
+ id=1,
835
+ )
836
+
837
+
838
+ asyncio.run(main())
682
839
  """
683
840
  _response = await self._client_wrapper.httpx_client.request(
684
- f"api/users/{jsonable_encoder(id)}/", method="GET", request_options=request_options
841
+ f"api/users/{jsonable_encoder(id)}/",
842
+ method="GET",
843
+ request_options=request_options,
685
844
  )
686
845
  try:
687
846
  if 200 <= _response.status_code < 300:
688
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
847
+ return typing.cast(
848
+ BaseUser,
849
+ parse_obj_as(
850
+ type_=BaseUser, # type: ignore
851
+ object_=_response.json(),
852
+ ),
853
+ )
689
854
  _response_json = _response.json()
690
855
  except JSONDecodeError:
691
856
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -693,6 +858,7 @@ class AsyncUsersClient:
693
858
 
694
859
  async def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
695
860
  """
861
+
696
862
  Delete a specific Label Studio user.
697
863
 
698
864
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
@@ -713,17 +879,27 @@ class AsyncUsersClient:
713
879
 
714
880
  Examples
715
881
  --------
716
- from label_studio_sdk.client import AsyncLabelStudio
882
+ import asyncio
883
+
884
+ from label_studio_sdk import AsyncLabelStudio
717
885
 
718
886
  client = AsyncLabelStudio(
719
887
  api_key="YOUR_API_KEY",
720
888
  )
721
- await client.users.delete(
722
- id=1,
723
- )
889
+
890
+
891
+ async def main() -> None:
892
+ await client.users.delete(
893
+ id=1,
894
+ )
895
+
896
+
897
+ asyncio.run(main())
724
898
  """
725
899
  _response = await self._client_wrapper.httpx_client.request(
726
- f"api/users/{jsonable_encoder(id)}/", method="DELETE", request_options=request_options
900
+ f"api/users/{jsonable_encoder(id)}/",
901
+ method="DELETE",
902
+ request_options=request_options,
727
903
  )
728
904
  try:
729
905
  if 200 <= _response.status_code < 300:
@@ -749,6 +925,7 @@ class AsyncUsersClient:
749
925
  request_options: typing.Optional[RequestOptions] = None,
750
926
  ) -> BaseUser:
751
927
  """
928
+
752
929
  Update details for a specific Label Studio user, such as their name or contact information.
753
930
 
754
931
  You will need to provide their user ID. You can find a list of all user IDs using [List users](list).
@@ -795,14 +972,22 @@ class AsyncUsersClient:
795
972
 
796
973
  Examples
797
974
  --------
798
- from label_studio_sdk.client import AsyncLabelStudio
975
+ import asyncio
976
+
977
+ from label_studio_sdk import AsyncLabelStudio
799
978
 
800
979
  client = AsyncLabelStudio(
801
980
  api_key="YOUR_API_KEY",
802
981
  )
803
- await client.users.update(
804
- id=1,
805
- )
982
+
983
+
984
+ async def main() -> None:
985
+ await client.users.update(
986
+ id=1,
987
+ )
988
+
989
+
990
+ asyncio.run(main())
806
991
  """
807
992
  _response = await self._client_wrapper.httpx_client.request(
808
993
  f"api/users/{jsonable_encoder(id)}/",
@@ -818,12 +1003,21 @@ class AsyncUsersClient:
818
1003
  "phone": phone,
819
1004
  "allow_newsletters": allow_newsletters,
820
1005
  },
1006
+ headers={
1007
+ "content-type": "application/json",
1008
+ },
821
1009
  request_options=request_options,
822
1010
  omit=OMIT,
823
1011
  )
824
1012
  try:
825
1013
  if 200 <= _response.status_code < 300:
826
- return pydantic_v1.parse_obj_as(BaseUser, _response.json()) # type: ignore
1014
+ return typing.cast(
1015
+ BaseUser,
1016
+ parse_obj_as(
1017
+ type_=BaseUser, # type: ignore
1018
+ object_=_response.json(),
1019
+ ),
1020
+ )
827
1021
  _response_json = _response.json()
828
1022
  except JSONDecodeError:
829
1023
  raise ApiError(status_code=_response.status_code, body=_response.text)