label-studio-sdk 2.0.8__py3-none-any.whl → 2.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 +36 -16
- label_studio_sdk/base_client.py +0 -4
- label_studio_sdk/core/client_wrapper.py +1 -1
- label_studio_sdk/export_storage/__init__.py +13 -2
- label_studio_sdk/export_storage/client.py +4 -0
- label_studio_sdk/export_storage/databricks/client.py +1406 -0
- label_studio_sdk/import_storage/__init__.py +13 -2
- label_studio_sdk/import_storage/client.py +4 -0
- label_studio_sdk/import_storage/databricks/__init__.py +2 -0
- label_studio_sdk/import_storage/databricks/client.py +1466 -0
- label_studio_sdk/import_storage/gcswif/client.py +30 -0
- label_studio_sdk/organizations/invites/client.py +31 -6
- label_studio_sdk/projects/__init__.py +0 -2
- label_studio_sdk/projects/client.py +186 -32
- label_studio_sdk/projects/client_ext.py +20 -8
- label_studio_sdk/projects/types/__init__.py +0 -2
- label_studio_sdk/projects/types/lse_project_create_request_sampling.py +2 -2
- label_studio_sdk/projects/types/patched_lse_project_update_request_sampling.py +2 -2
- label_studio_sdk/prompts/client.py +340 -1
- label_studio_sdk/prompts/runs/client.py +127 -0
- label_studio_sdk/tasks/client.py +7 -2
- label_studio_sdk/types/__init__.py +36 -12
- label_studio_sdk/types/all_roles_project_list.py +10 -10
- label_studio_sdk/types/all_roles_project_list_sampling.py +2 -2
- label_studio_sdk/types/azure_blob_import_storage.py +5 -0
- label_studio_sdk/types/cancel_model_run_response.py +19 -0
- label_studio_sdk/types/configurable_permission_option.py +2 -2
- label_studio_sdk/types/databricks_export_storage.py +113 -0
- label_studio_sdk/types/databricks_export_storage_request.py +107 -0
- label_studio_sdk/types/databricks_import_storage.py +123 -0
- label_studio_sdk/types/databricks_import_storage_request.py +117 -0
- label_studio_sdk/types/default165enum.py +5 -0
- label_studio_sdk/types/gcs_import_storage.py +5 -0
- label_studio_sdk/types/gcswif_import_storage.py +5 -0
- label_studio_sdk/types/gcswif_import_storage_request.py +5 -0
- label_studio_sdk/types/local_files_import_storage.py +5 -0
- label_studio_sdk/types/lse_project_counts.py +8 -8
- label_studio_sdk/types/lse_project_create_sampling.py +2 -2
- label_studio_sdk/types/{project.py → lse_project_response.py} +44 -31
- label_studio_sdk/types/lse_project_response_sampling.py +7 -0
- label_studio_sdk/types/{project_skip_queue.py → lse_project_response_skip_queue.py} +1 -1
- label_studio_sdk/types/lse_project_sampling.py +2 -2
- label_studio_sdk/types/lse_project_update_sampling.py +2 -2
- label_studio_sdk/types/lse_task.py +6 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers.py +6 -0
- label_studio_sdk/types/lse_user.py +1 -0
- label_studio_sdk/types/lse_user_api.py +1 -0
- label_studio_sdk/types/options165enum.py +5 -0
- label_studio_sdk/types/organization_permission.py +7 -4
- label_studio_sdk/types/paginated_project_member.py +1 -0
- label_studio_sdk/types/paginated_project_subset_tasks_response_list.py +23 -0
- label_studio_sdk/types/project_subset_item.py +21 -0
- label_studio_sdk/types/project_subset_task_item.py +24 -0
- label_studio_sdk/types/project_subset_tasks_response.py +27 -0
- label_studio_sdk/types/review_settings.py +14 -0
- label_studio_sdk/types/review_settings_request.py +14 -0
- label_studio_sdk/types/review_settings_request_sampling.py +8 -0
- label_studio_sdk/types/review_settings_sampling.py +8 -0
- label_studio_sdk/types/review_settings_sampling_enum.py +5 -0
- label_studio_sdk/types/{sampling_enum.py → sampling_de5enum.py} +1 -1
- label_studio_sdk/types/who_am_i_user.py +1 -0
- label_studio_sdk/workspaces/client.py +60 -0
- label_studio_sdk/workspaces/members/bulk/client.py +24 -0
- label_studio_sdk/workspaces/members/client.py +36 -0
- label_studio_sdk/workspaces/members/paginated/client.py +12 -0
- {label_studio_sdk-2.0.8.dist-info → label_studio_sdk-2.0.10.dist-info}/METADATA +41 -90
- {label_studio_sdk-2.0.8.dist-info → label_studio_sdk-2.0.10.dist-info}/RECORD +70 -57
- label_studio_sdk/blueprints/client.py +0 -272
- label_studio_sdk/projects/types/projects_list_request_filter.py +0 -5
- label_studio_sdk/types/blueprint.py +0 -41
- label_studio_sdk/types/configurable_permission_option_default.py +0 -7
- label_studio_sdk/types/project_sampling.py +0 -7
- /label_studio_sdk/{blueprints → export_storage/databricks}/__init__.py +0 -0
- {label_studio_sdk-2.0.8.dist-info → label_studio_sdk-2.0.10.dist-info}/LICENSE +0 -0
- {label_studio_sdk-2.0.8.dist-info → label_studio_sdk-2.0.10.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import pydantic
|
|
5
|
+
import typing
|
|
6
|
+
import datetime as dt
|
|
7
|
+
import typing_extensions
|
|
8
|
+
from ..core.serialization import FieldMetadata
|
|
9
|
+
from .status_c5a_enum import StatusC5AEnum
|
|
10
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DatabricksImportStorageRequest(UncheckedBaseModel):
|
|
14
|
+
catalog: str = pydantic.Field()
|
|
15
|
+
"""
|
|
16
|
+
UC catalog name
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
20
|
+
"""
|
|
21
|
+
Cloud storage description
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
host: str = pydantic.Field()
|
|
25
|
+
"""
|
|
26
|
+
Databricks workspace base URL (https://...)
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
last_sync: typing.Optional[dt.datetime] = pydantic.Field(default=None)
|
|
30
|
+
"""
|
|
31
|
+
Last sync finished time
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
last_sync_count: typing.Optional[int] = pydantic.Field(default=None)
|
|
35
|
+
"""
|
|
36
|
+
Count of tasks synced last time
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
last_sync_job: typing.Optional[str] = pydantic.Field(default=None)
|
|
40
|
+
"""
|
|
41
|
+
Last sync job ID
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
meta: typing.Optional[typing.Optional[typing.Any]] = None
|
|
45
|
+
prefix: typing.Optional[str] = pydantic.Field(default=None)
|
|
46
|
+
"""
|
|
47
|
+
Path under the volume
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
presign: typing.Optional[bool] = pydantic.Field(default=None)
|
|
51
|
+
"""
|
|
52
|
+
Presign not supported; always proxied
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
presign_ttl: typing.Optional[int] = pydantic.Field(default=None)
|
|
56
|
+
"""
|
|
57
|
+
Unused for Databricks; kept for compatibility
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
project: int = pydantic.Field()
|
|
61
|
+
"""
|
|
62
|
+
A unique integer value identifying this project.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
recursive_scan: typing.Optional[bool] = pydantic.Field(default=None)
|
|
66
|
+
"""
|
|
67
|
+
Perform recursive scan
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
regex_filter: typing.Optional[str] = pydantic.Field(default=None)
|
|
71
|
+
"""
|
|
72
|
+
Regex for filtering objects
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
request_timeout_s: typing.Optional[int] = None
|
|
76
|
+
schema_: typing_extensions.Annotated[str, FieldMetadata(alias="schema")] = pydantic.Field()
|
|
77
|
+
"""
|
|
78
|
+
UC schema name
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
status: typing.Optional[StatusC5AEnum] = None
|
|
82
|
+
stream_chunk_bytes: typing.Optional[int] = None
|
|
83
|
+
synchronizable: typing.Optional[bool] = None
|
|
84
|
+
title: typing.Optional[str] = pydantic.Field(default=None)
|
|
85
|
+
"""
|
|
86
|
+
Cloud storage title
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
token: typing.Optional[str] = None
|
|
90
|
+
traceback: typing.Optional[str] = pydantic.Field(default=None)
|
|
91
|
+
"""
|
|
92
|
+
Traceback report for the last failed sync
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
use_blob_urls: typing.Optional[bool] = pydantic.Field(default=None)
|
|
96
|
+
"""
|
|
97
|
+
Generate blob URLs in tasks
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
verify_tls: typing.Optional[bool] = pydantic.Field(default=None)
|
|
101
|
+
"""
|
|
102
|
+
Verify TLS certificates
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
volume: str = pydantic.Field()
|
|
106
|
+
"""
|
|
107
|
+
UC volume name
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
if IS_PYDANTIC_V2:
|
|
111
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
112
|
+
else:
|
|
113
|
+
|
|
114
|
+
class Config:
|
|
115
|
+
frozen = True
|
|
116
|
+
smart_union = True
|
|
117
|
+
extra = pydantic.Extra.allow
|
|
@@ -67,6 +67,11 @@ class GcsImportStorage(UncheckedBaseModel):
|
|
|
67
67
|
A unique integer value identifying this project.
|
|
68
68
|
"""
|
|
69
69
|
|
|
70
|
+
recursive_scan: typing.Optional[bool] = pydantic.Field(default=None)
|
|
71
|
+
"""
|
|
72
|
+
Perform recursive scan over the bucket content
|
|
73
|
+
"""
|
|
74
|
+
|
|
70
75
|
regex_filter: typing.Optional[str] = pydantic.Field(default=None)
|
|
71
76
|
"""
|
|
72
77
|
Cloud storage regex for filtering objects
|
|
@@ -87,6 +87,11 @@ class GcswifImportStorage(UncheckedBaseModel):
|
|
|
87
87
|
A unique integer value identifying this project.
|
|
88
88
|
"""
|
|
89
89
|
|
|
90
|
+
recursive_scan: typing.Optional[bool] = pydantic.Field(default=None)
|
|
91
|
+
"""
|
|
92
|
+
Perform recursive scan over the bucket content
|
|
93
|
+
"""
|
|
94
|
+
|
|
90
95
|
regex_filter: typing.Optional[str] = pydantic.Field(default=None)
|
|
91
96
|
"""
|
|
92
97
|
Cloud storage regex for filtering objects
|
|
@@ -81,6 +81,11 @@ class GcswifImportStorageRequest(UncheckedBaseModel):
|
|
|
81
81
|
A unique integer value identifying this project.
|
|
82
82
|
"""
|
|
83
83
|
|
|
84
|
+
recursive_scan: typing.Optional[bool] = pydantic.Field(default=None)
|
|
85
|
+
"""
|
|
86
|
+
Perform recursive scan over the bucket content
|
|
87
|
+
"""
|
|
88
|
+
|
|
84
89
|
regex_filter: typing.Optional[str] = pydantic.Field(default=None)
|
|
85
90
|
"""
|
|
86
91
|
Cloud storage regex for filtering objects
|
|
@@ -46,6 +46,11 @@ class LocalFilesImportStorage(UncheckedBaseModel):
|
|
|
46
46
|
A unique integer value identifying this project.
|
|
47
47
|
"""
|
|
48
48
|
|
|
49
|
+
recursive_scan: typing.Optional[bool] = pydantic.Field(default=None)
|
|
50
|
+
"""
|
|
51
|
+
Perform recursive scan over the directory content
|
|
52
|
+
"""
|
|
53
|
+
|
|
49
54
|
regex_filter: typing.Optional[str] = pydantic.Field(default=None)
|
|
50
55
|
"""
|
|
51
56
|
Regex for filtering objects
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
4
|
import pydantic
|
|
5
|
-
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
5
|
import typing
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class LseProjectCounts(UncheckedBaseModel):
|
|
@@ -19,13 +19,13 @@ class LseProjectCounts(UncheckedBaseModel):
|
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
21
|
id: int
|
|
22
|
-
num_tasks_with_annotations:
|
|
23
|
-
queue_done:
|
|
24
|
-
queue_left:
|
|
22
|
+
num_tasks_with_annotations: int
|
|
23
|
+
queue_done: int
|
|
24
|
+
queue_left: int
|
|
25
25
|
queue_total: str
|
|
26
|
-
rejected:
|
|
27
|
-
review_total_tasks:
|
|
28
|
-
reviewed_number:
|
|
26
|
+
rejected: int
|
|
27
|
+
review_total_tasks: int
|
|
28
|
+
reviewed_number: int
|
|
29
29
|
skipped_annotations_number: str
|
|
30
30
|
task_number: int = pydantic.Field()
|
|
31
31
|
"""
|
|
@@ -34,7 +34,7 @@ class LseProjectCounts(UncheckedBaseModel):
|
|
|
34
34
|
|
|
35
35
|
total_annotations_number: str
|
|
36
36
|
total_predictions_number: int
|
|
37
|
-
useful_annotation_number:
|
|
37
|
+
useful_annotation_number: typing.Optional[int] = None
|
|
38
38
|
|
|
39
39
|
if IS_PYDANTIC_V2:
|
|
40
40
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
|
-
from .
|
|
4
|
+
from .sampling_de5enum import SamplingDe5Enum
|
|
5
5
|
from .null_enum import NullEnum
|
|
6
6
|
|
|
7
|
-
LseProjectCreateSampling = typing.Union[
|
|
7
|
+
LseProjectCreateSampling = typing.Union[SamplingDe5Enum, NullEnum]
|
|
@@ -2,21 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
4
|
import typing
|
|
5
|
+
from .assignment_settings import AssignmentSettings
|
|
5
6
|
import pydantic
|
|
6
7
|
import datetime as dt
|
|
7
8
|
from .user_simple import UserSimple
|
|
8
|
-
from .
|
|
9
|
-
from .
|
|
9
|
+
from .review_settings import ReviewSettings
|
|
10
|
+
from .lse_project_response_sampling import LseProjectResponseSampling
|
|
11
|
+
from .lse_project_response_skip_queue import LseProjectResponseSkipQueue
|
|
10
12
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
11
13
|
|
|
12
14
|
|
|
13
|
-
class
|
|
15
|
+
class LseProjectResponse(UncheckedBaseModel):
|
|
14
16
|
"""
|
|
15
|
-
Serializer
|
|
16
|
-
make sure, that you use correct one(Project.objects.with_counts())
|
|
17
|
+
Serializer for project response, combining all the serializers for different roles. Don't use it except for Spectacular/Fern definitions.
|
|
17
18
|
"""
|
|
18
19
|
|
|
20
|
+
allow_stream: bool
|
|
21
|
+
annotation_limit_count: typing.Optional[int] = None
|
|
22
|
+
annotation_limit_percent: typing.Optional[str] = None
|
|
23
|
+
annotator_evaluation_minimum_score: typing.Optional[str] = None
|
|
24
|
+
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
|
|
25
|
+
assignment_settings: AssignmentSettings
|
|
19
26
|
color: typing.Optional[str] = None
|
|
27
|
+
comment_classification_config: typing.Optional[str] = None
|
|
20
28
|
config_has_control_tags: bool = pydantic.Field()
|
|
21
29
|
"""
|
|
22
30
|
Flag to detect is project ready for labeling
|
|
@@ -34,11 +42,20 @@ class Project(UncheckedBaseModel):
|
|
|
34
42
|
Project owner
|
|
35
43
|
"""
|
|
36
44
|
|
|
45
|
+
custom_script: typing.Optional[str] = None
|
|
46
|
+
custom_task_lock_ttl: typing.Optional[int] = pydantic.Field(default=None)
|
|
47
|
+
"""
|
|
48
|
+
TTL in seconds for task reservations, on new and existing tasks
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
data_types: typing.Optional[typing.Any] = None
|
|
37
52
|
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
38
53
|
"""
|
|
39
54
|
Project description
|
|
40
55
|
"""
|
|
41
56
|
|
|
57
|
+
duplication_done: typing.Optional[bool] = None
|
|
58
|
+
duplication_status: typing.Optional[str] = None
|
|
42
59
|
enable_empty_annotation: typing.Optional[bool] = pydantic.Field(default=None)
|
|
43
60
|
"""
|
|
44
61
|
Allow annotators to submit empty annotations
|
|
@@ -85,6 +102,8 @@ class Project(UncheckedBaseModel):
|
|
|
85
102
|
Maximum number of annotations for one task. If the number of annotations per task is equal or greater to this value, the task is completed (is_labeled=True)
|
|
86
103
|
"""
|
|
87
104
|
|
|
105
|
+
members: str
|
|
106
|
+
members_count: int
|
|
88
107
|
min_annotations_to_start_training: typing.Optional[int] = pydantic.Field(default=None)
|
|
89
108
|
"""
|
|
90
109
|
Minimum number of completed tasks after which model training is started
|
|
@@ -95,27 +114,33 @@ class Project(UncheckedBaseModel):
|
|
|
95
114
|
Machine learning model version
|
|
96
115
|
"""
|
|
97
116
|
|
|
98
|
-
num_tasks_with_annotations: int
|
|
99
|
-
"""
|
|
100
|
-
Tasks with annotations count
|
|
101
|
-
"""
|
|
102
|
-
|
|
117
|
+
num_tasks_with_annotations: int
|
|
103
118
|
organization: typing.Optional[int] = None
|
|
104
119
|
overlap_cohort_percentage: typing.Optional[int] = None
|
|
105
120
|
parsed_label_config: typing.Optional[typing.Any] = None
|
|
121
|
+
pause_on_failed_annotator_evaluation: typing.Optional[bool] = None
|
|
106
122
|
pinned_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
|
|
107
123
|
"""
|
|
108
124
|
Pinned date and time
|
|
109
125
|
"""
|
|
110
126
|
|
|
127
|
+
prompts: str
|
|
111
128
|
queue_done: int
|
|
129
|
+
queue_left: int
|
|
112
130
|
queue_total: int
|
|
131
|
+
ready: bool
|
|
132
|
+
rejected: int
|
|
133
|
+
require_comment_on_skip: typing.Optional[bool] = None
|
|
113
134
|
reveal_preannotations_interactively: typing.Optional[bool] = pydantic.Field(default=None)
|
|
114
135
|
"""
|
|
115
136
|
Reveal pre-annotations interactively
|
|
116
137
|
"""
|
|
117
138
|
|
|
118
|
-
|
|
139
|
+
review_settings: ReviewSettings
|
|
140
|
+
review_total_tasks: int
|
|
141
|
+
reviewed_number: int
|
|
142
|
+
reviewer_queue_total: int
|
|
143
|
+
sampling: typing.Optional[LseProjectResponseSampling] = None
|
|
119
144
|
show_annotation_history: typing.Optional[bool] = pydantic.Field(default=None)
|
|
120
145
|
"""
|
|
121
146
|
Show annotation history to annotator
|
|
@@ -138,12 +163,9 @@ class Project(UncheckedBaseModel):
|
|
|
138
163
|
Show a skip button in interface and allow annotators to skip the task
|
|
139
164
|
"""
|
|
140
165
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
Skipped by collaborators annotation number in project
|
|
145
|
-
"""
|
|
146
|
-
|
|
166
|
+
show_unused_data_columns_to_annotators: typing.Optional[bool] = None
|
|
167
|
+
skip_queue: typing.Optional[LseProjectResponseSkipQueue] = None
|
|
168
|
+
skipped_annotations_number: int
|
|
147
169
|
start_training_on_annotation_update: bool = pydantic.Field()
|
|
148
170
|
"""
|
|
149
171
|
Start model training after any annotations are submitted or updated
|
|
@@ -169,20 +191,11 @@ class Project(UncheckedBaseModel):
|
|
|
169
191
|
Project name. Must be between 3 and 50 characters long.
|
|
170
192
|
"""
|
|
171
193
|
|
|
172
|
-
total_annotations_number: int
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
total_predictions_number: int = pydantic.Field()
|
|
178
|
-
"""
|
|
179
|
-
Total predictions number in project including skipped_annotations_number, ground_truth_number, and useful_annotation_number.
|
|
180
|
-
"""
|
|
181
|
-
|
|
182
|
-
useful_annotation_number: int = pydantic.Field()
|
|
183
|
-
"""
|
|
184
|
-
Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total annotations = annotation_number + skipped_annotations_number + ground_truth_number
|
|
185
|
-
"""
|
|
194
|
+
total_annotations_number: int
|
|
195
|
+
total_predictions_number: typing.Optional[int] = None
|
|
196
|
+
useful_annotation_number: typing.Optional[int] = None
|
|
197
|
+
workspace: str
|
|
198
|
+
workspace_title: str
|
|
186
199
|
|
|
187
200
|
if IS_PYDANTIC_V2:
|
|
188
201
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
|
-
from .
|
|
4
|
+
from .sampling_de5enum import SamplingDe5Enum
|
|
5
5
|
from .null_enum import NullEnum
|
|
6
6
|
|
|
7
|
-
LseProjectSampling = typing.Union[
|
|
7
|
+
LseProjectSampling = typing.Union[SamplingDe5Enum, NullEnum]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
|
-
from .
|
|
4
|
+
from .sampling_de5enum import SamplingDe5Enum
|
|
5
5
|
from .null_enum import NullEnum
|
|
6
6
|
|
|
7
|
-
LseProjectUpdateSampling = typing.Union[
|
|
7
|
+
LseProjectUpdateSampling = typing.Union[SamplingDe5Enum, NullEnum]
|
|
@@ -85,6 +85,12 @@ class LseTask(UncheckedBaseModel):
|
|
|
85
85
|
Project ID for this task
|
|
86
86
|
"""
|
|
87
87
|
|
|
88
|
+
review_time: int = pydantic.Field()
|
|
89
|
+
"""
|
|
90
|
+
Calculate total review time for this task from MetricInTimeBucket records.
|
|
91
|
+
Returns time in seconds.
|
|
92
|
+
"""
|
|
93
|
+
|
|
88
94
|
reviewed: typing.Optional[bool] = None
|
|
89
95
|
reviewers: typing.List[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
90
96
|
reviewers_count: int
|
|
@@ -85,6 +85,12 @@ class LseTaskSerializerForReviewers(UncheckedBaseModel):
|
|
|
85
85
|
Project ID for this task
|
|
86
86
|
"""
|
|
87
87
|
|
|
88
|
+
review_time: int = pydantic.Field()
|
|
89
|
+
"""
|
|
90
|
+
Calculate total review time for this task from MetricInTimeBucket records.
|
|
91
|
+
Returns time in seconds.
|
|
92
|
+
"""
|
|
93
|
+
|
|
88
94
|
reviewed: typing.Optional[bool] = None
|
|
89
95
|
reviewers: typing.List[typing.Dict[str, typing.Optional[typing.Any]]]
|
|
90
96
|
reviewers_count: int
|
|
@@ -35,6 +35,7 @@ class LseUser(UncheckedBaseModel):
|
|
|
35
35
|
last_name: typing.Optional[str] = None
|
|
36
36
|
lse_fields: LseFields
|
|
37
37
|
org_membership: typing.List[OrganizationMembership]
|
|
38
|
+
organization_membership: OrganizationMembership
|
|
38
39
|
pause: str
|
|
39
40
|
phone: typing.Optional[str] = None
|
|
40
41
|
username: str
|
|
@@ -33,6 +33,7 @@ class LseUserApi(UncheckedBaseModel):
|
|
|
33
33
|
last_activity: dt.datetime
|
|
34
34
|
last_name: typing.Optional[str] = None
|
|
35
35
|
org_membership: typing.List[OrganizationMembership]
|
|
36
|
+
organization_membership: OrganizationMembership
|
|
36
37
|
phone: typing.Optional[str] = None
|
|
37
38
|
username: str
|
|
38
39
|
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
4
|
import typing
|
|
5
|
+
from .default165enum import Default165Enum
|
|
6
|
+
from .options165enum import Options165Enum
|
|
5
7
|
from .role9e7enum import Role9E7Enum
|
|
6
8
|
import pydantic
|
|
7
9
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
class OrganizationPermission(UncheckedBaseModel):
|
|
11
|
-
|
|
13
|
+
default: typing.List[Default165Enum]
|
|
14
|
+
group: typing.Optional[str] = None
|
|
12
15
|
id: int
|
|
13
|
-
label: str
|
|
14
|
-
options:
|
|
16
|
+
label: typing.Optional[str] = None
|
|
17
|
+
options: typing.List[Options165Enum]
|
|
15
18
|
organization: int
|
|
16
19
|
permission: str
|
|
17
20
|
roles: typing.Optional[typing.List[Role9E7Enum]] = pydantic.Field(default=None)
|
|
@@ -19,7 +22,7 @@ class OrganizationPermission(UncheckedBaseModel):
|
|
|
19
22
|
Explicit roles that have this permission within the organization.
|
|
20
23
|
"""
|
|
21
24
|
|
|
22
|
-
tooltip: str
|
|
25
|
+
tooltip: typing.Optional[str] = None
|
|
23
26
|
|
|
24
27
|
if IS_PYDANTIC_V2:
|
|
25
28
|
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
@@ -35,6 +35,7 @@ class PaginatedProjectMember(UncheckedBaseModel):
|
|
|
35
35
|
last_name: typing.Optional[str] = None
|
|
36
36
|
lse_fields: LseFields
|
|
37
37
|
org_membership: typing.List[OrganizationMembership]
|
|
38
|
+
organization_membership: OrganizationMembership
|
|
38
39
|
pause: str
|
|
39
40
|
phone: typing.Optional[str] = None
|
|
40
41
|
project_role: str
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .project_subset_tasks_response import ProjectSubsetTasksResponse
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
import pydantic
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class PaginatedProjectSubsetTasksResponseList(UncheckedBaseModel):
|
|
11
|
+
count: int
|
|
12
|
+
next: typing.Optional[str] = None
|
|
13
|
+
previous: typing.Optional[str] = None
|
|
14
|
+
results: typing.List[ProjectSubsetTasksResponse]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ProjectSubsetItem(UncheckedBaseModel):
|
|
10
|
+
columns_schema: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None
|
|
11
|
+
count: int
|
|
12
|
+
subset: str
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ProjectSubsetTaskItem(UncheckedBaseModel):
|
|
10
|
+
data: typing.Dict[str, typing.Optional[typing.Any]]
|
|
11
|
+
error: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
|
12
|
+
ground_truth: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
|
13
|
+
id: typing.Optional[int] = None
|
|
14
|
+
prediction: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
|
15
|
+
score: typing.Optional[float] = None
|
|
16
|
+
|
|
17
|
+
if IS_PYDANTIC_V2:
|
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
19
|
+
else:
|
|
20
|
+
|
|
21
|
+
class Config:
|
|
22
|
+
frozen = True
|
|
23
|
+
smart_union = True
|
|
24
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
import pydantic
|
|
6
|
+
from .project_subset_task_item import ProjectSubsetTaskItem
|
|
7
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ProjectSubsetTasksResponse(UncheckedBaseModel):
|
|
11
|
+
next_cursor: typing.Optional[str] = None
|
|
12
|
+
previous_cursor: typing.Optional[str] = None
|
|
13
|
+
task_count: typing.Optional[int] = pydantic.Field(default=None)
|
|
14
|
+
"""
|
|
15
|
+
Present only when include_total=true
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
task_result_list: typing.List[ProjectSubsetTaskItem]
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
@@ -5,6 +5,7 @@ import typing
|
|
|
5
5
|
import pydantic
|
|
6
6
|
from .review_settings_requeue_rejected_tasks_mode import ReviewSettingsRequeueRejectedTasksMode
|
|
7
7
|
from .review_settings_review_criteria import ReviewSettingsReviewCriteria
|
|
8
|
+
from .review_settings_sampling import ReviewSettingsSampling
|
|
8
9
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
10
|
|
|
10
11
|
|
|
@@ -54,6 +55,19 @@ class ReviewSettings(UncheckedBaseModel):
|
|
|
54
55
|
When set True, review queue is built only from manually assigned tasks
|
|
55
56
|
"""
|
|
56
57
|
|
|
58
|
+
review_task_limit_percent: typing.Optional[str] = pydantic.Field(default=None)
|
|
59
|
+
"""
|
|
60
|
+
Percent of tasks to include in review stream (0-100). Null/0 disables.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
sampling: typing.Optional[ReviewSettingsSampling] = pydantic.Field(default=None)
|
|
64
|
+
"""
|
|
65
|
+
Task sampling strategy in the review stream (by task id or random)
|
|
66
|
+
|
|
67
|
+
* `task_id` - By Task ID
|
|
68
|
+
* `random` - Random
|
|
69
|
+
"""
|
|
70
|
+
|
|
57
71
|
show_agreement_to_reviewers: typing.Optional[bool] = pydantic.Field(default=None)
|
|
58
72
|
"""
|
|
59
73
|
Show the agreement column to reviewers
|
|
@@ -5,6 +5,7 @@ import typing
|
|
|
5
5
|
import pydantic
|
|
6
6
|
from .review_settings_request_requeue_rejected_tasks_mode import ReviewSettingsRequestRequeueRejectedTasksMode
|
|
7
7
|
from .review_settings_request_review_criteria import ReviewSettingsRequestReviewCriteria
|
|
8
|
+
from .review_settings_request_sampling import ReviewSettingsRequestSampling
|
|
8
9
|
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
10
|
|
|
10
11
|
|
|
@@ -54,6 +55,19 @@ class ReviewSettingsRequest(UncheckedBaseModel):
|
|
|
54
55
|
When set True, review queue is built only from manually assigned tasks
|
|
55
56
|
"""
|
|
56
57
|
|
|
58
|
+
review_task_limit_percent: typing.Optional[str] = pydantic.Field(default=None)
|
|
59
|
+
"""
|
|
60
|
+
Percent of tasks to include in review stream (0-100). Null/0 disables.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
sampling: typing.Optional[ReviewSettingsRequestSampling] = pydantic.Field(default=None)
|
|
64
|
+
"""
|
|
65
|
+
Task sampling strategy in the review stream (by task id or random)
|
|
66
|
+
|
|
67
|
+
* `task_id` - By Task ID
|
|
68
|
+
* `random` - Random
|
|
69
|
+
"""
|
|
70
|
+
|
|
57
71
|
show_agreement_to_reviewers: typing.Optional[bool] = pydantic.Field(default=None)
|
|
58
72
|
"""
|
|
59
73
|
Show the agreement column to reviewers
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from .review_settings_sampling_enum import ReviewSettingsSamplingEnum
|
|
5
|
+
from .blank_enum import BlankEnum
|
|
6
|
+
from .null_enum import NullEnum
|
|
7
|
+
|
|
8
|
+
ReviewSettingsRequestSampling = typing.Union[ReviewSettingsSamplingEnum, BlankEnum, NullEnum]
|