From 579d1972672e390417d7779b7d66a79ad18ee8f6 Mon Sep 17 00:00:00 2001
From: Yoann Schneider <yschneider@teklia.com>
Date: Tue, 7 May 2024 10:09:36 +0200
Subject: [PATCH] Fix polygon storage

---
 worker_generic_training_dataset/__init__.py | 3 +++
 worker_generic_training_dataset/utils.py    | 7 ++-----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/worker_generic_training_dataset/__init__.py b/worker_generic_training_dataset/__init__.py
index bfa5077..07534c6 100644
--- a/worker_generic_training_dataset/__init__.py
+++ b/worker_generic_training_dataset/__init__.py
@@ -159,10 +159,13 @@ class Extractor(DatasetWorker):
         polygon = element.polygon
 
         if isinstance(element, Element):
+            # SQL result
             image = element.image
             wk_version = get_object_id(element.worker_version)
             wk_run = get_object_id(element.worker_run)
         else:
+            # API result
+            polygon = json.dumps(polygon)
             image = element.zone.image
             wk_version = (
                 element.worker_version
diff --git a/worker_generic_training_dataset/utils.py b/worker_generic_training_dataset/utils.py
index 9ca2d47..841a765 100644
--- a/worker_generic_training_dataset/utils.py
+++ b/worker_generic_training_dataset/utils.py
@@ -9,11 +9,8 @@ from arkindex_worker.image import BoundingBox, polygon_bounding_box
 logger: Logger = logging.getLogger(__name__)
 
 
-def build_image_url(image, polygon: str | list[list[int]]) -> str:
-    if isinstance(polygon, str):
-        polygon = json.loads(polygon)
-
-    bbox: BoundingBox = polygon_bounding_box(polygon)
+def build_image_url(image, polygon: str) -> str:
+    bbox: BoundingBox = polygon_bounding_box(json.loads(polygon))
     x: int
     y: int
     width: int
-- 
GitLab