From b5950589524069bdfd5c39d2a7a10e0162e59df4 Mon Sep 17 00:00:00 2001 From: Samuel Fendell Date: Wed, 5 Jun 2024 13:24:48 -0700 Subject: [PATCH] [PLT-385] Add point cloud media override support to exports v2 (already supported in graphql). --- .../src/labelbox/data/annotation_types/__init__.py | 7 ++++--- .../labelbox/data/annotation_types/data/__init__.py | 7 ++++--- .../labelbox/data/annotation_types/data/point_cloud.py | 7 +++++++ libs/labelbox/src/labelbox/schema/media_type.py | 1 + libs/labelbox/tests/data/annotation_import/conftest.py | 10 +--------- .../tests/data/annotation_import/test_data_types.py | 2 ++ .../data/annotation_import/test_generic_data_types.py | 2 ++ 7 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 libs/labelbox/src/labelbox/data/annotation_types/data/point_cloud.py diff --git a/libs/labelbox/src/labelbox/data/annotation_types/__init__.py b/libs/labelbox/src/labelbox/data/annotation_types/__init__.py index 45a78bd02..996ae2f01 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/__init__.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/__init__.py @@ -39,12 +39,13 @@ from .data import DocumentData from .data import HTMLData from .data import ImageData -from .data import MaskData -from .data import TextData -from .data import VideoData from .data import LlmPromptResponseCreationData from .data import LlmPromptCreationData from .data import LlmResponseCreationData +from .data import MaskData +from .data import PointCloudData +from .data import TextData +from .data import VideoData from .label import Label from .collection import LabelList diff --git a/libs/labelbox/src/labelbox/data/annotation_types/data/__init__.py b/libs/labelbox/src/labelbox/data/annotation_types/data/__init__.py index 99978caac..56e384a1f 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/data/__init__.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/data/__init__.py @@ -3,10 +3,11 @@ from .dicom import DicomData from .document import DocumentData from .html import HTMLData +from .llm_prompt_response_creation import LlmPromptResponseCreationData +from .llm_prompt_creation import LlmPromptCreationData +from .llm_response_creation import LlmResponseCreationData +from .point_cloud import PointCloudData from .raster import ImageData from .raster import MaskData from .text import TextData from .video import VideoData -from .llm_prompt_response_creation import LlmPromptResponseCreationData -from .llm_prompt_creation import LlmPromptCreationData -from .llm_response_creation import LlmResponseCreationData \ No newline at end of file diff --git a/libs/labelbox/src/labelbox/data/annotation_types/data/point_cloud.py b/libs/labelbox/src/labelbox/data/annotation_types/data/point_cloud.py new file mode 100644 index 000000000..0721c9bec --- /dev/null +++ b/libs/labelbox/src/labelbox/data/annotation_types/data/point_cloud.py @@ -0,0 +1,7 @@ +from labelbox.typing_imports import Literal +from labelbox.utils import _NoCoercionMixin +from .base_data import BaseData + + +class PointCloudData(BaseData, _NoCoercionMixin): + class_name: Literal["PointCloudData"] = "PointCloudData" diff --git a/libs/labelbox/src/labelbox/schema/media_type.py b/libs/labelbox/src/labelbox/schema/media_type.py index 83ba52207..a833305db 100644 --- a/libs/labelbox/src/labelbox/schema/media_type.py +++ b/libs/labelbox/src/labelbox/schema/media_type.py @@ -13,6 +13,7 @@ class MediaType(Enum): LLMPromptCreation = "LLM_PROMPT_CREATION" LLMPromptResponseCreation = "LLM_PROMPT_RESPONSE_CREATION" Pdf = "PDF" + PointCloud = "POINT_CLOUD" Simple_Tile = "TMS_SIMPLE" Text = "TEXT" Tms_Geo = "TMS_GEO" diff --git a/libs/labelbox/tests/data/annotation_import/conftest.py b/libs/labelbox/tests/data/annotation_import/conftest.py index 7af011bdc..f25b85911 100644 --- a/libs/labelbox/tests/data/annotation_import/conftest.py +++ b/libs/labelbox/tests/data/annotation_import/conftest.py @@ -1921,17 +1921,9 @@ def rename_cuid_key_recursive(d): @staticmethod def set_project_media_type_from_data_type(project, data_type_class): - def to_pascal_case(name: str) -> str: - return "".join([word.capitalize() for word in name.split("_")]) - - data_type_string = data_type_class.__name__[:-4].lower() - media_type = to_pascal_case(data_type_string) + media_type = data_type_class.__name__[:-4] if media_type == "Conversation": media_type = "Conversational" - elif media_type == "Llmpromptcreation": - media_type = "LLMPromptCreation" - elif media_type == "Llmpromptresponsecreation": - media_type = "LLMPromptResponseCreation" elif media_type == "Llmresponsecreation": media_type = "Text" elif media_type == "Genericdatarow": diff --git a/libs/labelbox/tests/data/annotation_import/test_data_types.py b/libs/labelbox/tests/data/annotation_import/test_data_types.py index 75e5fd4c8..339fd6af3 100644 --- a/libs/labelbox/tests/data/annotation_import/test_data_types.py +++ b/libs/labelbox/tests/data/annotation_import/test_data_types.py @@ -13,6 +13,7 @@ DicomData, DocumentData, HTMLData, + PointCloud, ImageData, TextData, LlmPromptCreationData, @@ -154,6 +155,7 @@ def create_data_row_for_project(project, dataset, data_row_ndjson, batch_name): DocumentData, HTMLData, ImageData, + PointCloud, TextData, LlmPromptCreationData, LlmPromptResponseCreationData, diff --git a/libs/labelbox/tests/data/annotation_import/test_generic_data_types.py b/libs/labelbox/tests/data/annotation_import/test_generic_data_types.py index a88586a71..a8102714a 100644 --- a/libs/labelbox/tests/data/annotation_import/test_generic_data_types.py +++ b/libs/labelbox/tests/data/annotation_import/test_generic_data_types.py @@ -13,6 +13,7 @@ DocumentData, HTMLData, ImageData, + PointCloudData, TextData, LlmPromptCreationData, LlmPromptResponseCreationData, @@ -154,6 +155,7 @@ def validate_iso_format(date_string: str): ConversationData, DocumentData, DicomData, + PointCloudData, LlmPromptCreationData, LlmPromptResponseCreationData, LlmResponseCreationData,