label-studio-sdk 1.0.0__py3-none-any.whl → 1.0.2__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.
- label_studio_sdk/__init__.py +46 -4
- label_studio_sdk/_extensions/pager_ext.py +49 -0
- label_studio_sdk/_legacy/schema/label_config_schema.json +14 -14
- label_studio_sdk/actions/__init__.py +27 -0
- label_studio_sdk/actions/client.py +129 -8
- label_studio_sdk/actions/types/__init__.py +27 -0
- label_studio_sdk/actions/types/actions_create_request_filters.py +43 -0
- label_studio_sdk/actions/types/actions_create_request_filters_conjunction.py +5 -0
- label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +50 -0
- label_studio_sdk/actions/types/actions_create_request_filters_items_item_filter.py +31 -0
- label_studio_sdk/actions/types/actions_create_request_filters_items_item_operator.py +23 -0
- label_studio_sdk/actions/types/actions_create_request_filters_items_item_value.py +5 -0
- label_studio_sdk/actions/types/actions_create_request_id.py +19 -0
- label_studio_sdk/actions/types/actions_create_request_ordering_item.py +31 -0
- label_studio_sdk/actions/types/actions_create_request_selected_items.py +10 -0
- label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +39 -0
- label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +39 -0
- label_studio_sdk/base_client.py +183 -0
- label_studio_sdk/client.py +17 -175
- label_studio_sdk/core/client_wrapper.py +1 -1
- label_studio_sdk/core/http_client.py +5 -1
- label_studio_sdk/errors/bad_request_error.py +3 -1
- label_studio_sdk/export_storage/azure/client.py +176 -10
- label_studio_sdk/export_storage/azure/types/azure_create_response.py +15 -0
- label_studio_sdk/export_storage/azure/types/azure_update_response.py +15 -0
- label_studio_sdk/export_storage/gcs/client.py +180 -14
- label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +16 -1
- label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +16 -1
- label_studio_sdk/export_storage/local/client.py +168 -22
- label_studio_sdk/export_storage/local/types/local_create_response.py +12 -2
- label_studio_sdk/export_storage/local/types/local_update_response.py +12 -2
- label_studio_sdk/export_storage/redis/client.py +234 -30
- label_studio_sdk/export_storage/redis/types/redis_create_response.py +20 -5
- label_studio_sdk/export_storage/redis/types/redis_update_response.py +20 -5
- label_studio_sdk/export_storage/s3/client.py +214 -26
- label_studio_sdk/export_storage/s3/types/s3create_response.py +15 -0
- label_studio_sdk/export_storage/s3/types/s3update_response.py +15 -0
- label_studio_sdk/import_storage/azure/client.py +266 -90
- label_studio_sdk/import_storage/azure/types/azure_create_response.py +28 -18
- label_studio_sdk/import_storage/azure/types/azure_update_response.py +28 -18
- label_studio_sdk/import_storage/gcs/client.py +270 -94
- label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +28 -18
- label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +28 -18
- label_studio_sdk/import_storage/local/client.py +168 -22
- label_studio_sdk/import_storage/local/types/local_create_response.py +12 -2
- label_studio_sdk/import_storage/local/types/local_update_response.py +12 -2
- label_studio_sdk/import_storage/redis/client.py +206 -50
- label_studio_sdk/import_storage/redis/types/redis_create_response.py +20 -10
- label_studio_sdk/import_storage/redis/types/redis_update_response.py +20 -10
- label_studio_sdk/import_storage/s3/client.py +336 -110
- label_studio_sdk/import_storage/s3/types/s3create_response.py +35 -25
- label_studio_sdk/import_storage/s3/types/s3update_response.py +35 -25
- label_studio_sdk/{_legacy/label_interface → label_interface}/base.py +10 -0
- label_studio_sdk/{_legacy/label_interface → label_interface}/control_tags.py +109 -71
- label_studio_sdk/{_legacy/label_interface → label_interface}/interface.py +97 -51
- label_studio_sdk/{_legacy/label_interface → label_interface}/object_tags.py +8 -13
- label_studio_sdk/label_interface/objects.py +60 -0
- label_studio_sdk/label_interface/region.py +75 -0
- label_studio_sdk/projects/client.py +6 -4
- label_studio_sdk/projects/client_ext.py +19 -0
- label_studio_sdk/tasks/client.py +35 -8
- label_studio_sdk/tasks/client_ext.py +18 -0
- label_studio_sdk/types/__init__.py +10 -0
- label_studio_sdk/types/annotation.py +5 -5
- label_studio_sdk/types/annotations_dm_field.py +120 -0
- label_studio_sdk/types/annotations_dm_field_last_action.py +19 -0
- label_studio_sdk/types/data_manager_task_serializer.py +123 -0
- label_studio_sdk/types/data_manager_task_serializer_drafts_item.py +31 -0
- label_studio_sdk/types/data_manager_task_serializer_predictions_item.py +37 -0
- label_studio_sdk/types/task.py +1 -1
- label_studio_sdk/views/__init__.py +12 -4
- label_studio_sdk/views/types/__init__.py +12 -4
- label_studio_sdk/views/types/views_create_request_data.py +2 -2
- label_studio_sdk/views/types/views_create_request_data_filters.py +5 -5
- label_studio_sdk/views/types/views_create_request_data_filters_conjunction.py +1 -1
- label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +11 -8
- label_studio_sdk/views/types/views_create_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk/views/types/views_create_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk/views/types/views_create_request_data_filters_items_item_value.py +5 -0
- label_studio_sdk/views/types/views_create_request_data_ordering_item.py +27 -34
- label_studio_sdk/views/types/views_update_request_data.py +2 -2
- label_studio_sdk/views/types/views_update_request_data_filters.py +5 -5
- label_studio_sdk/views/types/views_update_request_data_filters_conjunction.py +1 -1
- label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +11 -8
- label_studio_sdk/views/types/views_update_request_data_filters_items_item_filter.py +31 -0
- label_studio_sdk/views/types/views_update_request_data_filters_items_item_operator.py +23 -0
- label_studio_sdk/views/types/views_update_request_data_filters_items_item_value.py +5 -0
- label_studio_sdk/views/types/views_update_request_data_ordering_item.py +27 -34
- label_studio_sdk-1.0.2.dist-info/METADATA +195 -0
- {label_studio_sdk-1.0.0.dist-info → label_studio_sdk-1.0.2.dist-info}/RECORD +94 -69
- label_studio_sdk/_legacy/label_interface/region.py +0 -43
- label_studio_sdk/_legacy/objects.py +0 -35
- label_studio_sdk/views/types/views_create_request_data_ordering_item_direction.py +0 -5
- label_studio_sdk/views/types/views_update_request_data_ordering_item_direction.py +0 -5
- label_studio_sdk-1.0.0.dist-info/METADATA +0 -307
- /label_studio_sdk/{_legacy/label_interface → label_interface}/__init__.py +0 -0
- /label_studio_sdk/{_legacy/label_interface → label_interface}/data_examples.json +0 -0
- /label_studio_sdk/{_legacy/label_interface → label_interface}/label_tags.py +0 -0
- {label_studio_sdk-1.0.0.dist-info → label_studio_sdk-1.0.2.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from .client import TasksClient, AsyncTasksClient
|
|
2
|
+
from label_studio_sdk._extensions.pager_ext import SyncPagerExt, AsyncPagerExt, T
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TasksClientExt(TasksClient):
|
|
6
|
+
|
|
7
|
+
def list(self, **kwargs) -> SyncPagerExt[T]:
|
|
8
|
+
return SyncPagerExt.from_sync_pager(super().list(**kwargs))
|
|
9
|
+
|
|
10
|
+
list.__doc__ = TasksClient.list.__doc__
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AsyncTasksClientExt(AsyncTasksClient):
|
|
14
|
+
|
|
15
|
+
async def list(self, **kwargs):
|
|
16
|
+
return await AsyncPagerExt.from_async_pager(await super().list(**kwargs))
|
|
17
|
+
|
|
18
|
+
list.__doc__ = AsyncTasksClient.list.__doc__
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
from .annotation import Annotation
|
|
4
4
|
from .annotation_filter_options import AnnotationFilterOptions
|
|
5
5
|
from .annotation_last_action import AnnotationLastAction
|
|
6
|
+
from .annotations_dm_field import AnnotationsDmField
|
|
7
|
+
from .annotations_dm_field_last_action import AnnotationsDmFieldLastAction
|
|
6
8
|
from .azure_blob_export_storage import AzureBlobExportStorage
|
|
7
9
|
from .azure_blob_export_storage_status import AzureBlobExportStorageStatus
|
|
8
10
|
from .azure_blob_import_storage import AzureBlobImportStorage
|
|
@@ -11,6 +13,9 @@ from .base_task import BaseTask
|
|
|
11
13
|
from .base_user import BaseUser
|
|
12
14
|
from .converted_format import ConvertedFormat
|
|
13
15
|
from .converted_format_status import ConvertedFormatStatus
|
|
16
|
+
from .data_manager_task_serializer import DataManagerTaskSerializer
|
|
17
|
+
from .data_manager_task_serializer_drafts_item import DataManagerTaskSerializerDraftsItem
|
|
18
|
+
from .data_manager_task_serializer_predictions_item import DataManagerTaskSerializerPredictionsItem
|
|
14
19
|
from .export import Export
|
|
15
20
|
from .export_convert import ExportConvert
|
|
16
21
|
from .export_create import ExportCreate
|
|
@@ -60,6 +65,8 @@ __all__ = [
|
|
|
60
65
|
"Annotation",
|
|
61
66
|
"AnnotationFilterOptions",
|
|
62
67
|
"AnnotationLastAction",
|
|
68
|
+
"AnnotationsDmField",
|
|
69
|
+
"AnnotationsDmFieldLastAction",
|
|
63
70
|
"AzureBlobExportStorage",
|
|
64
71
|
"AzureBlobExportStorageStatus",
|
|
65
72
|
"AzureBlobImportStorage",
|
|
@@ -68,6 +75,9 @@ __all__ = [
|
|
|
68
75
|
"BaseUser",
|
|
69
76
|
"ConvertedFormat",
|
|
70
77
|
"ConvertedFormatStatus",
|
|
78
|
+
"DataManagerTaskSerializer",
|
|
79
|
+
"DataManagerTaskSerializerDraftsItem",
|
|
80
|
+
"DataManagerTaskSerializerPredictionsItem",
|
|
71
81
|
"Export",
|
|
72
82
|
"ExportConvert",
|
|
73
83
|
"ExportCreate",
|
|
@@ -10,6 +10,11 @@ from .annotation_last_action import AnnotationLastAction
|
|
|
10
10
|
|
|
11
11
|
class Annotation(pydantic_v1.BaseModel):
|
|
12
12
|
id: typing.Optional[int] = None
|
|
13
|
+
result: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic_v1.Field(default=None)
|
|
14
|
+
"""
|
|
15
|
+
List of annotation results for the task
|
|
16
|
+
"""
|
|
17
|
+
|
|
13
18
|
created_username: typing.Optional[str] = pydantic_v1.Field(default=None)
|
|
14
19
|
"""
|
|
15
20
|
Username string
|
|
@@ -22,11 +27,6 @@ class Annotation(pydantic_v1.BaseModel):
|
|
|
22
27
|
|
|
23
28
|
completed_by: typing.Optional[int] = None
|
|
24
29
|
unique_id: typing.Optional[str] = None
|
|
25
|
-
result: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
|
|
26
|
-
"""
|
|
27
|
-
The main value of annotator work - labeling result in JSON format
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
30
|
was_cancelled: typing.Optional[bool] = pydantic_v1.Field(default=None)
|
|
31
31
|
"""
|
|
32
32
|
User skipped the task
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
from ..core.datetime_utils import serialize_datetime
|
|
7
|
+
from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
|
+
from .annotations_dm_field_last_action import AnnotationsDmFieldLastAction
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AnnotationsDmField(pydantic_v1.BaseModel):
|
|
12
|
+
id: typing.Optional[int] = None
|
|
13
|
+
result: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic_v1.Field(default=None)
|
|
14
|
+
"""
|
|
15
|
+
List of annotation results for the task
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
created_username: typing.Optional[str] = pydantic_v1.Field(default=None)
|
|
19
|
+
"""
|
|
20
|
+
Username string
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
created_ago: typing.Optional[str] = pydantic_v1.Field(default=None)
|
|
24
|
+
"""
|
|
25
|
+
Time delta from creation time
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
completed_by: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
|
|
29
|
+
"""
|
|
30
|
+
User details who completed this annotation.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
unique_id: typing.Optional[str] = None
|
|
34
|
+
was_cancelled: typing.Optional[bool] = pydantic_v1.Field(default=None)
|
|
35
|
+
"""
|
|
36
|
+
User skipped the task
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
ground_truth: typing.Optional[bool] = pydantic_v1.Field(default=None)
|
|
40
|
+
"""
|
|
41
|
+
This annotation is a Ground Truth (ground_truth)
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
created_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
45
|
+
"""
|
|
46
|
+
Creation time
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
updated_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
50
|
+
"""
|
|
51
|
+
Last updated time
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
draft_created_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
55
|
+
"""
|
|
56
|
+
Draft creation time
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
lead_time: typing.Optional[float] = pydantic_v1.Field(default=None)
|
|
60
|
+
"""
|
|
61
|
+
How much time it took to annotate the task
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
import_id: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
65
|
+
"""
|
|
66
|
+
Original annotation ID that was at the import step or NULL if this annotation wasn't imported
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
last_action: typing.Optional[AnnotationsDmFieldLastAction] = pydantic_v1.Field(default=None)
|
|
70
|
+
"""
|
|
71
|
+
Action which was performed in the last annotation history item
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
task: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
75
|
+
"""
|
|
76
|
+
Corresponding task for this annotation
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
project: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
80
|
+
"""
|
|
81
|
+
Project ID for this annotation
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
updated_by: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
85
|
+
"""
|
|
86
|
+
Last user who updated this annotation
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
parent_prediction: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
90
|
+
"""
|
|
91
|
+
Points to the prediction from which this annotation was created
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
parent_annotation: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
95
|
+
"""
|
|
96
|
+
Points to the parent annotation from which this annotation was created
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
last_created_by: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
100
|
+
"""
|
|
101
|
+
User who created the last annotation history item
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
def json(self, **kwargs: typing.Any) -> str:
|
|
105
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
106
|
+
return super().json(**kwargs_with_defaults)
|
|
107
|
+
|
|
108
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
109
|
+
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
110
|
+
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
111
|
+
|
|
112
|
+
return deep_union_pydantic_dicts(
|
|
113
|
+
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
class Config:
|
|
117
|
+
frozen = True
|
|
118
|
+
smart_union = True
|
|
119
|
+
extra = pydantic_v1.Extra.allow
|
|
120
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
AnnotationsDmFieldLastAction = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"prediction",
|
|
8
|
+
"propagated_annotation",
|
|
9
|
+
"imported",
|
|
10
|
+
"submitted",
|
|
11
|
+
"updated",
|
|
12
|
+
"skipped",
|
|
13
|
+
"accepted",
|
|
14
|
+
"rejected",
|
|
15
|
+
"fixed_and_accepted",
|
|
16
|
+
"deleted_review",
|
|
17
|
+
],
|
|
18
|
+
typing.Any,
|
|
19
|
+
]
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
from ..core.datetime_utils import serialize_datetime
|
|
7
|
+
from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
|
+
from .annotations_dm_field import AnnotationsDmField
|
|
9
|
+
from .data_manager_task_serializer_drafts_item import DataManagerTaskSerializerDraftsItem
|
|
10
|
+
from .data_manager_task_serializer_predictions_item import DataManagerTaskSerializerPredictionsItem
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DataManagerTaskSerializer(pydantic_v1.BaseModel):
|
|
14
|
+
id: typing.Optional[int] = None
|
|
15
|
+
predictions: typing.Optional[typing.List[DataManagerTaskSerializerPredictionsItem]] = pydantic_v1.Field(
|
|
16
|
+
default=None
|
|
17
|
+
)
|
|
18
|
+
"""
|
|
19
|
+
Predictions for this task
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
annotations: typing.Optional[typing.List[AnnotationsDmField]] = None
|
|
23
|
+
drafts: typing.Optional[typing.List[DataManagerTaskSerializerDraftsItem]] = pydantic_v1.Field(default=None)
|
|
24
|
+
"""
|
|
25
|
+
Drafts for this task
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
annotators: typing.Optional[typing.List[int]] = pydantic_v1.Field(default=None)
|
|
29
|
+
"""
|
|
30
|
+
Annotators IDs who annotated this task
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
inner_id: typing.Optional[int] = None
|
|
34
|
+
cancelled_annotations: typing.Optional[int] = None
|
|
35
|
+
total_annotations: typing.Optional[int] = None
|
|
36
|
+
total_predictions: typing.Optional[int] = None
|
|
37
|
+
completed_at: typing.Optional[dt.datetime] = None
|
|
38
|
+
annotations_results: typing.Optional[str] = None
|
|
39
|
+
predictions_results: typing.Optional[str] = None
|
|
40
|
+
predictions_score: typing.Optional[float] = None
|
|
41
|
+
file_upload: typing.Optional[str] = None
|
|
42
|
+
storage_filename: typing.Optional[str] = None
|
|
43
|
+
annotations_ids: typing.Optional[str] = None
|
|
44
|
+
predictions_model_versions: typing.Optional[str] = None
|
|
45
|
+
avg_lead_time: typing.Optional[float] = None
|
|
46
|
+
draft_exists: typing.Optional[bool] = None
|
|
47
|
+
updated_by: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = pydantic_v1.Field(default=None)
|
|
48
|
+
"""
|
|
49
|
+
User IDs who updated this task
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
data: typing.Dict[str, typing.Any] = pydantic_v1.Field()
|
|
53
|
+
"""
|
|
54
|
+
User imported or uploaded data for a task. Data is formatted according to the project label config. You can find examples of data for your project on the Import page in the Label Studio Data Manager UI.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
meta: typing.Optional[typing.Dict[str, typing.Any]] = pydantic_v1.Field(default=None)
|
|
58
|
+
"""
|
|
59
|
+
Meta is user imported (uploaded) data and can be useful as input for an ML Backend for embeddings, advanced vectors, and other info. It is passed to ML during training/predicting steps.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
created_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
63
|
+
"""
|
|
64
|
+
Time a task was created
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
updated_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
68
|
+
"""
|
|
69
|
+
Last time a task was updated
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
is_labeled: typing.Optional[bool] = pydantic_v1.Field(default=None)
|
|
73
|
+
"""
|
|
74
|
+
True if the number of annotations for this task is greater than or equal to the number of maximum_completions for the project
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
overlap: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
78
|
+
"""
|
|
79
|
+
Number of distinct annotators that processed the current task
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
comment_count: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
83
|
+
"""
|
|
84
|
+
Number of comments in the task including all annotations
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
unresolved_comment_count: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
88
|
+
"""
|
|
89
|
+
Number of unresolved comments in the task including all annotations
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
last_comment_updated_at: typing.Optional[dt.datetime] = pydantic_v1.Field(default=None)
|
|
93
|
+
"""
|
|
94
|
+
When the last comment was updated
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
project: typing.Optional[int] = pydantic_v1.Field(default=None)
|
|
98
|
+
"""
|
|
99
|
+
Project ID for this task
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
comment_authors: typing.Optional[typing.List[int]] = pydantic_v1.Field(default=None)
|
|
103
|
+
"""
|
|
104
|
+
Users who wrote comments
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
def json(self, **kwargs: typing.Any) -> str:
|
|
108
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
109
|
+
return super().json(**kwargs_with_defaults)
|
|
110
|
+
|
|
111
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
112
|
+
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
113
|
+
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
114
|
+
|
|
115
|
+
return deep_union_pydantic_dicts(
|
|
116
|
+
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
class Config:
|
|
120
|
+
frozen = True
|
|
121
|
+
smart_union = True
|
|
122
|
+
extra = pydantic_v1.Extra.allow
|
|
123
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
from ..core.datetime_utils import serialize_datetime
|
|
7
|
+
from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DataManagerTaskSerializerDraftsItem(pydantic_v1.BaseModel):
|
|
11
|
+
result: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None
|
|
12
|
+
created_at: typing.Optional[dt.datetime] = None
|
|
13
|
+
updated_at: typing.Optional[dt.datetime] = None
|
|
14
|
+
|
|
15
|
+
def json(self, **kwargs: typing.Any) -> str:
|
|
16
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
17
|
+
return super().json(**kwargs_with_defaults)
|
|
18
|
+
|
|
19
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
20
|
+
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
21
|
+
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
22
|
+
|
|
23
|
+
return deep_union_pydantic_dicts(
|
|
24
|
+
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
class Config:
|
|
28
|
+
frozen = True
|
|
29
|
+
smart_union = True
|
|
30
|
+
extra = pydantic_v1.Extra.allow
|
|
31
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
from ..core.datetime_utils import serialize_datetime
|
|
7
|
+
from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DataManagerTaskSerializerPredictionsItem(pydantic_v1.BaseModel):
|
|
11
|
+
result: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] = None
|
|
12
|
+
score: typing.Optional[float] = None
|
|
13
|
+
model_version: typing.Optional[str] = None
|
|
14
|
+
model: typing.Optional[typing.Dict[str, typing.Any]] = None
|
|
15
|
+
model_run: typing.Optional[typing.Dict[str, typing.Any]] = None
|
|
16
|
+
task: typing.Optional[int] = None
|
|
17
|
+
project: typing.Optional[float] = None
|
|
18
|
+
created_at: typing.Optional[dt.datetime] = None
|
|
19
|
+
updated_at: typing.Optional[dt.datetime] = None
|
|
20
|
+
|
|
21
|
+
def json(self, **kwargs: typing.Any) -> str:
|
|
22
|
+
kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
23
|
+
return super().json(**kwargs_with_defaults)
|
|
24
|
+
|
|
25
|
+
def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
|
|
26
|
+
kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
|
|
27
|
+
kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
|
|
28
|
+
|
|
29
|
+
return deep_union_pydantic_dicts(
|
|
30
|
+
super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
class Config:
|
|
34
|
+
frozen = True
|
|
35
|
+
smart_union = True
|
|
36
|
+
extra = pydantic_v1.Extra.allow
|
|
37
|
+
json_encoders = {dt.datetime: serialize_datetime}
|
label_studio_sdk/types/task.py
CHANGED
|
@@ -58,7 +58,7 @@ class Task(pydantic_v1.BaseModel):
|
|
|
58
58
|
Completion time of the task
|
|
59
59
|
"""
|
|
60
60
|
|
|
61
|
-
file_upload: typing.Optional[
|
|
61
|
+
file_upload: typing.Optional[str] = pydantic_v1.Field(default=None)
|
|
62
62
|
"""
|
|
63
63
|
File upload ID for this task
|
|
64
64
|
"""
|
|
@@ -5,14 +5,18 @@ from .types import (
|
|
|
5
5
|
ViewsCreateRequestDataFilters,
|
|
6
6
|
ViewsCreateRequestDataFiltersConjunction,
|
|
7
7
|
ViewsCreateRequestDataFiltersItemsItem,
|
|
8
|
+
ViewsCreateRequestDataFiltersItemsItemFilter,
|
|
9
|
+
ViewsCreateRequestDataFiltersItemsItemOperator,
|
|
10
|
+
ViewsCreateRequestDataFiltersItemsItemValue,
|
|
8
11
|
ViewsCreateRequestDataOrderingItem,
|
|
9
|
-
ViewsCreateRequestDataOrderingItemDirection,
|
|
10
12
|
ViewsUpdateRequestData,
|
|
11
13
|
ViewsUpdateRequestDataFilters,
|
|
12
14
|
ViewsUpdateRequestDataFiltersConjunction,
|
|
13
15
|
ViewsUpdateRequestDataFiltersItemsItem,
|
|
16
|
+
ViewsUpdateRequestDataFiltersItemsItemFilter,
|
|
17
|
+
ViewsUpdateRequestDataFiltersItemsItemOperator,
|
|
18
|
+
ViewsUpdateRequestDataFiltersItemsItemValue,
|
|
14
19
|
ViewsUpdateRequestDataOrderingItem,
|
|
15
|
-
ViewsUpdateRequestDataOrderingItemDirection,
|
|
16
20
|
)
|
|
17
21
|
|
|
18
22
|
__all__ = [
|
|
@@ -20,12 +24,16 @@ __all__ = [
|
|
|
20
24
|
"ViewsCreateRequestDataFilters",
|
|
21
25
|
"ViewsCreateRequestDataFiltersConjunction",
|
|
22
26
|
"ViewsCreateRequestDataFiltersItemsItem",
|
|
27
|
+
"ViewsCreateRequestDataFiltersItemsItemFilter",
|
|
28
|
+
"ViewsCreateRequestDataFiltersItemsItemOperator",
|
|
29
|
+
"ViewsCreateRequestDataFiltersItemsItemValue",
|
|
23
30
|
"ViewsCreateRequestDataOrderingItem",
|
|
24
|
-
"ViewsCreateRequestDataOrderingItemDirection",
|
|
25
31
|
"ViewsUpdateRequestData",
|
|
26
32
|
"ViewsUpdateRequestDataFilters",
|
|
27
33
|
"ViewsUpdateRequestDataFiltersConjunction",
|
|
28
34
|
"ViewsUpdateRequestDataFiltersItemsItem",
|
|
35
|
+
"ViewsUpdateRequestDataFiltersItemsItemFilter",
|
|
36
|
+
"ViewsUpdateRequestDataFiltersItemsItemOperator",
|
|
37
|
+
"ViewsUpdateRequestDataFiltersItemsItemValue",
|
|
29
38
|
"ViewsUpdateRequestDataOrderingItem",
|
|
30
|
-
"ViewsUpdateRequestDataOrderingItemDirection",
|
|
31
39
|
]
|
|
@@ -4,26 +4,34 @@ from .views_create_request_data import ViewsCreateRequestData
|
|
|
4
4
|
from .views_create_request_data_filters import ViewsCreateRequestDataFilters
|
|
5
5
|
from .views_create_request_data_filters_conjunction import ViewsCreateRequestDataFiltersConjunction
|
|
6
6
|
from .views_create_request_data_filters_items_item import ViewsCreateRequestDataFiltersItemsItem
|
|
7
|
+
from .views_create_request_data_filters_items_item_filter import ViewsCreateRequestDataFiltersItemsItemFilter
|
|
8
|
+
from .views_create_request_data_filters_items_item_operator import ViewsCreateRequestDataFiltersItemsItemOperator
|
|
9
|
+
from .views_create_request_data_filters_items_item_value import ViewsCreateRequestDataFiltersItemsItemValue
|
|
7
10
|
from .views_create_request_data_ordering_item import ViewsCreateRequestDataOrderingItem
|
|
8
|
-
from .views_create_request_data_ordering_item_direction import ViewsCreateRequestDataOrderingItemDirection
|
|
9
11
|
from .views_update_request_data import ViewsUpdateRequestData
|
|
10
12
|
from .views_update_request_data_filters import ViewsUpdateRequestDataFilters
|
|
11
13
|
from .views_update_request_data_filters_conjunction import ViewsUpdateRequestDataFiltersConjunction
|
|
12
14
|
from .views_update_request_data_filters_items_item import ViewsUpdateRequestDataFiltersItemsItem
|
|
15
|
+
from .views_update_request_data_filters_items_item_filter import ViewsUpdateRequestDataFiltersItemsItemFilter
|
|
16
|
+
from .views_update_request_data_filters_items_item_operator import ViewsUpdateRequestDataFiltersItemsItemOperator
|
|
17
|
+
from .views_update_request_data_filters_items_item_value import ViewsUpdateRequestDataFiltersItemsItemValue
|
|
13
18
|
from .views_update_request_data_ordering_item import ViewsUpdateRequestDataOrderingItem
|
|
14
|
-
from .views_update_request_data_ordering_item_direction import ViewsUpdateRequestDataOrderingItemDirection
|
|
15
19
|
|
|
16
20
|
__all__ = [
|
|
17
21
|
"ViewsCreateRequestData",
|
|
18
22
|
"ViewsCreateRequestDataFilters",
|
|
19
23
|
"ViewsCreateRequestDataFiltersConjunction",
|
|
20
24
|
"ViewsCreateRequestDataFiltersItemsItem",
|
|
25
|
+
"ViewsCreateRequestDataFiltersItemsItemFilter",
|
|
26
|
+
"ViewsCreateRequestDataFiltersItemsItemOperator",
|
|
27
|
+
"ViewsCreateRequestDataFiltersItemsItemValue",
|
|
21
28
|
"ViewsCreateRequestDataOrderingItem",
|
|
22
|
-
"ViewsCreateRequestDataOrderingItemDirection",
|
|
23
29
|
"ViewsUpdateRequestData",
|
|
24
30
|
"ViewsUpdateRequestDataFilters",
|
|
25
31
|
"ViewsUpdateRequestDataFiltersConjunction",
|
|
26
32
|
"ViewsUpdateRequestDataFiltersItemsItem",
|
|
33
|
+
"ViewsUpdateRequestDataFiltersItemsItemFilter",
|
|
34
|
+
"ViewsUpdateRequestDataFiltersItemsItemOperator",
|
|
35
|
+
"ViewsUpdateRequestDataFiltersItemsItemValue",
|
|
27
36
|
"ViewsUpdateRequestDataOrderingItem",
|
|
28
|
-
"ViewsUpdateRequestDataOrderingItemDirection",
|
|
29
37
|
]
|
|
@@ -16,12 +16,12 @@ class ViewsCreateRequestData(pydantic_v1.BaseModel):
|
|
|
16
16
|
|
|
17
17
|
filters: typing.Optional[ViewsCreateRequestDataFilters] = pydantic_v1.Field(default=None)
|
|
18
18
|
"""
|
|
19
|
-
Filters
|
|
19
|
+
Filters to apply on tasks. You can use [the helper class `Filters` from this page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
22
|
ordering: typing.Optional[typing.List[ViewsCreateRequestDataOrderingItem]] = pydantic_v1.Field(default=None)
|
|
23
23
|
"""
|
|
24
|
-
|
|
24
|
+
List of fields to order by. Fields are similar to filters but without the `filter:` prefix. To reverse the order, add a minus sign before the field name, e.g. `-tasks:created_at`.
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
def json(self, **kwargs: typing.Any) -> str:
|
|
@@ -11,17 +11,17 @@ from .views_create_request_data_filters_items_item import ViewsCreateRequestData
|
|
|
11
11
|
|
|
12
12
|
class ViewsCreateRequestDataFilters(pydantic_v1.BaseModel):
|
|
13
13
|
"""
|
|
14
|
-
Filters
|
|
14
|
+
Filters to apply on tasks. You can use [the helper class `Filters` from this page](https://labelstud.io/sdk/data_manager.html) to create Data Manager Filters.<br>Example: `{"conjunction": "or", "items": [{"filter": "filter:tasks:completed_at", "operator": "greater", "type": "Datetime", "value": "2021-01-01T00:00:00.000Z"}]}`
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
|
-
conjunction:
|
|
17
|
+
conjunction: ViewsCreateRequestDataFiltersConjunction = pydantic_v1.Field()
|
|
18
18
|
"""
|
|
19
|
-
|
|
19
|
+
Logical conjunction for the filters. This conjunction (either "or" or "and") will be applied to all items in the filters list. It is not possible to combine "or" and "and" within one list of filters. All filters will be either combined with "or" or with "and", but not a mix of both.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
items: typing.
|
|
22
|
+
items: typing.List[ViewsCreateRequestDataFiltersItemsItem] = pydantic_v1.Field()
|
|
23
23
|
"""
|
|
24
|
-
|
|
24
|
+
List of filter items
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
def json(self, **kwargs: typing.Any) -> str:
|
|
@@ -5,27 +5,30 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
from ...core.datetime_utils import serialize_datetime
|
|
7
7
|
from ...core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
|
|
8
|
+
from .views_create_request_data_filters_items_item_filter import ViewsCreateRequestDataFiltersItemsItemFilter
|
|
9
|
+
from .views_create_request_data_filters_items_item_operator import ViewsCreateRequestDataFiltersItemsItemOperator
|
|
10
|
+
from .views_create_request_data_filters_items_item_value import ViewsCreateRequestDataFiltersItemsItemValue
|
|
8
11
|
|
|
9
12
|
|
|
10
13
|
class ViewsCreateRequestDataFiltersItemsItem(pydantic_v1.BaseModel):
|
|
11
|
-
filter:
|
|
14
|
+
filter: ViewsCreateRequestDataFiltersItemsItemFilter = pydantic_v1.Field()
|
|
12
15
|
"""
|
|
13
|
-
|
|
16
|
+
Filter identifier, it should start with `filter:tasks:` prefix, e.g. `filter:tasks:agreement`. For `task.data` fields it may look like `filter:tasks:data.field_name`. If you need more info about columns, check the [Get data manager columns](#tag/Data-Manager/operation/api_dm_columns_list) API endpoint. Possible values:<br><li>`filter:tasks:agreement`<br> (Number) Agreement for annotation results for a specific task (Enterprise only)</li><br><li>`filter:tasks:annotations_results`<br> (String) Annotation results for the tasks</li><br><li>`filter:tasks:annotators`<br> (List) Annotators that completed the task (Community). Can include assigned annotators (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is integer</li><br><li>`filter:tasks:cancelled_annotations`<br> (Number) Number of cancelled or skipped annotations for the task</li><br><li>`filter:tasks:comments`<br> (Number) Number of comments in a task</li><br><li>`filter:tasks:completed_at`<br> (Datetime) Time when a task was fully annotated</li><br><li>`filter:tasks:created_at`<br> (Datetime) Time the task was created at</li><br><li>`filter:tasks:file_upload`<br> (String) Name of the file uploaded to create the tasks</li><br><li>`filter:tasks:ground_truth`<br> (Boolean) Ground truth status of the tasks</li><br><li>`filter:tasks:id`<br> (Number) Task ID</li><br><li>`filter:tasks:inner_id`<br> (Number) Task Inner ID, it starts from 1 for all projects</li><br><li>`filter:tasks:predictions_model_versions`<br> (String) Model version used for the predictions</li><br><li>`filter:tasks:predictions_results`<br> (String) Prediction results for the tasks</li><br><li>`filter:tasks:predictions_score`<br> (Number) Prediction score for the task</li><br><li>`filter:tasks:reviewed`<br> (Boolean) Whether the tasks have been reviewed (Enterprise only)</li><br><li>`filter:tasks:reviewers`<br> (String) Reviewers that reviewed the task, or assigned reviewers (Enterprise only). Important note: the filter `type` should be List, but the filter `value` is integer</li><br><li>`filter:tasks:reviews_accepted`<br> (Number) Number of annotations accepted for a task in review (Enterprise only)</li><br><li>`filter:tasks:reviews_rejected`<br> (Number) Number of annotations rejected for a task in review (Enterprise only)</li><br><li>`filter:tasks:total_annotations`<br> (Number) Total number of annotations on a task</li><br><li>`filter:tasks:total_predictions`<br> (Number) Total number of predictions for the task</li><br><li>`filter:tasks:unresolved_comment_count`<br> (Number) Number of unresolved comments in a task</li><br><li>`filter:tasks:updated_at`<br> (Datetime) Time the task was updated at (e.g. new annotation was created, review added, etc)</li>
|
|
14
17
|
"""
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
operator: ViewsCreateRequestDataFiltersItemsItemOperator = pydantic_v1.Field()
|
|
17
20
|
"""
|
|
18
|
-
|
|
21
|
+
Filter operator. Possible values:<br><li>`contains`<br> Contains</li><br><li>`ends_with`<br> Ends with</li><br><li>`equal`<br> Equal to</li><br><li>`exists`<br> Exists</li><br><li>`greater`<br> Greater than</li><br><li>`greater_or_equal`<br> Greater than or equal to</li><br><li>`in`<br> Is between min and max values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`less`<br> Less than</li><br><li>`less_or_equal`<br> Less than or equal to</li><br><li>`not_contains`<br> Does not contain</li><br><li>`not_equal`<br> Not equal to</li><br><li>`not_exists`<br> Does not exist</li><br><li>`not_in`<br> Is not between min and max values, so the filter `value` should be e.g. `{"min": 1, "max": 7}`</li><br><li>`starts_with`<br> Starts with</li>
|
|
19
22
|
"""
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
type: str = pydantic_v1.Field()
|
|
22
25
|
"""
|
|
23
|
-
|
|
26
|
+
Type of the filter value. Possible values:<br><li>`Boolean`<br> Boolean</li><br><li>`Datetime`<br> Datetime string in `strftime('%Y-%m-%dT%H:%M:%S.%fZ')` format</li><br><li>`List`<br> List of items</li><br><li>`Number`<br> Float or Integer</li><br><li>`String`<br> String</li><br><li>`Unknown`<br> Unknown is explicitly converted to string format</li>
|
|
24
27
|
"""
|
|
25
28
|
|
|
26
|
-
value:
|
|
29
|
+
value: ViewsCreateRequestDataFiltersItemsItemValue = pydantic_v1.Field()
|
|
27
30
|
"""
|
|
28
|
-
|
|
31
|
+
Value to filter by
|
|
29
32
|
"""
|
|
30
33
|
|
|
31
34
|
def json(self, **kwargs: typing.Any) -> str:
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
ViewsCreateRequestDataFiltersItemsItemFilter = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"filter:tasks:agreement",
|
|
8
|
+
"filter:tasks:annotations_results",
|
|
9
|
+
"filter:tasks:annotators",
|
|
10
|
+
"filter:tasks:cancelled_annotations",
|
|
11
|
+
"filter:tasks:comments",
|
|
12
|
+
"filter:tasks:completed_at",
|
|
13
|
+
"filter:tasks:created_at",
|
|
14
|
+
"filter:tasks:file_upload",
|
|
15
|
+
"filter:tasks:ground_truth",
|
|
16
|
+
"filter:tasks:id",
|
|
17
|
+
"filter:tasks:inner_id",
|
|
18
|
+
"filter:tasks:predictions_model_versions",
|
|
19
|
+
"filter:tasks:predictions_results",
|
|
20
|
+
"filter:tasks:predictions_score",
|
|
21
|
+
"filter:tasks:reviewed",
|
|
22
|
+
"filter:tasks:reviewers",
|
|
23
|
+
"filter:tasks:reviews_accepted",
|
|
24
|
+
"filter:tasks:reviews_rejected",
|
|
25
|
+
"filter:tasks:total_annotations",
|
|
26
|
+
"filter:tasks:total_predictions",
|
|
27
|
+
"filter:tasks:unresolved_comment_count",
|
|
28
|
+
"filter:tasks:updated_at",
|
|
29
|
+
],
|
|
30
|
+
typing.Any,
|
|
31
|
+
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
ViewsCreateRequestDataFiltersItemsItemOperator = typing.Union[
|
|
6
|
+
typing.Literal[
|
|
7
|
+
"contains",
|
|
8
|
+
"ends_with",
|
|
9
|
+
"equal",
|
|
10
|
+
"exists",
|
|
11
|
+
"greater",
|
|
12
|
+
"greater_or_equal",
|
|
13
|
+
"in",
|
|
14
|
+
"less",
|
|
15
|
+
"less_or_equal",
|
|
16
|
+
"not_contains",
|
|
17
|
+
"not_equal",
|
|
18
|
+
"not_exists",
|
|
19
|
+
"not_in",
|
|
20
|
+
"starts_with",
|
|
21
|
+
],
|
|
22
|
+
typing.Any,
|
|
23
|
+
]
|