diff --git a/.mock/definition/annotations.yml b/.mock/definition/annotations.yml index 6a7ff3680..834b256a5 100644 --- a/.mock/definition/annotations.yml +++ b/.mock/definition/annotations.yml @@ -447,6 +447,7 @@ service: body: properties: tasks: optional> + selectedItems: optional lead_time: optional project: optional result: optional> @@ -464,6 +465,24 @@ service: source: openapi: openapi/openapi.yaml types: + AnnotationsCreateBulkRequestSelectedItems: + properties: + all: + type: optional + docs: > + Indicates whether to apply the operation to all tasks. If true, this + overrides any included or excluded lists. + included: + type: optional> + docs: | + An explicit list of task IDs to include. + excluded: + type: optional> + docs: | + An explicit list of task IDs to exclude. + source: + openapi: openapi/openapi.yaml + inline: true AnnotationsCreateBulkResponseItem: properties: id: optional diff --git a/reference.md b/reference.md index 26280acfd..e87e76aa9 100644 --- a/reference.md +++ b/reference.md @@ -608,6 +608,14 @@ client.annotations.create_bulk()
+**selected_items:** `typing.Optional[AnnotationsCreateBulkRequestSelectedItems]` + +
+
+ +
+
+ **lead_time:** `typing.Optional[float]`
diff --git a/src/label_studio_sdk/__init__.py b/src/label_studio_sdk/__init__.py index de503561a..4533e6a85 100644 --- a/src/label_studio_sdk/__init__.py +++ b/src/label_studio_sdk/__init__.py @@ -134,7 +134,7 @@ ActionsCreateRequestSelectedItemsExcluded, ActionsCreateRequestSelectedItemsIncluded, ) -from .annotations import AnnotationsCreateBulkResponseItem +from .annotations import AnnotationsCreateBulkRequestSelectedItems, AnnotationsCreateBulkResponseItem from .client import AsyncLabelStudio, LabelStudio from .environment import LabelStudioEnvironment from .export_storage import ExportStorageListTypesResponseItem @@ -192,6 +192,7 @@ "Annotation", "AnnotationFilterOptions", "AnnotationLastAction", + "AnnotationsCreateBulkRequestSelectedItems", "AnnotationsCreateBulkResponseItem", "AnnotationsDmField", "AnnotationsDmFieldLastAction", diff --git a/src/label_studio_sdk/annotations/__init__.py b/src/label_studio_sdk/annotations/__init__.py index 4af557c95..fb830a2b1 100644 --- a/src/label_studio_sdk/annotations/__init__.py +++ b/src/label_studio_sdk/annotations/__init__.py @@ -1,5 +1,5 @@ # This file was auto-generated by Fern from our API Definition. -from .types import AnnotationsCreateBulkResponseItem +from .types import AnnotationsCreateBulkRequestSelectedItems, AnnotationsCreateBulkResponseItem -__all__ = ["AnnotationsCreateBulkResponseItem"] +__all__ = ["AnnotationsCreateBulkRequestSelectedItems", "AnnotationsCreateBulkResponseItem"] diff --git a/src/label_studio_sdk/annotations/client.py b/src/label_studio_sdk/annotations/client.py index 44512e3e6..3ada05018 100644 --- a/src/label_studio_sdk/annotations/client.py +++ b/src/label_studio_sdk/annotations/client.py @@ -8,7 +8,9 @@ from ..core.pydantic_utilities import parse_obj_as from json.decoder import JSONDecodeError from ..core.api_error import ApiError +from .types.annotations_create_bulk_request_selected_items import AnnotationsCreateBulkRequestSelectedItems from .types.annotations_create_bulk_response_item import AnnotationsCreateBulkResponseItem +from ..core.serialization import convert_and_respect_annotation_metadata from ..core.client_wrapper import AsyncClientWrapper # this is used as the default value for optional parameters @@ -427,6 +429,7 @@ def create_bulk( self, *, tasks: typing.Optional[typing.Sequence[int]] = OMIT, + selected_items: typing.Optional[AnnotationsCreateBulkRequestSelectedItems] = OMIT, lead_time: typing.Optional[float] = OMIT, project: typing.Optional[int] = OMIT, result: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, @@ -439,6 +442,8 @@ def create_bulk( ---------- tasks : typing.Optional[typing.Sequence[int]] + selected_items : typing.Optional[AnnotationsCreateBulkRequestSelectedItems] + lead_time : typing.Optional[float] project : typing.Optional[int] @@ -467,6 +472,9 @@ def create_bulk( method="POST", json={ "tasks": tasks, + "selectedItems": convert_and_respect_annotation_metadata( + object_=selected_items, annotation=AnnotationsCreateBulkRequestSelectedItems, direction="write" + ), "lead_time": lead_time, "project": project, "result": result, @@ -946,6 +954,7 @@ async def create_bulk( self, *, tasks: typing.Optional[typing.Sequence[int]] = OMIT, + selected_items: typing.Optional[AnnotationsCreateBulkRequestSelectedItems] = OMIT, lead_time: typing.Optional[float] = OMIT, project: typing.Optional[int] = OMIT, result: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, @@ -958,6 +967,8 @@ async def create_bulk( ---------- tasks : typing.Optional[typing.Sequence[int]] + selected_items : typing.Optional[AnnotationsCreateBulkRequestSelectedItems] + lead_time : typing.Optional[float] project : typing.Optional[int] @@ -994,6 +1005,9 @@ async def main() -> None: method="POST", json={ "tasks": tasks, + "selectedItems": convert_and_respect_annotation_metadata( + object_=selected_items, annotation=AnnotationsCreateBulkRequestSelectedItems, direction="write" + ), "lead_time": lead_time, "project": project, "result": result, diff --git a/src/label_studio_sdk/annotations/types/__init__.py b/src/label_studio_sdk/annotations/types/__init__.py index 2bf2b211c..0ec046f76 100644 --- a/src/label_studio_sdk/annotations/types/__init__.py +++ b/src/label_studio_sdk/annotations/types/__init__.py @@ -1,5 +1,6 @@ # This file was auto-generated by Fern from our API Definition. +from .annotations_create_bulk_request_selected_items import AnnotationsCreateBulkRequestSelectedItems from .annotations_create_bulk_response_item import AnnotationsCreateBulkResponseItem -__all__ = ["AnnotationsCreateBulkResponseItem"] +__all__ = ["AnnotationsCreateBulkRequestSelectedItems", "AnnotationsCreateBulkResponseItem"] diff --git a/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py b/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py new file mode 100644 index 000000000..c3209d6c3 --- /dev/null +++ b/src/label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py @@ -0,0 +1,34 @@ +# This file was auto-generated by Fern from our API Definition. + +from ...core.pydantic_utilities import UniversalBaseModel +import typing_extensions +import typing +from ...core.serialization import FieldMetadata +import pydantic +from ...core.pydantic_utilities import IS_PYDANTIC_V2 + + +class AnnotationsCreateBulkRequestSelectedItems(UniversalBaseModel): + all_: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="all")] = pydantic.Field(default=None) + """ + Indicates whether to apply the operation to all tasks. If true, this overrides any included or excluded lists. + """ + + included: typing.Optional[typing.List[int]] = pydantic.Field(default=None) + """ + An explicit list of task IDs to include. + """ + + excluded: typing.Optional[typing.List[int]] = pydantic.Field(default=None) + """ + An explicit list of task IDs to exclude. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow