From c4fb4614f634f07ac504340a1aa7cd04f6a975a2 Mon Sep 17 00:00:00 2001 From: Win Cheng Date: Thu, 18 Sep 2025 11:01:47 -0700 Subject: [PATCH 1/3] typed now as object instead of object detection --- jigsawstack/vision.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/jigsawstack/vision.py b/jigsawstack/vision.py index 280b71d..072f441 100644 --- a/jigsawstack/vision.py +++ b/jigsawstack/vision.py @@ -102,9 +102,9 @@ class ObjectDetectionParams(TypedDict): List of prompts for object detection """ - features: NotRequired[List[Literal["object_detection", "gui"]]] + features: NotRequired[List[Literal["object", "gui"]]] """ - List of features to enable: object_detection, gui + List of features to enable: object, gui """ annotated_image: NotRequired[bool] @@ -215,7 +215,9 @@ def vocr( return resp @overload - def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... + def object_detection( + self, params: ObjectDetectionParams + ) -> ObjectDetectionResponse: ... @overload def object_detection( self, blob: bytes, options: ObjectDetectionParams = None @@ -295,7 +297,9 @@ async def vocr( return resp @overload - async def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... + async def object_detection( + self, params: ObjectDetectionParams + ) -> ObjectDetectionResponse: ... @overload async def object_detection( self, blob: bytes, options: ObjectDetectionParams = None From a9002486acfa527bdfd61a5e3169ce722eeb9106 Mon Sep 17 00:00:00 2001 From: Win Cheng Date: Fri, 19 Sep 2025 16:52:56 -0700 Subject: [PATCH 2/3] updated test --- tests/test_object_detection.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_object_detection.py b/tests/test_object_detection.py index 1fbd5ca..38e92c6 100644 --- a/tests/test_object_detection.py +++ b/tests/test_object_detection.py @@ -18,9 +18,7 @@ jigsaw = jigsawstack.JigsawStack(api_key=os.getenv("JIGSAWSTACK_API_KEY")) async_jigsaw = jigsawstack.AsyncJigsawStack(api_key=os.getenv("JIGSAWSTACK_API_KEY")) -IMAGE_URL = ( - "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Collabo%201080x842.jpg" -) +IMAGE_URL = "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Collabo%201080x842.jpg" TEST_CASES = [ { @@ -49,7 +47,7 @@ "name": "with_blob_both_features", "blob": IMAGE_URL, "options": { - "features": ["object_detection", "gui"], + "features": ["object", "gui"], "annotated_image": True, "return_type": "url", }, @@ -63,7 +61,7 @@ "name": "with_blob_object_detection_features", "blob": IMAGE_URL, "options": { - "features": ["object_detection"], + "features": ["object"], "annotated_image": True, "return_type": "base64", }, @@ -80,7 +78,7 @@ "name": "with_all_options", "blob": IMAGE_URL, "options": { - "features": ["object_detection", "gui"], + "features": ["object", "gui"], "prompts": ["car", "road", "tree"], "annotated_image": True, "return_type": "base64", @@ -104,7 +102,9 @@ def test_object_detection(self, test_case): if test_case.get("blob"): # Download blob content blob_content = requests.get(test_case["blob"]).content - result = jigsaw.vision.object_detection(blob_content, test_case.get("options", {})) + result = jigsaw.vision.object_detection( + blob_content, test_case.get("options", {}) + ) else: # Use params directly result = jigsaw.vision.object_detection(test_case["params"]) From 65902c47ff57bfecbd3f9a505199db674411cfa4 Mon Sep 17 00:00:00 2001 From: Win Cheng Date: Fri, 19 Sep 2025 18:23:24 -0700 Subject: [PATCH 3/3] update linting --- jigsawstack/vision.py | 8 ++------ tests/test_object_detection.py | 8 ++++---- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/jigsawstack/vision.py b/jigsawstack/vision.py index 072f441..8eccb51 100644 --- a/jigsawstack/vision.py +++ b/jigsawstack/vision.py @@ -215,9 +215,7 @@ def vocr( return resp @overload - def object_detection( - self, params: ObjectDetectionParams - ) -> ObjectDetectionResponse: ... + def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... @overload def object_detection( self, blob: bytes, options: ObjectDetectionParams = None @@ -297,9 +295,7 @@ async def vocr( return resp @overload - async def object_detection( - self, params: ObjectDetectionParams - ) -> ObjectDetectionResponse: ... + async def object_detection(self, params: ObjectDetectionParams) -> ObjectDetectionResponse: ... @overload async def object_detection( self, blob: bytes, options: ObjectDetectionParams = None diff --git a/tests/test_object_detection.py b/tests/test_object_detection.py index 38e92c6..b7286aa 100644 --- a/tests/test_object_detection.py +++ b/tests/test_object_detection.py @@ -18,7 +18,9 @@ jigsaw = jigsawstack.JigsawStack(api_key=os.getenv("JIGSAWSTACK_API_KEY")) async_jigsaw = jigsawstack.AsyncJigsawStack(api_key=os.getenv("JIGSAWSTACK_API_KEY")) -IMAGE_URL = "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Collabo%201080x842.jpg" +IMAGE_URL = ( + "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Collabo%201080x842.jpg" +) TEST_CASES = [ { @@ -102,9 +104,7 @@ def test_object_detection(self, test_case): if test_case.get("blob"): # Download blob content blob_content = requests.get(test_case["blob"]).content - result = jigsaw.vision.object_detection( - blob_content, test_case.get("options", {}) - ) + result = jigsaw.vision.object_detection(blob_content, test_case.get("options", {})) else: # Use params directly result = jigsaw.vision.object_detection(test_case["params"])