diff --git a/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py b/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py index 03e1dd62c..0707d6ebb 100644 --- a/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py +++ b/libs/labelbox/src/labelbox/data/annotation_types/geometry/mask.py @@ -62,7 +62,13 @@ def geometry(self) -> Dict[str, Tuple[int, int, int]]: if not holes.is_valid: holes = holes.buffer(0) - return external_polygons.difference(holes).__geo_interface__ + result = external_polygons.difference(holes) + + # Ensure consistent MultiPolygon output across Python versions + if hasattr(result, "geom_type") and result.geom_type == "Polygon": + result = MultiPolygon([result]) + + return result.__geo_interface__ def draw( self,