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,15 +1,15 @@
|
|
|
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.members_list_response_item import MembersListResponseItem
|
|
7
|
+
from ...core.jsonable_encoder import jsonable_encoder
|
|
8
|
+
from ...core.pydantic_utilities import parse_obj_as
|
|
4
9
|
from json.decoder import JSONDecodeError
|
|
5
|
-
|
|
6
10
|
from ...core.api_error import ApiError
|
|
7
|
-
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
-
from ...core.jsonable_encoder import jsonable_encoder
|
|
9
|
-
from ...core.pydantic_utilities import pydantic_v1
|
|
10
|
-
from ...core.request_options import RequestOptions
|
|
11
11
|
from .types.members_create_response import MembersCreateResponse
|
|
12
|
-
from .
|
|
12
|
+
from ...core.client_wrapper import AsyncClientWrapper
|
|
13
13
|
|
|
14
14
|
# this is used as the default value for optional parameters
|
|
15
15
|
OMIT = typing.cast(typing.Any, ...)
|
|
@@ -23,6 +23,7 @@ class MembersClient:
|
|
|
23
23
|
self, id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
24
24
|
) -> typing.List[MembersListResponseItem]:
|
|
25
25
|
"""
|
|
26
|
+
|
|
26
27
|
List all workspace memberships for a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
27
28
|
|
|
28
29
|
Parameters
|
|
@@ -40,7 +41,7 @@ class MembersClient:
|
|
|
40
41
|
|
|
41
42
|
Examples
|
|
42
43
|
--------
|
|
43
|
-
from label_studio_sdk
|
|
44
|
+
from label_studio_sdk import LabelStudio
|
|
44
45
|
|
|
45
46
|
client = LabelStudio(
|
|
46
47
|
api_key="YOUR_API_KEY",
|
|
@@ -50,11 +51,19 @@ class MembersClient:
|
|
|
50
51
|
)
|
|
51
52
|
"""
|
|
52
53
|
_response = self._client_wrapper.httpx_client.request(
|
|
53
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
54
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
55
|
+
method="GET",
|
|
56
|
+
request_options=request_options,
|
|
54
57
|
)
|
|
55
58
|
try:
|
|
56
59
|
if 200 <= _response.status_code < 300:
|
|
57
|
-
return
|
|
60
|
+
return typing.cast(
|
|
61
|
+
typing.List[MembersListResponseItem],
|
|
62
|
+
parse_obj_as(
|
|
63
|
+
type_=typing.List[MembersListResponseItem], # type: ignore
|
|
64
|
+
object_=_response.json(),
|
|
65
|
+
),
|
|
66
|
+
)
|
|
58
67
|
_response_json = _response.json()
|
|
59
68
|
except JSONDecodeError:
|
|
60
69
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -64,6 +73,7 @@ class MembersClient:
|
|
|
64
73
|
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
65
74
|
) -> MembersCreateResponse:
|
|
66
75
|
"""
|
|
76
|
+
|
|
67
77
|
Create a new workspace membership. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
68
78
|
|
|
69
79
|
Parameters
|
|
@@ -84,7 +94,7 @@ class MembersClient:
|
|
|
84
94
|
|
|
85
95
|
Examples
|
|
86
96
|
--------
|
|
87
|
-
from label_studio_sdk
|
|
97
|
+
from label_studio_sdk import LabelStudio
|
|
88
98
|
|
|
89
99
|
client = LabelStudio(
|
|
90
100
|
api_key="YOUR_API_KEY",
|
|
@@ -96,13 +106,24 @@ class MembersClient:
|
|
|
96
106
|
_response = self._client_wrapper.httpx_client.request(
|
|
97
107
|
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
98
108
|
method="POST",
|
|
99
|
-
json={
|
|
109
|
+
json={
|
|
110
|
+
"user": user,
|
|
111
|
+
},
|
|
112
|
+
headers={
|
|
113
|
+
"content-type": "application/json",
|
|
114
|
+
},
|
|
100
115
|
request_options=request_options,
|
|
101
116
|
omit=OMIT,
|
|
102
117
|
)
|
|
103
118
|
try:
|
|
104
119
|
if 200 <= _response.status_code < 300:
|
|
105
|
-
return
|
|
120
|
+
return typing.cast(
|
|
121
|
+
MembersCreateResponse,
|
|
122
|
+
parse_obj_as(
|
|
123
|
+
type_=MembersCreateResponse, # type: ignore
|
|
124
|
+
object_=_response.json(),
|
|
125
|
+
),
|
|
126
|
+
)
|
|
106
127
|
_response_json = _response.json()
|
|
107
128
|
except JSONDecodeError:
|
|
108
129
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -112,6 +133,7 @@ class MembersClient:
|
|
|
112
133
|
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
113
134
|
) -> None:
|
|
114
135
|
"""
|
|
136
|
+
|
|
115
137
|
Delete a specific workspace membership. You will need to provide the workspace ID and the user ID. You can find this using [List workspace memberships](list).
|
|
116
138
|
|
|
117
139
|
Parameters
|
|
@@ -131,7 +153,7 @@ class MembersClient:
|
|
|
131
153
|
|
|
132
154
|
Examples
|
|
133
155
|
--------
|
|
134
|
-
from label_studio_sdk
|
|
156
|
+
from label_studio_sdk import LabelStudio
|
|
135
157
|
|
|
136
158
|
client = LabelStudio(
|
|
137
159
|
api_key="YOUR_API_KEY",
|
|
@@ -143,7 +165,12 @@ class MembersClient:
|
|
|
143
165
|
_response = self._client_wrapper.httpx_client.request(
|
|
144
166
|
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
145
167
|
method="DELETE",
|
|
146
|
-
json={
|
|
168
|
+
json={
|
|
169
|
+
"user": user,
|
|
170
|
+
},
|
|
171
|
+
headers={
|
|
172
|
+
"content-type": "application/json",
|
|
173
|
+
},
|
|
147
174
|
request_options=request_options,
|
|
148
175
|
omit=OMIT,
|
|
149
176
|
)
|
|
@@ -164,6 +191,7 @@ class AsyncMembersClient:
|
|
|
164
191
|
self, id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
165
192
|
) -> typing.List[MembersListResponseItem]:
|
|
166
193
|
"""
|
|
194
|
+
|
|
167
195
|
List all workspace memberships for a specific workspace. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
168
196
|
|
|
169
197
|
Parameters
|
|
@@ -181,21 +209,37 @@ class AsyncMembersClient:
|
|
|
181
209
|
|
|
182
210
|
Examples
|
|
183
211
|
--------
|
|
184
|
-
|
|
212
|
+
import asyncio
|
|
213
|
+
|
|
214
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
185
215
|
|
|
186
216
|
client = AsyncLabelStudio(
|
|
187
217
|
api_key="YOUR_API_KEY",
|
|
188
218
|
)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
async def main() -> None:
|
|
222
|
+
await client.workspaces.members.list(
|
|
223
|
+
id=1,
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
asyncio.run(main())
|
|
192
228
|
"""
|
|
193
229
|
_response = await self._client_wrapper.httpx_client.request(
|
|
194
|
-
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
230
|
+
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
231
|
+
method="GET",
|
|
232
|
+
request_options=request_options,
|
|
195
233
|
)
|
|
196
234
|
try:
|
|
197
235
|
if 200 <= _response.status_code < 300:
|
|
198
|
-
return
|
|
236
|
+
return typing.cast(
|
|
237
|
+
typing.List[MembersListResponseItem],
|
|
238
|
+
parse_obj_as(
|
|
239
|
+
type_=typing.List[MembersListResponseItem], # type: ignore
|
|
240
|
+
object_=_response.json(),
|
|
241
|
+
),
|
|
242
|
+
)
|
|
199
243
|
_response_json = _response.json()
|
|
200
244
|
except JSONDecodeError:
|
|
201
245
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -205,6 +249,7 @@ class AsyncMembersClient:
|
|
|
205
249
|
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
206
250
|
) -> MembersCreateResponse:
|
|
207
251
|
"""
|
|
252
|
+
|
|
208
253
|
Create a new workspace membership. You will need to provide the workspace ID. You can find this using [List workspaces](list).
|
|
209
254
|
|
|
210
255
|
Parameters
|
|
@@ -225,25 +270,44 @@ class AsyncMembersClient:
|
|
|
225
270
|
|
|
226
271
|
Examples
|
|
227
272
|
--------
|
|
228
|
-
|
|
273
|
+
import asyncio
|
|
274
|
+
|
|
275
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
229
276
|
|
|
230
277
|
client = AsyncLabelStudio(
|
|
231
278
|
api_key="YOUR_API_KEY",
|
|
232
279
|
)
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
async def main() -> None:
|
|
283
|
+
await client.workspaces.members.create(
|
|
284
|
+
id=1,
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
asyncio.run(main())
|
|
236
289
|
"""
|
|
237
290
|
_response = await self._client_wrapper.httpx_client.request(
|
|
238
291
|
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
239
292
|
method="POST",
|
|
240
|
-
json={
|
|
293
|
+
json={
|
|
294
|
+
"user": user,
|
|
295
|
+
},
|
|
296
|
+
headers={
|
|
297
|
+
"content-type": "application/json",
|
|
298
|
+
},
|
|
241
299
|
request_options=request_options,
|
|
242
300
|
omit=OMIT,
|
|
243
301
|
)
|
|
244
302
|
try:
|
|
245
303
|
if 200 <= _response.status_code < 300:
|
|
246
|
-
return
|
|
304
|
+
return typing.cast(
|
|
305
|
+
MembersCreateResponse,
|
|
306
|
+
parse_obj_as(
|
|
307
|
+
type_=MembersCreateResponse, # type: ignore
|
|
308
|
+
object_=_response.json(),
|
|
309
|
+
),
|
|
310
|
+
)
|
|
247
311
|
_response_json = _response.json()
|
|
248
312
|
except JSONDecodeError:
|
|
249
313
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -253,6 +317,7 @@ class AsyncMembersClient:
|
|
|
253
317
|
self, id: int, *, user: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None
|
|
254
318
|
) -> None:
|
|
255
319
|
"""
|
|
320
|
+
|
|
256
321
|
Delete a specific workspace membership. You will need to provide the workspace ID and the user ID. You can find this using [List workspace memberships](list).
|
|
257
322
|
|
|
258
323
|
Parameters
|
|
@@ -272,19 +337,32 @@ class AsyncMembersClient:
|
|
|
272
337
|
|
|
273
338
|
Examples
|
|
274
339
|
--------
|
|
275
|
-
|
|
340
|
+
import asyncio
|
|
341
|
+
|
|
342
|
+
from label_studio_sdk import AsyncLabelStudio
|
|
276
343
|
|
|
277
344
|
client = AsyncLabelStudio(
|
|
278
345
|
api_key="YOUR_API_KEY",
|
|
279
346
|
)
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
)
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
async def main() -> None:
|
|
350
|
+
await client.workspaces.members.delete(
|
|
351
|
+
id=1,
|
|
352
|
+
)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
asyncio.run(main())
|
|
283
356
|
"""
|
|
284
357
|
_response = await self._client_wrapper.httpx_client.request(
|
|
285
358
|
f"api/workspaces/{jsonable_encoder(id)}/memberships",
|
|
286
359
|
method="DELETE",
|
|
287
|
-
json={
|
|
360
|
+
json={
|
|
361
|
+
"user": user,
|
|
362
|
+
},
|
|
363
|
+
headers={
|
|
364
|
+
"content-type": "application/json",
|
|
365
|
+
},
|
|
288
366
|
request_options=request_options,
|
|
289
367
|
omit=OMIT,
|
|
290
368
|
)
|
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
from ....core.pydantic_utilities import UniversalBaseModel
|
|
4
4
|
import typing
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
7
|
|
|
6
|
-
from ....core.datetime_utils import serialize_datetime
|
|
7
|
-
from ....core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
user: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
9
|
+
class MembersCreateResponse(UniversalBaseModel):
|
|
10
|
+
user: typing.Optional[int] = pydantic.Field(default=None)
|
|
12
11
|
"""
|
|
13
12
|
User ID of the workspace member
|
|
14
13
|
"""
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
21
|
-
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
22
|
-
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
23
|
-
|
|
24
|
-
return deep_union_pydantic_dicts(
|
|
25
|
-
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
26
|
-
)
|
|
15
|
+
if IS_PYDANTIC_V2:
|
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
17
|
+
else:
|
|
27
18
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
json_encoders = {dt.datetime: serialize_datetime}
|
|
19
|
+
class Config:
|
|
20
|
+
frozen = True
|
|
21
|
+
smart_union = True
|
|
22
|
+
extra = pydantic.Extra.allow
|
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
from ....core.pydantic_utilities import UniversalBaseModel
|
|
4
4
|
import typing
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
7
|
|
|
6
|
-
from ....core.datetime_utils import serialize_datetime
|
|
7
|
-
from ....core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
user: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
|
|
9
|
+
class MembersListResponseItem(UniversalBaseModel):
|
|
10
|
+
user: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
|
|
12
11
|
"""
|
|
13
12
|
User ID of the workspace member
|
|
14
13
|
"""
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
21
|
-
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
22
|
-
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
23
|
-
|
|
24
|
-
return deep_union_pydantic_dicts(
|
|
25
|
-
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
26
|
-
)
|
|
15
|
+
if IS_PYDANTIC_V2:
|
|
16
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
17
|
+
else:
|
|
27
18
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
json_encoders = {dt.datetime: serialize_datetime}
|
|
19
|
+
class Config:
|
|
20
|
+
frozen = True
|
|
21
|
+
smart_union = True
|
|
22
|
+
extra = pydantic.Extra.allow
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: label-studio-sdk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.10
|
|
4
4
|
Summary:
|
|
5
|
-
Requires-Python: >=3.
|
|
5
|
+
Requires-Python: >=3.9,<4
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
7
7
|
Classifier: Operating System :: MacOS
|
|
8
8
|
Classifier: Operating System :: Microsoft :: Windows
|
|
@@ -11,29 +11,33 @@ Classifier: Operating System :: POSIX
|
|
|
11
11
|
Classifier: Operating System :: POSIX :: Linux
|
|
12
12
|
Classifier: Programming Language :: Python
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
21
|
Classifier: Typing :: Typed
|
|
22
22
|
Requires-Dist: Pillow (>=10.0.1)
|
|
23
23
|
Requires-Dist: appdirs (>=1.4.3)
|
|
24
|
+
Requires-Dist: datamodel-code-generator (==0.26.1)
|
|
24
25
|
Requires-Dist: httpx (>=0.21.2)
|
|
25
26
|
Requires-Dist: ijson (>=3.2.3)
|
|
27
|
+
Requires-Dist: jsf (>=0.11.2,<0.12.0)
|
|
26
28
|
Requires-Dist: jsonschema (>=4.23.0)
|
|
27
29
|
Requires-Dist: lxml (>=4.2.5)
|
|
28
30
|
Requires-Dist: nltk (>=3.9.1,<4.0.0)
|
|
29
|
-
Requires-Dist: numpy (
|
|
31
|
+
Requires-Dist: numpy (>=1.26.4,<2.0.0)
|
|
30
32
|
Requires-Dist: pandas (>=0.24.0)
|
|
31
33
|
Requires-Dist: pydantic (>=1.9.2)
|
|
34
|
+
Requires-Dist: pydantic-core (>=2.18.2,<3.0.0)
|
|
32
35
|
Requires-Dist: requests (>=2.22.0)
|
|
33
36
|
Requires-Dist: requests-mock (==1.12.1)
|
|
34
37
|
Requires-Dist: typing_extensions (>=4.0.0)
|
|
35
38
|
Requires-Dist: ujson (>=5.8.0)
|
|
36
39
|
Requires-Dist: xmljson (==0.2.1)
|
|
40
|
+
Project-URL: Repository, https://github.com/HumanSignal/label-studio-sdk
|
|
37
41
|
Description-Content-Type: text/markdown
|
|
38
42
|
|
|
39
43
|
# Label Studio Python Library
|