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.
- label_studio_sdk/__init__.py +26 -7
- label_studio_sdk/_extensions/label_studio_tools/core/label_config.py +13 -4
- label_studio_sdk/_extensions/label_studio_tools/core/utils/io.py +16 -4
- label_studio_sdk/_extensions/label_studio_tools/core/utils/json_schema.py +86 -0
- label_studio_sdk/_extensions/pager_ext.py +8 -0
- label_studio_sdk/_legacy/schema/label_config_schema.json +42 -11
- label_studio_sdk/actions/client.py +91 -40
- label_studio_sdk/actions/types/actions_create_request_filters.py +14 -24
- label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +16 -26
- label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +3 -1
- label_studio_sdk/actions/types/actions_create_request_selected_items.py +1 -2
- label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +15 -25
- label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +15 -25
- label_studio_sdk/annotations/__init__.py +2 -2
- label_studio_sdk/annotations/client.py +278 -104
- label_studio_sdk/annotations/types/__init__.py +2 -1
- label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +34 -0
- label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +11 -21
- label_studio_sdk/base_client.py +46 -27
- label_studio_sdk/client.py +1 -0
- label_studio_sdk/comments/client.py +190 -44
- label_studio_sdk/converter/converter.py +66 -18
- label_studio_sdk/converter/imports/yolo.py +1 -1
- label_studio_sdk/converter/utils.py +3 -2
- label_studio_sdk/core/__init__.py +21 -4
- label_studio_sdk/core/client_wrapper.py +9 -10
- label_studio_sdk/core/file.py +37 -8
- label_studio_sdk/core/http_client.py +52 -28
- label_studio_sdk/core/jsonable_encoder.py +33 -31
- label_studio_sdk/core/pagination.py +5 -4
- label_studio_sdk/core/pydantic_utilities.py +272 -4
- label_studio_sdk/core/query_encoder.py +38 -13
- label_studio_sdk/core/request_options.py +3 -0
- label_studio_sdk/core/serialization.py +272 -0
- label_studio_sdk/errors/bad_request_error.py +2 -3
- label_studio_sdk/export_storage/azure/client.py +228 -58
- label_studio_sdk/export_storage/azure/types/azure_create_response.py +19 -29
- label_studio_sdk/export_storage/azure/types/azure_update_response.py +19 -29
- label_studio_sdk/export_storage/client.py +48 -18
- label_studio_sdk/export_storage/gcs/client.py +228 -58
- label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +19 -29
- label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +19 -29
- label_studio_sdk/export_storage/local/client.py +222 -56
- label_studio_sdk/export_storage/local/types/local_create_response.py +17 -27
- label_studio_sdk/export_storage/local/types/local_update_response.py +17 -27
- label_studio_sdk/export_storage/redis/client.py +228 -58
- label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -30
- label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -30
- label_studio_sdk/export_storage/s3/client.py +228 -58
- label_studio_sdk/export_storage/s3/types/s3create_response.py +27 -35
- label_studio_sdk/export_storage/s3/types/s3update_response.py +27 -35
- label_studio_sdk/export_storage/s3s/client.py +187 -43
- label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +11 -21
- label_studio_sdk/files/client.py +172 -56
- label_studio_sdk/import_storage/azure/client.py +223 -53
- label_studio_sdk/import_storage/azure/types/azure_create_response.py +22 -32
- label_studio_sdk/import_storage/azure/types/azure_update_response.py +22 -32
- label_studio_sdk/import_storage/client.py +48 -18
- label_studio_sdk/import_storage/gcs/client.py +223 -53
- label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +22 -32
- label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +22 -32
- label_studio_sdk/import_storage/local/client.py +223 -53
- label_studio_sdk/import_storage/local/types/local_create_response.py +17 -27
- label_studio_sdk/import_storage/local/types/local_update_response.py +17 -27
- label_studio_sdk/import_storage/redis/client.py +223 -53
- label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -30
- label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -30
- label_studio_sdk/import_storage/s3/client.py +223 -53
- label_studio_sdk/import_storage/s3/types/s3create_response.py +31 -39
- label_studio_sdk/import_storage/s3/types/s3update_response.py +31 -39
- label_studio_sdk/import_storage/s3s/client.py +222 -52
- label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +11 -21
- label_studio_sdk/label_interface/control_tags.py +205 -10
- label_studio_sdk/label_interface/interface.py +80 -6
- label_studio_sdk/label_interface/region.py +1 -10
- label_studio_sdk/ml/client.py +280 -78
- label_studio_sdk/ml/types/ml_create_response.py +21 -31
- label_studio_sdk/ml/types/ml_update_response.py +21 -31
- label_studio_sdk/model_providers/client.py +656 -21
- label_studio_sdk/predictions/client.py +247 -101
- label_studio_sdk/projects/__init__.py +3 -0
- label_studio_sdk/projects/client.py +309 -115
- label_studio_sdk/projects/client_ext.py +16 -0
- label_studio_sdk/projects/exports/__init__.py +3 -0
- label_studio_sdk/projects/exports/client.py +447 -296
- label_studio_sdk/projects/exports/client_ext.py +134 -0
- label_studio_sdk/projects/exports/types/__init__.py +6 -0
- label_studio_sdk/projects/exports/types/exports_convert_response.py +24 -0
- label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +44 -0
- label_studio_sdk/projects/types/projects_create_response.py +29 -34
- label_studio_sdk/projects/types/projects_import_tasks_response.py +19 -29
- label_studio_sdk/projects/types/projects_list_response.py +11 -21
- label_studio_sdk/projects/types/projects_update_response.py +24 -34
- label_studio_sdk/prompts/client.py +309 -92
- label_studio_sdk/prompts/indicators/client.py +67 -23
- label_studio_sdk/prompts/runs/client.py +95 -40
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +14 -24
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_response.py +11 -21
- label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +26 -29
- label_studio_sdk/prompts/types/prompts_batch_predictions_response.py +11 -21
- label_studio_sdk/prompts/versions/client.py +389 -75
- label_studio_sdk/tasks/client.py +263 -90
- label_studio_sdk/tasks/types/tasks_list_response.py +15 -25
- label_studio_sdk/types/__init__.py +16 -6
- label_studio_sdk/types/annotation.py +29 -38
- label_studio_sdk/types/annotation_filter_options.py +14 -24
- label_studio_sdk/types/annotations_dm_field.py +30 -39
- label_studio_sdk/types/azure_blob_export_storage.py +28 -37
- label_studio_sdk/types/azure_blob_import_storage.py +28 -37
- label_studio_sdk/types/base_task.py +30 -39
- label_studio_sdk/types/base_task_updated_by.py +3 -1
- label_studio_sdk/types/base_user.py +14 -21
- label_studio_sdk/types/comment.py +12 -21
- label_studio_sdk/types/comment_created_by.py +1 -1
- label_studio_sdk/types/converted_format.py +12 -22
- label_studio_sdk/types/data_manager_task_serializer.py +31 -40
- label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +1 -1
- label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +13 -22
- label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +15 -24
- label_studio_sdk/types/export.py +17 -26
- label_studio_sdk/types/export_format.py +25 -0
- label_studio_sdk/types/export_snapshot.py +45 -0
- label_studio_sdk/types/export_snapshot_status.py +5 -0
- label_studio_sdk/types/file_upload.py +11 -21
- label_studio_sdk/types/filter.py +16 -26
- label_studio_sdk/types/filter_group.py +12 -22
- label_studio_sdk/types/gcs_export_storage.py +28 -37
- label_studio_sdk/types/gcs_import_storage.py +28 -37
- label_studio_sdk/types/inference_run.py +14 -23
- label_studio_sdk/types/inference_run_cost_estimate.py +47 -0
- label_studio_sdk/types/inference_run_created_by.py +1 -1
- label_studio_sdk/types/inference_run_organization.py +1 -1
- label_studio_sdk/types/key_indicator_value.py +12 -22
- label_studio_sdk/types/key_indicators.py +0 -1
- label_studio_sdk/types/key_indicators_item.py +15 -25
- label_studio_sdk/types/key_indicators_item_additional_kpis_item.py +13 -23
- label_studio_sdk/types/key_indicators_item_extra_kpis_item.py +13 -23
- label_studio_sdk/types/local_files_export_storage.py +25 -34
- label_studio_sdk/types/local_files_import_storage.py +24 -33
- label_studio_sdk/types/ml_backend.py +23 -32
- label_studio_sdk/types/model_provider_connection.py +47 -26
- label_studio_sdk/types/model_provider_connection_budget_reset_period.py +5 -0
- label_studio_sdk/types/model_provider_connection_created_by.py +1 -1
- label_studio_sdk/types/model_provider_connection_organization.py +1 -1
- label_studio_sdk/types/model_provider_connection_provider.py +3 -1
- label_studio_sdk/types/prediction.py +21 -30
- label_studio_sdk/types/project.py +48 -55
- label_studio_sdk/types/project_import.py +21 -30
- label_studio_sdk/types/project_label_config.py +12 -22
- label_studio_sdk/types/prompt.py +24 -32
- label_studio_sdk/types/prompt_associated_projects_item.py +6 -0
- label_studio_sdk/types/prompt_associated_projects_item_id.py +20 -0
- label_studio_sdk/types/prompt_created_by.py +1 -1
- label_studio_sdk/types/prompt_organization.py +1 -1
- label_studio_sdk/types/prompt_version.py +13 -22
- label_studio_sdk/types/prompt_version_created_by.py +1 -1
- label_studio_sdk/types/prompt_version_organization.py +1 -1
- label_studio_sdk/types/prompt_version_provider.py +3 -1
- label_studio_sdk/types/redis_export_storage.py +29 -38
- label_studio_sdk/types/redis_import_storage.py +28 -37
- label_studio_sdk/types/refined_prompt_response.py +19 -29
- label_studio_sdk/types/s3export_storage.py +36 -43
- label_studio_sdk/types/s3import_storage.py +37 -44
- label_studio_sdk/types/s3s_export_storage.py +26 -33
- label_studio_sdk/types/s3s_import_storage.py +35 -42
- label_studio_sdk/types/serialization_option.py +12 -22
- label_studio_sdk/types/serialization_options.py +18 -28
- label_studio_sdk/types/task.py +46 -48
- label_studio_sdk/types/task_annotators_item.py +1 -1
- label_studio_sdk/types/task_comment_authors_item.py +5 -0
- label_studio_sdk/types/task_filter_options.py +15 -25
- label_studio_sdk/types/user_simple.py +11 -21
- label_studio_sdk/types/view.py +16 -26
- label_studio_sdk/types/webhook.py +19 -28
- label_studio_sdk/types/webhook_serializer_for_update.py +19 -28
- label_studio_sdk/types/workspace.py +22 -31
- label_studio_sdk/users/client.py +257 -63
- label_studio_sdk/users/types/users_get_token_response.py +12 -22
- label_studio_sdk/users/types/users_reset_token_response.py +12 -22
- label_studio_sdk/version.py +0 -1
- label_studio_sdk/versions/__init__.py +5 -0
- label_studio_sdk/versions/client.py +112 -0
- label_studio_sdk/versions/types/__init__.py +6 -0
- label_studio_sdk/versions/types/versions_get_response.py +73 -0
- label_studio_sdk/versions/types/versions_get_response_edition.py +5 -0
- label_studio_sdk/views/client.py +219 -52
- label_studio_sdk/views/types/views_create_request_data.py +13 -23
- label_studio_sdk/views/types/views_create_request_data_filters.py +14 -24
- label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +16 -26
- label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +3 -1
- label_studio_sdk/views/types/views_update_request_data.py +13 -23
- label_studio_sdk/views/types/views_update_request_data_filters.py +14 -24
- label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +16 -26
- label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +3 -1
- label_studio_sdk/webhooks/client.py +191 -61
- label_studio_sdk/workspaces/client.py +164 -41
- label_studio_sdk/workspaces/members/client.py +109 -31
- label_studio_sdk/workspaces/members/types/members_create_response.py +12 -22
- label_studio_sdk/workspaces/members/types/members_list_response_item.py +12 -22
- {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/METADATA +9 -5
- {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/RECORD +203 -186
- {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/WHEEL +1 -1
- label_studio_sdk/types/export_convert.py +0 -32
- label_studio_sdk/types/export_create.py +0 -54
- label_studio_sdk/types/export_create_status.py +0 -5
- {label_studio_sdk-1.0.7.dist-info → label_studio_sdk-1.0.10.dist-info}/LICENSE +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
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.comment import Comment
|
|
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
10
|
from ..core.jsonable_encoder import jsonable_encoder
|
|
9
|
-
from ..core.
|
|
10
|
-
from ..core.request_options import RequestOptions
|
|
11
|
-
from ..types.comment import Comment
|
|
11
|
+
from ..core.client_wrapper import AsyncClientWrapper
|
|
12
12
|
|
|
13
13
|
# this is used as the default value for optional parameters
|
|
14
14
|
OMIT = typing.cast(typing.Any, ...)
|
|
@@ -27,6 +27,7 @@ class CommentsClient:
|
|
|
27
27
|
request_options: typing.Optional[RequestOptions] = None,
|
|
28
28
|
) -> typing.List[Comment]:
|
|
29
29
|
"""
|
|
30
|
+
|
|
30
31
|
Get a list of comments for a specific project.
|
|
31
32
|
|
|
32
33
|
Parameters
|
|
@@ -50,7 +51,7 @@ class CommentsClient:
|
|
|
50
51
|
|
|
51
52
|
Examples
|
|
52
53
|
--------
|
|
53
|
-
from label_studio_sdk
|
|
54
|
+
from label_studio_sdk import LabelStudio
|
|
54
55
|
|
|
55
56
|
client = LabelStudio(
|
|
56
57
|
api_key="YOUR_API_KEY",
|
|
@@ -60,12 +61,22 @@ class CommentsClient:
|
|
|
60
61
|
_response = self._client_wrapper.httpx_client.request(
|
|
61
62
|
"api/comments/",
|
|
62
63
|
method="GET",
|
|
63
|
-
params={
|
|
64
|
+
params={
|
|
65
|
+
"project": project,
|
|
66
|
+
"expand_created_by": expand_created_by,
|
|
67
|
+
"annotation": annotation,
|
|
68
|
+
},
|
|
64
69
|
request_options=request_options,
|
|
65
70
|
)
|
|
66
71
|
try:
|
|
67
72
|
if 200 <= _response.status_code < 300:
|
|
68
|
-
return
|
|
73
|
+
return typing.cast(
|
|
74
|
+
typing.List[Comment],
|
|
75
|
+
parse_obj_as(
|
|
76
|
+
type_=typing.List[Comment], # type: ignore
|
|
77
|
+
object_=_response.json(),
|
|
78
|
+
),
|
|
79
|
+
)
|
|
69
80
|
_response_json = _response.json()
|
|
70
81
|
except JSONDecodeError:
|
|
71
82
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -81,6 +92,7 @@ class CommentsClient:
|
|
|
81
92
|
request_options: typing.Optional[RequestOptions] = None,
|
|
82
93
|
) -> Comment:
|
|
83
94
|
"""
|
|
95
|
+
|
|
84
96
|
Create a new comment.
|
|
85
97
|
|
|
86
98
|
Parameters
|
|
@@ -103,7 +115,7 @@ class CommentsClient:
|
|
|
103
115
|
|
|
104
116
|
Examples
|
|
105
117
|
--------
|
|
106
|
-
from label_studio_sdk
|
|
118
|
+
from label_studio_sdk import LabelStudio
|
|
107
119
|
|
|
108
120
|
client = LabelStudio(
|
|
109
121
|
api_key="YOUR_API_KEY",
|
|
@@ -113,13 +125,27 @@ class CommentsClient:
|
|
|
113
125
|
_response = self._client_wrapper.httpx_client.request(
|
|
114
126
|
"api/comments/",
|
|
115
127
|
method="POST",
|
|
116
|
-
json={
|
|
128
|
+
json={
|
|
129
|
+
"annotation": annotation,
|
|
130
|
+
"project": project,
|
|
131
|
+
"text": text,
|
|
132
|
+
"is_resolved": is_resolved,
|
|
133
|
+
},
|
|
134
|
+
headers={
|
|
135
|
+
"content-type": "application/json",
|
|
136
|
+
},
|
|
117
137
|
request_options=request_options,
|
|
118
138
|
omit=OMIT,
|
|
119
139
|
)
|
|
120
140
|
try:
|
|
121
141
|
if 200 <= _response.status_code < 300:
|
|
122
|
-
return
|
|
142
|
+
return typing.cast(
|
|
143
|
+
Comment,
|
|
144
|
+
parse_obj_as(
|
|
145
|
+
type_=Comment, # type: ignore
|
|
146
|
+
object_=_response.json(),
|
|
147
|
+
),
|
|
148
|
+
)
|
|
123
149
|
_response_json = _response.json()
|
|
124
150
|
except JSONDecodeError:
|
|
125
151
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -127,6 +153,7 @@ class CommentsClient:
|
|
|
127
153
|
|
|
128
154
|
def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Comment:
|
|
129
155
|
"""
|
|
156
|
+
|
|
130
157
|
Get a specific comment.
|
|
131
158
|
|
|
132
159
|
Parameters
|
|
@@ -144,7 +171,7 @@ class CommentsClient:
|
|
|
144
171
|
|
|
145
172
|
Examples
|
|
146
173
|
--------
|
|
147
|
-
from label_studio_sdk
|
|
174
|
+
from label_studio_sdk import LabelStudio
|
|
148
175
|
|
|
149
176
|
client = LabelStudio(
|
|
150
177
|
api_key="YOUR_API_KEY",
|
|
@@ -154,11 +181,19 @@ class CommentsClient:
|
|
|
154
181
|
)
|
|
155
182
|
"""
|
|
156
183
|
_response = self._client_wrapper.httpx_client.request(
|
|
157
|
-
f"api/comments/{jsonable_encoder(id)}",
|
|
184
|
+
f"api/comments/{jsonable_encoder(id)}",
|
|
185
|
+
method="GET",
|
|
186
|
+
request_options=request_options,
|
|
158
187
|
)
|
|
159
188
|
try:
|
|
160
189
|
if 200 <= _response.status_code < 300:
|
|
161
|
-
return
|
|
190
|
+
return typing.cast(
|
|
191
|
+
Comment,
|
|
192
|
+
parse_obj_as(
|
|
193
|
+
type_=Comment, # type: ignore
|
|
194
|
+
object_=_response.json(),
|
|
195
|
+
),
|
|
196
|
+
)
|
|
162
197
|
_response_json = _response.json()
|
|
163
198
|
except JSONDecodeError:
|
|
164
199
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -166,6 +201,7 @@ class CommentsClient:
|
|
|
166
201
|
|
|
167
202
|
def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
168
203
|
"""
|
|
204
|
+
|
|
169
205
|
Delete a specific comment.
|
|
170
206
|
|
|
171
207
|
Parameters
|
|
@@ -182,7 +218,7 @@ class CommentsClient:
|
|
|
182
218
|
|
|
183
219
|
Examples
|
|
184
220
|
--------
|
|
185
|
-
from label_studio_sdk
|
|
221
|
+
from label_studio_sdk import LabelStudio
|
|
186
222
|
|
|
187
223
|
client = LabelStudio(
|
|
188
224
|
api_key="YOUR_API_KEY",
|
|
@@ -192,7 +228,9 @@ class CommentsClient:
|
|
|
192
228
|
)
|
|
193
229
|
"""
|
|
194
230
|
_response = self._client_wrapper.httpx_client.request(
|
|
195
|
-
f"api/comments/{jsonable_encoder(id)}",
|
|
231
|
+
f"api/comments/{jsonable_encoder(id)}",
|
|
232
|
+
method="DELETE",
|
|
233
|
+
request_options=request_options,
|
|
196
234
|
)
|
|
197
235
|
try:
|
|
198
236
|
if 200 <= _response.status_code < 300:
|
|
@@ -213,6 +251,7 @@ class CommentsClient:
|
|
|
213
251
|
request_options: typing.Optional[RequestOptions] = None,
|
|
214
252
|
) -> Comment:
|
|
215
253
|
"""
|
|
254
|
+
|
|
216
255
|
Update a specific comment.
|
|
217
256
|
|
|
218
257
|
Parameters
|
|
@@ -238,7 +277,7 @@ class CommentsClient:
|
|
|
238
277
|
|
|
239
278
|
Examples
|
|
240
279
|
--------
|
|
241
|
-
from label_studio_sdk
|
|
280
|
+
from label_studio_sdk import LabelStudio
|
|
242
281
|
|
|
243
282
|
client = LabelStudio(
|
|
244
283
|
api_key="YOUR_API_KEY",
|
|
@@ -250,13 +289,27 @@ class CommentsClient:
|
|
|
250
289
|
_response = self._client_wrapper.httpx_client.request(
|
|
251
290
|
f"api/comments/{jsonable_encoder(id)}",
|
|
252
291
|
method="PATCH",
|
|
253
|
-
json={
|
|
292
|
+
json={
|
|
293
|
+
"annotation": annotation,
|
|
294
|
+
"project": project,
|
|
295
|
+
"text": text,
|
|
296
|
+
"is_resolved": is_resolved,
|
|
297
|
+
},
|
|
298
|
+
headers={
|
|
299
|
+
"content-type": "application/json",
|
|
300
|
+
},
|
|
254
301
|
request_options=request_options,
|
|
255
302
|
omit=OMIT,
|
|
256
303
|
)
|
|
257
304
|
try:
|
|
258
305
|
if 200 <= _response.status_code < 300:
|
|
259
|
-
return
|
|
306
|
+
return typing.cast(
|
|
307
|
+
Comment,
|
|
308
|
+
parse_obj_as(
|
|
309
|
+
type_=Comment, # type: ignore
|
|
310
|
+
object_=_response.json(),
|
|
311
|
+
),
|
|
312
|
+
)
|
|
260
313
|
_response_json = _response.json()
|
|
261
314
|
except JSONDecodeError:
|
|
262
315
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -276,6 +329,7 @@ class AsyncCommentsClient:
|
|
|
276
329
|
request_options: typing.Optional[RequestOptions] = None,
|
|
277
330
|
) -> typing.List[Comment]:
|
|
278
331
|
"""
|
|
332
|
+
|
|
279
333
|
Get a list of comments for a specific project.
|
|
280
334
|
|
|
281
335
|
Parameters
|
|
@@ -299,22 +353,40 @@ class AsyncCommentsClient:
|
|
|
299
353
|
|
|
300
354
|
Examples
|
|
301
355
|
--------
|
|
302
|
-
|
|
356
|
+
import asyncio
|
|
357
|
+
|
|
358
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
303
359
|
|
|
304
360
|
client = AsyncLabelStudio(
|
|
305
361
|
api_key="YOUR_API_KEY",
|
|
306
362
|
)
|
|
307
|
-
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
async def main() -> None:
|
|
366
|
+
await client.comments.list()
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
asyncio.run(main())
|
|
308
370
|
"""
|
|
309
371
|
_response = await self._client_wrapper.httpx_client.request(
|
|
310
372
|
"api/comments/",
|
|
311
373
|
method="GET",
|
|
312
|
-
params={
|
|
374
|
+
params={
|
|
375
|
+
"project": project,
|
|
376
|
+
"expand_created_by": expand_created_by,
|
|
377
|
+
"annotation": annotation,
|
|
378
|
+
},
|
|
313
379
|
request_options=request_options,
|
|
314
380
|
)
|
|
315
381
|
try:
|
|
316
382
|
if 200 <= _response.status_code < 300:
|
|
317
|
-
return
|
|
383
|
+
return typing.cast(
|
|
384
|
+
typing.List[Comment],
|
|
385
|
+
parse_obj_as(
|
|
386
|
+
type_=typing.List[Comment], # type: ignore
|
|
387
|
+
object_=_response.json(),
|
|
388
|
+
),
|
|
389
|
+
)
|
|
318
390
|
_response_json = _response.json()
|
|
319
391
|
except JSONDecodeError:
|
|
320
392
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -330,6 +402,7 @@ class AsyncCommentsClient:
|
|
|
330
402
|
request_options: typing.Optional[RequestOptions] = None,
|
|
331
403
|
) -> Comment:
|
|
332
404
|
"""
|
|
405
|
+
|
|
333
406
|
Create a new comment.
|
|
334
407
|
|
|
335
408
|
Parameters
|
|
@@ -352,23 +425,45 @@ class AsyncCommentsClient:
|
|
|
352
425
|
|
|
353
426
|
Examples
|
|
354
427
|
--------
|
|
355
|
-
|
|
428
|
+
import asyncio
|
|
429
|
+
|
|
430
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
356
431
|
|
|
357
432
|
client = AsyncLabelStudio(
|
|
358
433
|
api_key="YOUR_API_KEY",
|
|
359
434
|
)
|
|
360
|
-
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
async def main() -> None:
|
|
438
|
+
await client.comments.create()
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
asyncio.run(main())
|
|
361
442
|
"""
|
|
362
443
|
_response = await self._client_wrapper.httpx_client.request(
|
|
363
444
|
"api/comments/",
|
|
364
445
|
method="POST",
|
|
365
|
-
json={
|
|
446
|
+
json={
|
|
447
|
+
"annotation": annotation,
|
|
448
|
+
"project": project,
|
|
449
|
+
"text": text,
|
|
450
|
+
"is_resolved": is_resolved,
|
|
451
|
+
},
|
|
452
|
+
headers={
|
|
453
|
+
"content-type": "application/json",
|
|
454
|
+
},
|
|
366
455
|
request_options=request_options,
|
|
367
456
|
omit=OMIT,
|
|
368
457
|
)
|
|
369
458
|
try:
|
|
370
459
|
if 200 <= _response.status_code < 300:
|
|
371
|
-
return
|
|
460
|
+
return typing.cast(
|
|
461
|
+
Comment,
|
|
462
|
+
parse_obj_as(
|
|
463
|
+
type_=Comment, # type: ignore
|
|
464
|
+
object_=_response.json(),
|
|
465
|
+
),
|
|
466
|
+
)
|
|
372
467
|
_response_json = _response.json()
|
|
373
468
|
except JSONDecodeError:
|
|
374
469
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -376,6 +471,7 @@ class AsyncCommentsClient:
|
|
|
376
471
|
|
|
377
472
|
async def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Comment:
|
|
378
473
|
"""
|
|
474
|
+
|
|
379
475
|
Get a specific comment.
|
|
380
476
|
|
|
381
477
|
Parameters
|
|
@@ -393,21 +489,37 @@ class AsyncCommentsClient:
|
|
|
393
489
|
|
|
394
490
|
Examples
|
|
395
491
|
--------
|
|
396
|
-
|
|
492
|
+
import asyncio
|
|
493
|
+
|
|
494
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
397
495
|
|
|
398
496
|
client = AsyncLabelStudio(
|
|
399
497
|
api_key="YOUR_API_KEY",
|
|
400
498
|
)
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
)
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
async def main() -> None:
|
|
502
|
+
await client.comments.get(
|
|
503
|
+
id=1,
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
asyncio.run(main())
|
|
404
508
|
"""
|
|
405
509
|
_response = await self._client_wrapper.httpx_client.request(
|
|
406
|
-
f"api/comments/{jsonable_encoder(id)}",
|
|
510
|
+
f"api/comments/{jsonable_encoder(id)}",
|
|
511
|
+
method="GET",
|
|
512
|
+
request_options=request_options,
|
|
407
513
|
)
|
|
408
514
|
try:
|
|
409
515
|
if 200 <= _response.status_code < 300:
|
|
410
|
-
return
|
|
516
|
+
return typing.cast(
|
|
517
|
+
Comment,
|
|
518
|
+
parse_obj_as(
|
|
519
|
+
type_=Comment, # type: ignore
|
|
520
|
+
object_=_response.json(),
|
|
521
|
+
),
|
|
522
|
+
)
|
|
411
523
|
_response_json = _response.json()
|
|
412
524
|
except JSONDecodeError:
|
|
413
525
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -415,6 +527,7 @@ class AsyncCommentsClient:
|
|
|
415
527
|
|
|
416
528
|
async def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
417
529
|
"""
|
|
530
|
+
|
|
418
531
|
Delete a specific comment.
|
|
419
532
|
|
|
420
533
|
Parameters
|
|
@@ -431,17 +544,27 @@ class AsyncCommentsClient:
|
|
|
431
544
|
|
|
432
545
|
Examples
|
|
433
546
|
--------
|
|
434
|
-
|
|
547
|
+
import asyncio
|
|
548
|
+
|
|
549
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
435
550
|
|
|
436
551
|
client = AsyncLabelStudio(
|
|
437
552
|
api_key="YOUR_API_KEY",
|
|
438
553
|
)
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
)
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
async def main() -> None:
|
|
557
|
+
await client.comments.delete(
|
|
558
|
+
id=1,
|
|
559
|
+
)
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
asyncio.run(main())
|
|
442
563
|
"""
|
|
443
564
|
_response = await self._client_wrapper.httpx_client.request(
|
|
444
|
-
f"api/comments/{jsonable_encoder(id)}",
|
|
565
|
+
f"api/comments/{jsonable_encoder(id)}",
|
|
566
|
+
method="DELETE",
|
|
567
|
+
request_options=request_options,
|
|
445
568
|
)
|
|
446
569
|
try:
|
|
447
570
|
if 200 <= _response.status_code < 300:
|
|
@@ -462,6 +585,7 @@ class AsyncCommentsClient:
|
|
|
462
585
|
request_options: typing.Optional[RequestOptions] = None,
|
|
463
586
|
) -> Comment:
|
|
464
587
|
"""
|
|
588
|
+
|
|
465
589
|
Update a specific comment.
|
|
466
590
|
|
|
467
591
|
Parameters
|
|
@@ -487,25 +611,47 @@ class AsyncCommentsClient:
|
|
|
487
611
|
|
|
488
612
|
Examples
|
|
489
613
|
--------
|
|
490
|
-
|
|
614
|
+
import asyncio
|
|
615
|
+
|
|
616
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
491
617
|
|
|
492
618
|
client = AsyncLabelStudio(
|
|
493
619
|
api_key="YOUR_API_KEY",
|
|
494
620
|
)
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
)
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
async def main() -> None:
|
|
624
|
+
await client.comments.update(
|
|
625
|
+
id=1,
|
|
626
|
+
)
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
asyncio.run(main())
|
|
498
630
|
"""
|
|
499
631
|
_response = await self._client_wrapper.httpx_client.request(
|
|
500
632
|
f"api/comments/{jsonable_encoder(id)}",
|
|
501
633
|
method="PATCH",
|
|
502
|
-
json={
|
|
634
|
+
json={
|
|
635
|
+
"annotation": annotation,
|
|
636
|
+
"project": project,
|
|
637
|
+
"text": text,
|
|
638
|
+
"is_resolved": is_resolved,
|
|
639
|
+
},
|
|
640
|
+
headers={
|
|
641
|
+
"content-type": "application/json",
|
|
642
|
+
},
|
|
503
643
|
request_options=request_options,
|
|
504
644
|
omit=OMIT,
|
|
505
645
|
)
|
|
506
646
|
try:
|
|
507
647
|
if 200 <= _response.status_code < 300:
|
|
508
|
-
return
|
|
648
|
+
return typing.cast(
|
|
649
|
+
Comment,
|
|
650
|
+
parse_obj_as(
|
|
651
|
+
type_=Comment, # type: ignore
|
|
652
|
+
object_=_response.json(),
|
|
653
|
+
),
|
|
654
|
+
)
|
|
509
655
|
_response_json = _response.json()
|
|
510
656
|
except JSONDecodeError:
|
|
511
657
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|