From 0552b16e5f380f91e3f164e6afa71664e0addf02 Mon Sep 17 00:00:00 2001 From: gerry Date: Mon, 20 Jul 2026 18:34:50 -0700 Subject: [PATCH 1/2] [PTDT-5210] Add Tool.Type.MARKER for marker ontologies Ontologies containing the new video marker tool currently make Tool.from_dict raise ValueError('marker' is not a valid Tool.Type), breaking any SDK code that fetches such an ontology. Adds Tool.Type.MARKER = 'marker' (matching the platform's normalized ontology kind); construction, from_dict/asdict round-trips, and ontology creation work through the base Tool class with no dispatch changes. Bumps the SDK to 7.10.0; the changelog notes that marker ontologies require 7.10.0 or later. --- libs/labelbox/CHANGELOG.md | 4 ++++ libs/labelbox/pyproject.toml | 2 +- libs/labelbox/src/labelbox/__init__.py | 2 +- libs/labelbox/src/labelbox/schema/ontology.py | 1 + libs/labelbox/tests/unit/test_unit_ontology.py | 18 ++++++++++++++++++ 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/libs/labelbox/CHANGELOG.md b/libs/labelbox/CHANGELOG.md index 247e07852..9f70d9dc4 100644 --- a/libs/labelbox/CHANGELOG.md +++ b/libs/labelbox/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +# Version 7.10.0 (2026-07-20) +## Added +* Add support for reading and creating marker ontology tools. Marker ontologies require Labelbox SDK 7.10.0 or later. + # Version 7.9.0 (2026-07-09) ## Added * Add optional `batch_ids` parameter to `Project.get_overview()` to return workflow state counts scoped to one or more batches ([#2060](https://github.com/Labelbox/labelbox-python/pull/2060)) diff --git a/libs/labelbox/pyproject.toml b/libs/labelbox/pyproject.toml index d2eeb165d..b50df665a 100644 --- a/libs/labelbox/pyproject.toml +++ b/libs/labelbox/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "labelbox" -version = "7.9.0" +version = "7.10.0" description = "Labelbox Python API" authors = [{ name = "Labelbox", email = "engineering@labelbox.com" }] dependencies = [ diff --git a/libs/labelbox/src/labelbox/__init__.py b/libs/labelbox/src/labelbox/__init__.py index 4882e0582..0c7b77484 100644 --- a/libs/labelbox/src/labelbox/__init__.py +++ b/libs/labelbox/src/labelbox/__init__.py @@ -1,6 +1,6 @@ name = "labelbox" -__version__ = "7.9.0" +__version__ = "7.10.0" from labelbox.client import Client from labelbox.schema.annotation_import import ( diff --git a/libs/labelbox/src/labelbox/schema/ontology.py b/libs/labelbox/src/labelbox/schema/ontology.py index 897759af1..6d0bd953a 100644 --- a/libs/labelbox/src/labelbox/schema/ontology.py +++ b/libs/labelbox/src/labelbox/schema/ontology.py @@ -94,6 +94,7 @@ class Type(Enum): MESSAGE_SINGLE_SELECTION = "message-single-selection" MESSAGE_MULTI_SELECTION = "message-multi-selection" MESSAGE_RANKING = "message-ranking" + MARKER = "marker" tool: Type name: str diff --git a/libs/labelbox/tests/unit/test_unit_ontology.py b/libs/labelbox/tests/unit/test_unit_ontology.py index ca0984aa2..0fb6d9155 100644 --- a/libs/labelbox/tests/unit/test_unit_ontology.py +++ b/libs/labelbox/tests/unit/test_unit_ontology.py @@ -164,6 +164,24 @@ def test_create_tool(tool_type) -> None: assert t.tool == tool_type +def test_marker_tool_from_dict_asdict_round_trip() -> None: + marker = { + "schemaNodeId": "marker-schema-node", + "featureSchemaId": "marker-feature-schema", + "required": False, + "name": "Scene boundary", + "color": "#FF0000", + "tool": "marker", + "classifications": [], + "attributes": None, + } + + tool = Tool.from_dict(marker) + + assert tool.tool is Tool.Type.MARKER + assert tool.asdict() == marker + + @pytest.mark.parametrize("class_type", list(Classification.Type)) def test_create_classification(class_type) -> None: c = Classification(class_type=class_type, name="classification") From 9ddadfcf742cdd69d9efa48bf369a8a4c09eb5ce Mon Sep 17 00:00:00 2001 From: gerry Date: Tue, 21 Jul 2026 15:00:22 -0700 Subject: [PATCH 2/2] [PTDT-5210] Move the 7.10.0 release prep to a separate release PR --- libs/labelbox/CHANGELOG.md | 4 ---- libs/labelbox/pyproject.toml | 2 +- libs/labelbox/src/labelbox/__init__.py | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libs/labelbox/CHANGELOG.md b/libs/labelbox/CHANGELOG.md index 9f70d9dc4..247e07852 100644 --- a/libs/labelbox/CHANGELOG.md +++ b/libs/labelbox/CHANGELOG.md @@ -1,8 +1,4 @@ # Changelog -# Version 7.10.0 (2026-07-20) -## Added -* Add support for reading and creating marker ontology tools. Marker ontologies require Labelbox SDK 7.10.0 or later. - # Version 7.9.0 (2026-07-09) ## Added * Add optional `batch_ids` parameter to `Project.get_overview()` to return workflow state counts scoped to one or more batches ([#2060](https://github.com/Labelbox/labelbox-python/pull/2060)) diff --git a/libs/labelbox/pyproject.toml b/libs/labelbox/pyproject.toml index b50df665a..d2eeb165d 100644 --- a/libs/labelbox/pyproject.toml +++ b/libs/labelbox/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "labelbox" -version = "7.10.0" +version = "7.9.0" description = "Labelbox Python API" authors = [{ name = "Labelbox", email = "engineering@labelbox.com" }] dependencies = [ diff --git a/libs/labelbox/src/labelbox/__init__.py b/libs/labelbox/src/labelbox/__init__.py index 0c7b77484..4882e0582 100644 --- a/libs/labelbox/src/labelbox/__init__.py +++ b/libs/labelbox/src/labelbox/__init__.py @@ -1,6 +1,6 @@ name = "labelbox" -__version__ = "7.10.0" +__version__ = "7.9.0" from labelbox.client import Client from labelbox.schema.annotation_import import (