From 762ff9d193c633c898cdc4827655961808244112 Mon Sep 17 00:00:00 2001 From: Andrii Klymchuk Date: Wed, 13 Sep 2023 07:55:06 +0300 Subject: [PATCH 1/2] [ANN-2419][internal] Make mask annotation's sparse_rle field optional --- darwin/utils/utils.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/darwin/utils/utils.py b/darwin/utils/utils.py index e4907f50e..a65b35efa 100644 --- a/darwin/utils/utils.py +++ b/darwin/utils/utils.py @@ -764,19 +764,16 @@ def _parse_darwin_raster_annotation(annotation: dict) -> Optional[dt.Annotation] def _parse_darwin_mask_annotation(annotation: dict) -> Optional[dt.Annotation]: - if not annotation.get("mask"): - raise ValueError("Mask annotation must have a 'mask' field") - id: Optional[str] = annotation.get("id") name: Optional[str] = annotation.get("name") mask: Optional[dt.JSONFreeForm] = annotation.get("mask") slot_names: Optional[List[str]] = parse_slot_names(annotation) - if not id or not name or not mask or not slot_names: + if not id or not name or mask == None or not slot_names: raise ValueError("Mask annotation must have an 'id', 'name', 'slot_names' and 'mask' field") - if (not "sparse_rle" in mask) or (not mask["sparse_rle"]) == None: - raise ValueError("Mask annotation must have a 'sparse_rle' field containing a null value") + if ("sparse_rle" in mask) and (mask["sparse_rle"] != None): + raise ValueError("Mask annotation field 'sparse_rle' must contain a null value") new_annotation = dt.Annotation( dt.AnnotationClass(name, "mask"), From ff2ebd846dea84ff3d9cf71b32466f229196d349 Mon Sep 17 00:00:00 2001 From: Andrii Klymchuk Date: Wed, 13 Sep 2023 11:49:10 +0300 Subject: [PATCH 2/2] fix equality comparisons --- darwin/utils/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/darwin/utils/utils.py b/darwin/utils/utils.py index a65b35efa..41572c325 100644 --- a/darwin/utils/utils.py +++ b/darwin/utils/utils.py @@ -769,10 +769,10 @@ def _parse_darwin_mask_annotation(annotation: dict) -> Optional[dt.Annotation]: mask: Optional[dt.JSONFreeForm] = annotation.get("mask") slot_names: Optional[List[str]] = parse_slot_names(annotation) - if not id or not name or mask == None or not slot_names: + if not id or not name or mask is None or not slot_names: raise ValueError("Mask annotation must have an 'id', 'name', 'slot_names' and 'mask' field") - if ("sparse_rle" in mask) and (mask["sparse_rle"] != None): + if ("sparse_rle" in mask) and (mask["sparse_rle"] is not None): raise ValueError("Mask annotation field 'sparse_rle' must contain a null value") new_annotation = dt.Annotation(