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,20 +1,21 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- import datetime as dt
4
3
  import typing
5
- from json.decoder import JSONDecodeError
6
-
7
- from ...core.api_error import ApiError
8
- from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
- from ...core.jsonable_encoder import jsonable_encoder
10
- from ...core.pydantic_utilities import pydantic_v1
4
+ from ...core.client_wrapper import SyncClientWrapper
11
5
  from ...core.request_options import RequestOptions
12
- from ...types.inference_run_cost_estimate import InferenceRunCostEstimate
13
6
  from ...types.prompt_version import PromptVersion
7
+ from ...core.jsonable_encoder import jsonable_encoder
8
+ from ...core.pydantic_utilities import parse_obj_as
9
+ from json.decoder import JSONDecodeError
10
+ from ...core.api_error import ApiError
11
+ from ...types.prompt_version_provider import PromptVersionProvider
14
12
  from ...types.prompt_version_created_by import PromptVersionCreatedBy
13
+ import datetime as dt
15
14
  from ...types.prompt_version_organization import PromptVersionOrganization
16
- from ...types.prompt_version_provider import PromptVersionProvider
15
+ from ...core.serialization import convert_and_respect_annotation_metadata
16
+ from ...types.inference_run_cost_estimate import InferenceRunCostEstimate
17
17
  from ...types.refined_prompt_response import RefinedPromptResponse
18
+ from ...core.client_wrapper import AsyncClientWrapper
18
19
 
19
20
  # this is used as the default value for optional parameters
20
21
  OMIT = typing.cast(typing.Any, ...)
@@ -43,7 +44,7 @@ class VersionsClient:
43
44
 
44
45
  Examples
45
46
  --------
46
- from label_studio_sdk.client import LabelStudio
47
+ from label_studio_sdk import LabelStudio
47
48
 
48
49
  client = LabelStudio(
49
50
  api_key="YOUR_API_KEY",
@@ -53,11 +54,19 @@ class VersionsClient:
53
54
  )
54
55
  """
55
56
  _response = self._client_wrapper.httpx_client.request(
56
- f"api/prompts/{jsonable_encoder(id)}/versions", method="GET", request_options=request_options
57
+ f"api/prompts/{jsonable_encoder(id)}/versions",
58
+ method="GET",
59
+ request_options=request_options,
57
60
  )
58
61
  try:
59
62
  if 200 <= _response.status_code < 300:
60
- return pydantic_v1.parse_obj_as(typing.List[PromptVersion], _response.json()) # type: ignore
63
+ return typing.cast(
64
+ typing.List[PromptVersion],
65
+ parse_obj_as(
66
+ type_=typing.List[PromptVersion], # type: ignore
67
+ object_=_response.json(),
68
+ ),
69
+ )
61
70
  _response_json = _response.json()
62
71
  except JSONDecodeError:
63
72
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -117,7 +126,7 @@ class VersionsClient:
117
126
 
118
127
  Examples
119
128
  --------
120
- from label_studio_sdk.client import LabelStudio
129
+ from label_studio_sdk import LabelStudio
121
130
 
122
131
  client = LabelStudio(
123
132
  api_key="YOUR_API_KEY",
@@ -136,17 +145,27 @@ class VersionsClient:
136
145
  "prompt": prompt,
137
146
  "provider": provider,
138
147
  "provider_model_id": provider_model_id,
139
- "created_by": created_by,
148
+ "created_by": convert_and_respect_annotation_metadata(
149
+ object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
150
+ ),
140
151
  "created_at": created_at,
141
152
  "updated_at": updated_at,
142
- "organization": organization,
153
+ "organization": convert_and_respect_annotation_metadata(
154
+ object_=organization, annotation=PromptVersionOrganization, direction="write"
155
+ ),
143
156
  },
144
157
  request_options=request_options,
145
158
  omit=OMIT,
146
159
  )
147
160
  try:
148
161
  if 200 <= _response.status_code < 300:
149
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
162
+ return typing.cast(
163
+ PromptVersion,
164
+ parse_obj_as(
165
+ type_=PromptVersion, # type: ignore
166
+ object_=_response.json(),
167
+ ),
168
+ )
150
169
  _response_json = _response.json()
151
170
  except JSONDecodeError:
152
171
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -176,7 +195,7 @@ class VersionsClient:
176
195
 
177
196
  Examples
178
197
  --------
179
- from label_studio_sdk.client import LabelStudio
198
+ from label_studio_sdk import LabelStudio
180
199
 
181
200
  client = LabelStudio(
182
201
  api_key="YOUR_API_KEY",
@@ -193,7 +212,13 @@ class VersionsClient:
193
212
  )
194
213
  try:
195
214
  if 200 <= _response.status_code < 300:
196
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
215
+ return typing.cast(
216
+ PromptVersion,
217
+ parse_obj_as(
218
+ type_=PromptVersion, # type: ignore
219
+ object_=_response.json(),
220
+ ),
221
+ )
197
222
  _response_json = _response.json()
198
223
  except JSONDecodeError:
199
224
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -220,7 +245,7 @@ class VersionsClient:
220
245
 
221
246
  Examples
222
247
  --------
223
- from label_studio_sdk.client import LabelStudio
248
+ from label_studio_sdk import LabelStudio
224
249
 
225
250
  client = LabelStudio(
226
251
  api_key="YOUR_API_KEY",
@@ -301,7 +326,7 @@ class VersionsClient:
301
326
 
302
327
  Examples
303
328
  --------
304
- from label_studio_sdk.client import LabelStudio
329
+ from label_studio_sdk import LabelStudio
305
330
 
306
331
  client = LabelStudio(
307
332
  api_key="YOUR_API_KEY",
@@ -321,17 +346,27 @@ class VersionsClient:
321
346
  "prompt": prompt,
322
347
  "provider": provider,
323
348
  "provider_model_id": provider_model_id,
324
- "created_by": created_by,
349
+ "created_by": convert_and_respect_annotation_metadata(
350
+ object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
351
+ ),
325
352
  "created_at": created_at,
326
353
  "updated_at": updated_at,
327
- "organization": organization,
354
+ "organization": convert_and_respect_annotation_metadata(
355
+ object_=organization, annotation=PromptVersionOrganization, direction="write"
356
+ ),
328
357
  },
329
358
  request_options=request_options,
330
359
  omit=OMIT,
331
360
  )
332
361
  try:
333
362
  if 200 <= _response.status_code < 300:
334
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
363
+ return typing.cast(
364
+ PromptVersion,
365
+ parse_obj_as(
366
+ type_=PromptVersion, # type: ignore
367
+ object_=_response.json(),
368
+ ),
369
+ )
335
370
  _response_json = _response.json()
336
371
  except JSONDecodeError:
337
372
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -373,7 +408,7 @@ class VersionsClient:
373
408
 
374
409
  Examples
375
410
  --------
376
- from label_studio_sdk.client import LabelStudio
411
+ from label_studio_sdk import LabelStudio
377
412
 
378
413
  client = LabelStudio(
379
414
  api_key="YOUR_API_KEY",
@@ -388,12 +423,21 @@ class VersionsClient:
388
423
  _response = self._client_wrapper.httpx_client.request(
389
424
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/cost-estimate",
390
425
  method="POST",
391
- params={"project_id": project_id, "project_subset": project_subset},
426
+ params={
427
+ "project_id": project_id,
428
+ "project_subset": project_subset,
429
+ },
392
430
  request_options=request_options,
393
431
  )
394
432
  try:
395
433
  if 200 <= _response.status_code < 300:
396
- return pydantic_v1.parse_obj_as(InferenceRunCostEstimate, _response.json()) # type: ignore
434
+ return typing.cast(
435
+ InferenceRunCostEstimate,
436
+ parse_obj_as(
437
+ type_=InferenceRunCostEstimate, # type: ignore
438
+ object_=_response.json(),
439
+ ),
440
+ )
397
441
  _response_json = _response.json()
398
442
  except JSONDecodeError:
399
443
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -431,7 +475,7 @@ class VersionsClient:
431
475
 
432
476
  Examples
433
477
  --------
434
- from label_studio_sdk.client import LabelStudio
478
+ from label_studio_sdk import LabelStudio
435
479
 
436
480
  client = LabelStudio(
437
481
  api_key="YOUR_API_KEY",
@@ -445,12 +489,20 @@ class VersionsClient:
445
489
  _response = self._client_wrapper.httpx_client.request(
446
490
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
447
491
  method="GET",
448
- params={"refinement_job_id": refinement_job_id},
492
+ params={
493
+ "refinement_job_id": refinement_job_id,
494
+ },
449
495
  request_options=request_options,
450
496
  )
451
497
  try:
452
498
  if 200 <= _response.status_code < 300:
453
- return pydantic_v1.parse_obj_as(RefinedPromptResponse, _response.json()) # type: ignore
499
+ return typing.cast(
500
+ RefinedPromptResponse,
501
+ parse_obj_as(
502
+ type_=RefinedPromptResponse, # type: ignore
503
+ object_=_response.json(),
504
+ ),
505
+ )
454
506
  _response_json = _response.json()
455
507
  except JSONDecodeError:
456
508
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -500,7 +552,7 @@ class VersionsClient:
500
552
 
501
553
  Examples
502
554
  --------
503
- from label_studio_sdk.client import LabelStudio
555
+ from label_studio_sdk import LabelStudio
504
556
 
505
557
  client = LabelStudio(
506
558
  api_key="YOUR_API_KEY",
@@ -513,18 +565,29 @@ class VersionsClient:
513
565
  _response = self._client_wrapper.httpx_client.request(
514
566
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
515
567
  method="POST",
516
- params={"async": async_},
568
+ params={
569
+ "async": async_,
570
+ },
517
571
  json={
518
572
  "teacher_model_provider_connection_id": teacher_model_provider_connection_id,
519
573
  "teacher_model_name": teacher_model_name,
520
574
  "project_id": project_id,
521
575
  },
576
+ headers={
577
+ "content-type": "application/json",
578
+ },
522
579
  request_options=request_options,
523
580
  omit=OMIT,
524
581
  )
525
582
  try:
526
583
  if 200 <= _response.status_code < 300:
527
- return pydantic_v1.parse_obj_as(RefinedPromptResponse, _response.json()) # type: ignore
584
+ return typing.cast(
585
+ RefinedPromptResponse,
586
+ parse_obj_as(
587
+ type_=RefinedPromptResponse, # type: ignore
588
+ object_=_response.json(),
589
+ ),
590
+ )
528
591
  _response_json = _response.json()
529
592
  except JSONDecodeError:
530
593
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -556,21 +619,37 @@ class AsyncVersionsClient:
556
619
 
557
620
  Examples
558
621
  --------
559
- from label_studio_sdk.client import AsyncLabelStudio
622
+ import asyncio
623
+
624
+ from label_studio_sdk import AsyncLabelStudio
560
625
 
561
626
  client = AsyncLabelStudio(
562
627
  api_key="YOUR_API_KEY",
563
628
  )
564
- await client.prompts.versions.list(
565
- id=1,
566
- )
629
+
630
+
631
+ async def main() -> None:
632
+ await client.prompts.versions.list(
633
+ id=1,
634
+ )
635
+
636
+
637
+ asyncio.run(main())
567
638
  """
568
639
  _response = await self._client_wrapper.httpx_client.request(
569
- f"api/prompts/{jsonable_encoder(id)}/versions", method="GET", request_options=request_options
640
+ f"api/prompts/{jsonable_encoder(id)}/versions",
641
+ method="GET",
642
+ request_options=request_options,
570
643
  )
571
644
  try:
572
645
  if 200 <= _response.status_code < 300:
573
- return pydantic_v1.parse_obj_as(typing.List[PromptVersion], _response.json()) # type: ignore
646
+ return typing.cast(
647
+ typing.List[PromptVersion],
648
+ parse_obj_as(
649
+ type_=typing.List[PromptVersion], # type: ignore
650
+ object_=_response.json(),
651
+ ),
652
+ )
574
653
  _response_json = _response.json()
575
654
  except JSONDecodeError:
576
655
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -630,14 +709,22 @@ class AsyncVersionsClient:
630
709
 
631
710
  Examples
632
711
  --------
633
- from label_studio_sdk.client import AsyncLabelStudio
712
+ import asyncio
713
+
714
+ from label_studio_sdk import AsyncLabelStudio
634
715
 
635
716
  client = AsyncLabelStudio(
636
717
  api_key="YOUR_API_KEY",
637
718
  )
638
- await client.prompts.versions.create(
639
- id=1,
640
- )
719
+
720
+
721
+ async def main() -> None:
722
+ await client.prompts.versions.create(
723
+ id=1,
724
+ )
725
+
726
+
727
+ asyncio.run(main())
641
728
  """
642
729
  _response = await self._client_wrapper.httpx_client.request(
643
730
  f"api/prompts/{jsonable_encoder(id)}/versions",
@@ -649,17 +736,27 @@ class AsyncVersionsClient:
649
736
  "prompt": prompt,
650
737
  "provider": provider,
651
738
  "provider_model_id": provider_model_id,
652
- "created_by": created_by,
739
+ "created_by": convert_and_respect_annotation_metadata(
740
+ object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
741
+ ),
653
742
  "created_at": created_at,
654
743
  "updated_at": updated_at,
655
- "organization": organization,
744
+ "organization": convert_and_respect_annotation_metadata(
745
+ object_=organization, annotation=PromptVersionOrganization, direction="write"
746
+ ),
656
747
  },
657
748
  request_options=request_options,
658
749
  omit=OMIT,
659
750
  )
660
751
  try:
661
752
  if 200 <= _response.status_code < 300:
662
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
753
+ return typing.cast(
754
+ PromptVersion,
755
+ parse_obj_as(
756
+ type_=PromptVersion, # type: ignore
757
+ object_=_response.json(),
758
+ ),
759
+ )
663
760
  _response_json = _response.json()
664
761
  except JSONDecodeError:
665
762
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -689,15 +786,23 @@ class AsyncVersionsClient:
689
786
 
690
787
  Examples
691
788
  --------
692
- from label_studio_sdk.client import AsyncLabelStudio
789
+ import asyncio
790
+
791
+ from label_studio_sdk import AsyncLabelStudio
693
792
 
694
793
  client = AsyncLabelStudio(
695
794
  api_key="YOUR_API_KEY",
696
795
  )
697
- await client.prompts.versions.get(
698
- id=1,
699
- version_id=1,
700
- )
796
+
797
+
798
+ async def main() -> None:
799
+ await client.prompts.versions.get(
800
+ id=1,
801
+ version_id=1,
802
+ )
803
+
804
+
805
+ asyncio.run(main())
701
806
  """
702
807
  _response = await self._client_wrapper.httpx_client.request(
703
808
  f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
@@ -706,7 +811,13 @@ class AsyncVersionsClient:
706
811
  )
707
812
  try:
708
813
  if 200 <= _response.status_code < 300:
709
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
814
+ return typing.cast(
815
+ PromptVersion,
816
+ parse_obj_as(
817
+ type_=PromptVersion, # type: ignore
818
+ object_=_response.json(),
819
+ ),
820
+ )
710
821
  _response_json = _response.json()
711
822
  except JSONDecodeError:
712
823
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -735,15 +846,23 @@ class AsyncVersionsClient:
735
846
 
736
847
  Examples
737
848
  --------
738
- from label_studio_sdk.client import AsyncLabelStudio
849
+ import asyncio
850
+
851
+ from label_studio_sdk import AsyncLabelStudio
739
852
 
740
853
  client = AsyncLabelStudio(
741
854
  api_key="YOUR_API_KEY",
742
855
  )
743
- await client.prompts.versions.delete(
744
- id=1,
745
- version_id=1,
746
- )
856
+
857
+
858
+ async def main() -> None:
859
+ await client.prompts.versions.delete(
860
+ id=1,
861
+ version_id=1,
862
+ )
863
+
864
+
865
+ asyncio.run(main())
747
866
  """
748
867
  _response = await self._client_wrapper.httpx_client.request(
749
868
  f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
@@ -816,15 +935,23 @@ class AsyncVersionsClient:
816
935
 
817
936
  Examples
818
937
  --------
819
- from label_studio_sdk.client import AsyncLabelStudio
938
+ import asyncio
939
+
940
+ from label_studio_sdk import AsyncLabelStudio
820
941
 
821
942
  client = AsyncLabelStudio(
822
943
  api_key="YOUR_API_KEY",
823
944
  )
824
- await client.prompts.versions.update(
825
- id=1,
826
- version_id=1,
827
- )
945
+
946
+
947
+ async def main() -> None:
948
+ await client.prompts.versions.update(
949
+ id=1,
950
+ version_id=1,
951
+ )
952
+
953
+
954
+ asyncio.run(main())
828
955
  """
829
956
  _response = await self._client_wrapper.httpx_client.request(
830
957
  f"api/prompts/{jsonable_encoder(id)}/versions/{jsonable_encoder(version_id)}",
@@ -836,17 +963,27 @@ class AsyncVersionsClient:
836
963
  "prompt": prompt,
837
964
  "provider": provider,
838
965
  "provider_model_id": provider_model_id,
839
- "created_by": created_by,
966
+ "created_by": convert_and_respect_annotation_metadata(
967
+ object_=created_by, annotation=PromptVersionCreatedBy, direction="write"
968
+ ),
840
969
  "created_at": created_at,
841
970
  "updated_at": updated_at,
842
- "organization": organization,
971
+ "organization": convert_and_respect_annotation_metadata(
972
+ object_=organization, annotation=PromptVersionOrganization, direction="write"
973
+ ),
843
974
  },
844
975
  request_options=request_options,
845
976
  omit=OMIT,
846
977
  )
847
978
  try:
848
979
  if 200 <= _response.status_code < 300:
849
- return pydantic_v1.parse_obj_as(PromptVersion, _response.json()) # type: ignore
980
+ return typing.cast(
981
+ PromptVersion,
982
+ parse_obj_as(
983
+ type_=PromptVersion, # type: ignore
984
+ object_=_response.json(),
985
+ ),
986
+ )
850
987
  _response_json = _response.json()
851
988
  except JSONDecodeError:
852
989
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -888,27 +1025,44 @@ class AsyncVersionsClient:
888
1025
 
889
1026
  Examples
890
1027
  --------
891
- from label_studio_sdk.client import AsyncLabelStudio
1028
+ import asyncio
1029
+
1030
+ from label_studio_sdk import AsyncLabelStudio
892
1031
 
893
1032
  client = AsyncLabelStudio(
894
1033
  api_key="YOUR_API_KEY",
895
1034
  )
896
- await client.prompts.versions.cost_estimate(
897
- prompt_id=1,
898
- version_id=1,
899
- project_id=1,
900
- project_subset=1,
901
- )
1035
+
1036
+
1037
+ async def main() -> None:
1038
+ await client.prompts.versions.cost_estimate(
1039
+ prompt_id=1,
1040
+ version_id=1,
1041
+ project_id=1,
1042
+ project_subset=1,
1043
+ )
1044
+
1045
+
1046
+ asyncio.run(main())
902
1047
  """
903
1048
  _response = await self._client_wrapper.httpx_client.request(
904
1049
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/cost-estimate",
905
1050
  method="POST",
906
- params={"project_id": project_id, "project_subset": project_subset},
1051
+ params={
1052
+ "project_id": project_id,
1053
+ "project_subset": project_subset,
1054
+ },
907
1055
  request_options=request_options,
908
1056
  )
909
1057
  try:
910
1058
  if 200 <= _response.status_code < 300:
911
- return pydantic_v1.parse_obj_as(InferenceRunCostEstimate, _response.json()) # type: ignore
1059
+ return typing.cast(
1060
+ InferenceRunCostEstimate,
1061
+ parse_obj_as(
1062
+ type_=InferenceRunCostEstimate, # type: ignore
1063
+ object_=_response.json(),
1064
+ ),
1065
+ )
912
1066
  _response_json = _response.json()
913
1067
  except JSONDecodeError:
914
1068
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -946,26 +1100,42 @@ class AsyncVersionsClient:
946
1100
 
947
1101
  Examples
948
1102
  --------
949
- from label_studio_sdk.client import AsyncLabelStudio
1103
+ import asyncio
1104
+
1105
+ from label_studio_sdk import AsyncLabelStudio
950
1106
 
951
1107
  client = AsyncLabelStudio(
952
1108
  api_key="YOUR_API_KEY",
953
1109
  )
954
- await client.prompts.versions.get_refined_prompt(
955
- prompt_id=1,
956
- version_id=1,
957
- refinement_job_id="refinement_job_id",
958
- )
1110
+
1111
+
1112
+ async def main() -> None:
1113
+ await client.prompts.versions.get_refined_prompt(
1114
+ prompt_id=1,
1115
+ version_id=1,
1116
+ refinement_job_id="refinement_job_id",
1117
+ )
1118
+
1119
+
1120
+ asyncio.run(main())
959
1121
  """
960
1122
  _response = await self._client_wrapper.httpx_client.request(
961
1123
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
962
1124
  method="GET",
963
- params={"refinement_job_id": refinement_job_id},
1125
+ params={
1126
+ "refinement_job_id": refinement_job_id,
1127
+ },
964
1128
  request_options=request_options,
965
1129
  )
966
1130
  try:
967
1131
  if 200 <= _response.status_code < 300:
968
- return pydantic_v1.parse_obj_as(RefinedPromptResponse, _response.json()) # type: ignore
1132
+ return typing.cast(
1133
+ RefinedPromptResponse,
1134
+ parse_obj_as(
1135
+ type_=RefinedPromptResponse, # type: ignore
1136
+ object_=_response.json(),
1137
+ ),
1138
+ )
969
1139
  _response_json = _response.json()
970
1140
  except JSONDecodeError:
971
1141
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -1015,31 +1185,50 @@ class AsyncVersionsClient:
1015
1185
 
1016
1186
  Examples
1017
1187
  --------
1018
- from label_studio_sdk.client import AsyncLabelStudio
1188
+ import asyncio
1189
+
1190
+ from label_studio_sdk import AsyncLabelStudio
1019
1191
 
1020
1192
  client = AsyncLabelStudio(
1021
1193
  api_key="YOUR_API_KEY",
1022
1194
  )
1023
- await client.prompts.versions.refine_prompt(
1024
- prompt_id=1,
1025
- version_id=1,
1026
- )
1195
+
1196
+
1197
+ async def main() -> None:
1198
+ await client.prompts.versions.refine_prompt(
1199
+ prompt_id=1,
1200
+ version_id=1,
1201
+ )
1202
+
1203
+
1204
+ asyncio.run(main())
1027
1205
  """
1028
1206
  _response = await self._client_wrapper.httpx_client.request(
1029
1207
  f"api/prompts/{jsonable_encoder(prompt_id)}/versions/{jsonable_encoder(version_id)}/refine",
1030
1208
  method="POST",
1031
- params={"async": async_},
1209
+ params={
1210
+ "async": async_,
1211
+ },
1032
1212
  json={
1033
1213
  "teacher_model_provider_connection_id": teacher_model_provider_connection_id,
1034
1214
  "teacher_model_name": teacher_model_name,
1035
1215
  "project_id": project_id,
1036
1216
  },
1217
+ headers={
1218
+ "content-type": "application/json",
1219
+ },
1037
1220
  request_options=request_options,
1038
1221
  omit=OMIT,
1039
1222
  )
1040
1223
  try:
1041
1224
  if 200 <= _response.status_code < 300:
1042
- return pydantic_v1.parse_obj_as(RefinedPromptResponse, _response.json()) # type: ignore
1225
+ return typing.cast(
1226
+ RefinedPromptResponse,
1227
+ parse_obj_as(
1228
+ type_=RefinedPromptResponse, # type: ignore
1229
+ object_=_response.json(),
1230
+ ),
1231
+ )
1043
1232
  _response_json = _response.json()
1044
1233
  except JSONDecodeError:
1045
1234
  raise ApiError(status_code=_response.status_code, body=_response.text)