From 4c0f5fab2e8aca8b9af87ac4e6ef4aa9332720d7 Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 2 Sep 2024 18:26:47 +0000 Subject: [PATCH 01/10] add paligemma format to enable testing --- tests/datasets/paligemma/README.dataset.txt | 6 ++++++ ..._png.rf.5bf49f8aa575f586001710b1d79968fd.jpg | Bin 0 -> 40237 bytes ..._png.rf.5be427175f28f7042e34636bd0dd89cc.jpg | Bin 0 -> 34591 bytes ..._png.rf.5c02d037f48bc3df56e6d0e3e6e053e4.jpg | Bin 0 -> 35715 bytes ..._png.rf.011b80b16a622820ca92b91543f5a44d.jpg | Bin 0 -> 19138 bytes .../paligemma/dataset/_annotations.test.jsonl | 9 +++++++++ .../paligemma/dataset/_annotations.train.jsonl | 4 ++++ .../paligemma/dataset/_annotations.valid.jsonl | 3 +++ ..._png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg | Bin 0 -> 27380 bytes ..._png.rf.011864613b53c6b6a0c0a7086b657a71.jpg | Bin 0 -> 30671 bytes ..._png.rf.000949c9aafeb8c594a936a0ef92993f.jpg | Bin 0 -> 37558 bytes 11 files changed, 22 insertions(+) create mode 100644 tests/datasets/paligemma/README.dataset.txt create mode 100644 tests/datasets/paligemma/dataset/5964b4c268577652f171d52dc317d82d_png.rf.5bf49f8aa575f586001710b1d79968fd.jpg create mode 100644 tests/datasets/paligemma/dataset/5e2369e237c0c612d09181b63fb20480_png.rf.5be427175f28f7042e34636bd0dd89cc.jpg create mode 100644 tests/datasets/paligemma/dataset/63a6c783083d5c7c7290bc81877a4ee9_png.rf.5c02d037f48bc3df56e6d0e3e6e053e4.jpg create mode 100644 tests/datasets/paligemma/dataset/900e8ea2a3c336686c23978e800af239_png.rf.011b80b16a622820ca92b91543f5a44d.jpg create mode 100644 tests/datasets/paligemma/dataset/_annotations.test.jsonl create mode 100644 tests/datasets/paligemma/dataset/_annotations.train.jsonl create mode 100644 tests/datasets/paligemma/dataset/_annotations.valid.jsonl create mode 100644 tests/datasets/paligemma/dataset/de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg create mode 100644 tests/datasets/paligemma/dataset/de960ddd58344041754d5f984f8f82c2_png.rf.011864613b53c6b6a0c0a7086b657a71.jpg create mode 100644 tests/datasets/paligemma/dataset/fa68474f5b30c3d647ec1f5cddf41570_png.rf.000949c9aafeb8c594a936a0ef92993f.jpg diff --git a/tests/datasets/paligemma/README.dataset.txt b/tests/datasets/paligemma/README.dataset.txt new file mode 100644 index 00000000..cdee4828 --- /dev/null +++ b/tests/datasets/paligemma/README.dataset.txt @@ -0,0 +1,6 @@ +# ChartQA > 2024-08-28 7:21pm +https://universe.roboflow.com/roboflow-jvuqo/chartqa-c9zny + +Provided by a Roboflow user +License: CC BY 4.0 + diff --git a/tests/datasets/paligemma/dataset/5964b4c268577652f171d52dc317d82d_png.rf.5bf49f8aa575f586001710b1d79968fd.jpg b/tests/datasets/paligemma/dataset/5964b4c268577652f171d52dc317d82d_png.rf.5bf49f8aa575f586001710b1d79968fd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bfb91196f082f35982cf114f6847de16244ccd88 GIT binary patch literal 40237 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 literal 0 HcmV?d00001 diff --git a/tests/datasets/paligemma/dataset/63a6c783083d5c7c7290bc81877a4ee9_png.rf.5c02d037f48bc3df56e6d0e3e6e053e4.jpg b/tests/datasets/paligemma/dataset/63a6c783083d5c7c7290bc81877a4ee9_png.rf.5c02d037f48bc3df56e6d0e3e6e053e4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2556733a016b94ad8bd6be0e213c32c287b30d30 GIT binary patch literal 35715 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 YPfFkJ-!?u)+D${$E?c$m{cH3;0L%SEEdT%j literal 0 HcmV?d00001 diff --git a/tests/datasets/paligemma/dataset/900e8ea2a3c336686c23978e800af239_png.rf.011b80b16a622820ca92b91543f5a44d.jpg b/tests/datasets/paligemma/dataset/900e8ea2a3c336686c23978e800af239_png.rf.011b80b16a622820ca92b91543f5a44d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c37579e0f52ab790ddf241ef82514f4639aba80a GIT binary patch literal 19138 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 c0tjGB<1}o1Cn0>-F5CcgKv_Xa0U{uPAOi3o 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 J%4GllCIHrSGcW)E literal 0 HcmV?d00001 diff --git a/tests/datasets/paligemma/dataset/de960ddd58344041754d5f984f8f82c2_png.rf.011864613b53c6b6a0c0a7086b657a71.jpg b/tests/datasets/paligemma/dataset/de960ddd58344041754d5f984f8f82c2_png.rf.011864613b53c6b6a0c0a7086b657a71.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c68ef673d7c6a2be21473dca9c0b1a2ceae1df9 GIT binary patch literal 30671 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 Date: Mon, 2 Sep 2024 18:32:21 +0000 Subject: [PATCH 02/10] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/datasets/paligemma/README.dataset.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/datasets/paligemma/README.dataset.txt b/tests/datasets/paligemma/README.dataset.txt index cdee4828..cb36ebf0 100644 --- a/tests/datasets/paligemma/README.dataset.txt +++ b/tests/datasets/paligemma/README.dataset.txt @@ -3,4 +3,3 @@ https://universe.roboflow.com/roboflow-jvuqo/chartqa-c9zny Provided by a Roboflow user License: CC BY 4.0 - From eddb65c21ad357474ea738fe0fc1b4cfdca9c373 Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 2 Sep 2024 18:41:26 +0000 Subject: [PATCH 03/10] QOL (source those from project root) --- tests/manual/uselocal | 5 ++++- tests/manual/useprod | 4 +++- tests/manual/usestaging | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/manual/uselocal b/tests/manual/uselocal index 644f5f6c..8c8bf9ca 100644 --- a/tests/manual/uselocal +++ b/tests/manual/uselocal @@ -1,5 +1,8 @@ #!/bin/env bash -cp data/.config-staging data/.config +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cp $SCRIPT_DIR/data/.config-staging $SCRIPT_DIR/data/.config export API_URL=https://localhost.roboflow.one export APP_URL=https://localhost.roboflow.one +export DEDICATED_DEPLOYMENT_URL=https://staging.roboflow.cloud +export ROBOFLOW_CONFIG_DIR=$SCRIPT_DIR/data/.config # need to set it in /etc/hosts to the IP of host.docker.internal! diff --git a/tests/manual/useprod b/tests/manual/useprod index d83e3213..82bdf25a 100644 --- a/tests/manual/useprod +++ b/tests/manual/useprod @@ -1,7 +1,9 @@ #!/bin/env bash -cp data/.config-prod data/.config +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cp $SCRIPT_DIR/data/.config-prod $SCRIPT_DIR/data/.config export API_URL=https://api.roboflow.com export APP_URL=https://app.roboflow.com export OBJECT_DETECTION_URL=https://detect.roboflow.one export DEDICATED_DEPLOYMENT_URL=https://roboflow.cloud +export ROBOFLOW_CONFIG_DIR=$SCRIPT_DIR/data/.config diff --git a/tests/manual/usestaging b/tests/manual/usestaging index 1cffeb1f..aa3970f9 100644 --- a/tests/manual/usestaging +++ b/tests/manual/usestaging @@ -1,7 +1,9 @@ #!/bin/env bash -cp data/.config-staging data/.config +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cp $SCRIPT_DIR/data/.config-staging $SCRIPT_DIR/data/.config export API_URL=https://api.roboflow.one export APP_URL=https://app.roboflow.one export OBJECT_DETECTION_URL=https://lambda-object-detection.staging.roboflow.com export DEDICATED_DEPLOYMENT_URL=https://staging.roboflow.cloud +export ROBOFLOW_CONFIG_DIR=$SCRIPT_DIR/data/.config From 5c64f10a2c413b49a40f6d7399264d27cd125e6c Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 2 Sep 2024 19:26:51 +0000 Subject: [PATCH 04/10] parsefolder with jsonl annotations --- roboflow/util/folderparser.py | 39 ++++++++++++++----- .../paligemma/dataset/_annotations.test.jsonl | 2 +- tests/util/test_folderparser.py | 22 +++++++++++ 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/roboflow/util/folderparser.py b/roboflow/util/folderparser.py index 50ec9e16..5725a8f3 100644 --- a/roboflow/util/folderparser.py +++ b/roboflow/util/folderparser.py @@ -8,7 +8,7 @@ from .image_utils import load_labelmap IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".bmp"} -ANNOTATION_EXTENSIONS = {".txt", ".json", ".xml", ".csv"} +ANNOTATION_EXTENSIONS = {".txt", ".json", ".xml", ".csv", ".jsonl"} LABELMAPS_EXTENSIONS = {".labels", ".yaml", ".yml"} @@ -107,13 +107,14 @@ def _map_annotations_to_images_1tomany(images, annotationFiles): dirname = image["dirname"] annotationsInSameDir = annotationsByDirname.get(dirname, []) if annotationsInSameDir: - if len(annotationsInSameDir) > 1: - print(f"warning: found multiple annotation files on dir {dirname}") - annotationFile = annotationsInSameDir[0] - format = annotationFile["parsedType"] - image["annotationfile"] = _filterIndividualAnnotations( - image, annotationFile, format, imgRefMap, annotationMap - ) + for annotationFile in annotationsInSameDir: + format = annotationFile["parsedType"] + filtered_annotations = _filterIndividualAnnotations( + image, annotationFile, format, imgRefMap, annotationMap + ) + if filtered_annotations: + image["annotationfile"] = filtered_annotations + break def _build_image_and_annotation_maps(annotationFiles): @@ -182,11 +183,16 @@ def _filterIndividualAnnotations(image, annotation, format, imgRefMap, annotatio return _annotation else: return None + elif format == "jsonl": + imgLines = [line for line in parsed if line["image"] == image["name"]] + if imgLines: + _annotation = {"name": "annotation.jsonl", "rawText": json.dumps(imgLines)} + return _annotation return None def _loadAnnotations(folder, annotations): - valid_extensions = {".json", ".csv"} + valid_extensions = {".json", ".csv", ".jsonl"} annotations = [a for a in annotations if a["extension"] in valid_extensions] for ann in annotations: extension = ann["extension"] @@ -197,12 +203,27 @@ def _loadAnnotations(folder, annotations): if parsedType: ann["parsed"] = parsed ann["parsedType"] = parsedType + elif extension == ".jsonl": + ann["parsed"] = _read_jsonl(f"{folder}{ann['file']}") + ann["parsedType"] = "jsonl" elif extension == ".csv": ann["parsedType"] = "csv" ann["parsed"] = _parseAnnotationCSV(f"{folder}{ann['file']}") return annotations +def _read_jsonl(path): + data = [] + with open(path) as file: + for line in file: + try: + json_object = json.loads(line.strip()) + data.append(json_object) + except json.JSONDecodeError: + print(f"Warning: Skipping invalid JSON line in {path}") + return data + + def _parseAnnotationCSV(filename): # TODO: use a proper CSV library? with open(filename) as f: diff --git a/tests/datasets/paligemma/dataset/_annotations.test.jsonl b/tests/datasets/paligemma/dataset/_annotations.test.jsonl index ff58b1f4..6a4f765a 100644 --- a/tests/datasets/paligemma/dataset/_annotations.test.jsonl +++ b/tests/datasets/paligemma/dataset/_annotations.test.jsonl @@ -3,7 +3,7 @@ {"image":"de960ddd58344041754d5f984f8f82c2_png.rf.011864613b53c6b6a0c0a7086b657a71.jpg","prefix":"What region in Italy had the highest number of mafia crimes in 2018?","suffix":"Calabria"} {"image":"de960ddd58344041754d5f984f8f82c2_png.rf.011864613b53c6b6a0c0a7086b657a71.jpg","prefix":"How many criminal reports were recorded in the region of Calabria in 2018?","suffix":"896"} {"image":"de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg","prefix":"Which sector had the highest ROI in 2013?","suffix":"Retail"} -{"image":"de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg","prefix":"Which sector had the highest ROI in 2013?","suffix":"Retail"} +{"image":"de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg","prefix":"Which sector had the highest ROI in 2014?","suffix":"Electronics"} {"image":"e1893eee3f64bda1eac88da795ad3a00_png.rf.01248d761c27015da1fa5f3c4daea759.jpg","prefix":"How much did Hermes' national general cargo revenue add up to in 2009?","suffix":"100"} {"image":"e1893eee3f64bda1eac88da795ad3a00_png.rf.01248d761c27015da1fa5f3c4daea759.jpg","prefix":"How much did Hermes' national general cargo revenue add up to in 2009?","suffix":"100"} {"image":"eaab023f1ce380c4c9163415facc3c0d_png.rf.01c5a1f19653c056bbb3b0c8fc2d752d.jpg","prefix":"What's the percentage value of leftmost bar?","suffix":"24"} diff --git a/tests/util/test_folderparser.py b/tests/util/test_folderparser.py index f3ce2580..24db3a17 100644 --- a/tests/util/test_folderparser.py +++ b/tests/util/test_folderparser.py @@ -52,6 +52,28 @@ def test_parse_mosquitos_csv(self): expected += "train_10308.jpeg,1058,943,japonicus/koreicus,28,187,908,815\n" assert testImage["annotationfile"]["rawText"] == expected + def test_paligemma_format(self): + folder = f"{thisdir}/../datasets/paligemma" + parsed = folderparser.parsefolder(folder) + testImagePath = "/dataset/de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg" + testImage = [i for i in parsed["images"] if i["file"] == testImagePath][0] + assert testImage["annotationfile"]["name"] == "annotation.jsonl" + expected = json.dumps( + [ + { + "image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", + "prefix": "Which sector had the highest ROI in 2013?", + "suffix": "Retail", + }, + { + "image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", + "prefix": "Which sector had the highest ROI in 2014?", + "suffix": "Electronics", + }, + ] + ) + assert testImage["annotationfile"]["rawText"] == expected + def _assertJsonMatchesFile(actual, filename): with open(filename) as file: From a220d8b13607205ad10a95a3ad52d553a9d136dd Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Fri, 13 Sep 2024 23:22:47 +0000 Subject: [PATCH 05/10] make sure we can use the right API key for the selected workspace --- roboflow/roboflowpy.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roboflow/roboflowpy.py b/roboflow/roboflowpy.py index 025b4391..86e00832 100755 --- a/roboflow/roboflowpy.py +++ b/roboflow/roboflowpy.py @@ -47,7 +47,8 @@ def download(args): def import_dataset(args): - rf = roboflow.Roboflow() + api_key = load_roboflow_api_key(args.workspace) + rf = roboflow.Roboflow(api_key) workspace = rf.workspace(args.workspace) workspace.upload_dataset( dataset_path=args.folder, From 7572e6743c7fb0cd812b77d1dc4b18fd00eed8d0 Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Fri, 13 Sep 2024 23:23:16 +0000 Subject: [PATCH 06/10] correctly parse and upload jsonl annotations --- roboflow/util/folderparser.py | 6 +++--- tests/manual/debugme.py | 3 ++- tests/util/test_folderparser.py | 16 ++-------------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/roboflow/util/folderparser.py b/roboflow/util/folderparser.py index 5725a8f3..63292ca9 100644 --- a/roboflow/util/folderparser.py +++ b/roboflow/util/folderparser.py @@ -184,9 +184,9 @@ def _filterIndividualAnnotations(image, annotation, format, imgRefMap, annotatio else: return None elif format == "jsonl": - imgLines = [line for line in parsed if line["image"] == image["name"]] - if imgLines: - _annotation = {"name": "annotation.jsonl", "rawText": json.dumps(imgLines)} + jsonlLines = [json.dumps(line) for line in parsed if line["image"] == image["name"]] + if jsonlLines: + _annotation = {"name": "annotation.jsonl", "rawText": "\n".join(jsonlLines)} return _annotation return None diff --git a/tests/manual/debugme.py b/tests/manual/debugme.py index 3fb4617a..762dc225 100644 --- a/tests/manual/debugme.py +++ b/tests/manual/debugme.py @@ -41,6 +41,7 @@ # f"import {thisdir}/data/cultura-pepino-yolov8_voc -w wolfodorpythontests -p yellow-auto -c 100".split() # noqa: E501 // docs # f"import {thisdir}/data/cultura-pepino-yolov5pytorch -w wolfodorpythontests -p yellow-auto -c 100 -n papaiasso".split() # noqa: E501 // docs # f"import {thisdir}/../datasets/mosquitos -w wolfodorpythontests -p yellow-auto -n papaiasso".split() # noqa: E501 // docs - f"deployment list".split() # noqa: E501 // docs + # f"deployment list".split() # noqa: E501 // docs + f"import -w tonyprivate -p meh-plvrv {thisdir}/../datasets/paligemma/".split() # noqa: E501 // docs ) args.func(args) diff --git a/tests/util/test_folderparser.py b/tests/util/test_folderparser.py index 24db3a17..2f58f51b 100644 --- a/tests/util/test_folderparser.py +++ b/tests/util/test_folderparser.py @@ -58,20 +58,8 @@ def test_paligemma_format(self): testImagePath = "/dataset/de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg" testImage = [i for i in parsed["images"] if i["file"] == testImagePath][0] assert testImage["annotationfile"]["name"] == "annotation.jsonl" - expected = json.dumps( - [ - { - "image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", - "prefix": "Which sector had the highest ROI in 2013?", - "suffix": "Retail", - }, - { - "image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", - "prefix": "Which sector had the highest ROI in 2014?", - "suffix": "Electronics", - }, - ] - ) + expected = """{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2013?", "suffix": "Retail"} +{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2014?", "suffix": "Electronics"}""" assert testImage["annotationfile"]["rawText"] == expected From ffe9afdb56fb52f1fc38991118525cb12eaeae27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20L=C3=A2mpada?= <218821+tonylampada@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:05:10 -0300 Subject: [PATCH 07/10] Update roboflow/util/folderparser.py Co-authored-by: Iuri de Silvio --- roboflow/util/folderparser.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roboflow/util/folderparser.py b/roboflow/util/folderparser.py index 63292ca9..bf469e84 100644 --- a/roboflow/util/folderparser.py +++ b/roboflow/util/folderparser.py @@ -215,12 +215,14 @@ def _loadAnnotations(folder, annotations): def _read_jsonl(path): data = [] with open(path) as file: - for line in file: + for linenum, line in enumerate(file, 1): + if not line: + continue try: json_object = json.loads(line.strip()) data.append(json_object) except json.JSONDecodeError: - print(f"Warning: Skipping invalid JSON line in {path}") + print(f"Warning: Skipping invalid JSON line in {path}:{linenum}") return data From 53c9b216ef0e1ab95406d3044829dd2f36e55c60 Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 16 Sep 2024 10:17:15 -0300 Subject: [PATCH 08/10] ignore lint --- tests/util/test_folderparser.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/util/test_folderparser.py b/tests/util/test_folderparser.py index 2f58f51b..0c732a41 100644 --- a/tests/util/test_folderparser.py +++ b/tests/util/test_folderparser.py @@ -58,8 +58,10 @@ def test_paligemma_format(self): testImagePath = "/dataset/de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg" testImage = [i for i in parsed["images"] if i["file"] == testImagePath][0] assert testImage["annotationfile"]["name"] == "annotation.jsonl" + # fmt: off expected = """{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2013?", "suffix": "Retail"} {"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2014?", "suffix": "Electronics"}""" + # fmt: on assert testImage["annotationfile"]["rawText"] == expected From ed8faab4072a332298cbb910ee708e3b27d7c478 Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 16 Sep 2024 13:24:43 +0000 Subject: [PATCH 09/10] lint --- tests/util/test_folderparser.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/util/test_folderparser.py b/tests/util/test_folderparser.py index 0c732a41..d4d497cb 100644 --- a/tests/util/test_folderparser.py +++ b/tests/util/test_folderparser.py @@ -58,10 +58,12 @@ def test_paligemma_format(self): testImagePath = "/dataset/de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg" testImage = [i for i in parsed["images"] if i["file"] == testImagePath][0] assert testImage["annotationfile"]["name"] == "annotation.jsonl" - # fmt: off - expected = """{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2013?", "suffix": "Retail"} -{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg", "prefix": "Which sector had the highest ROI in 2014?", "suffix": "Electronics"}""" - # fmt: on + expected = ( + '{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg",' + ' "prefix": "Which sector had the highest ROI in 2013?", "suffix": "Retail"}\n' + '{"image": "de48275e1ff70fab78bee31e09fc896d_png.rf.01a97b1ad053aa1e6525ac0451cee8b7.jpg",' + ' "prefix": "Which sector had the highest ROI in 2014?", "suffix": "Electronics"}' + ) assert testImage["annotationfile"]["rawText"] == expected From 009e322bd08b57a6288b495870f80a6ac8848d3c Mon Sep 17 00:00:00 2001 From: Tony Lampada Date: Mon, 16 Sep 2024 13:31:04 +0000 Subject: [PATCH 10/10] bump version --- roboflow/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roboflow/__init__.py b/roboflow/__init__.py index ad2972ba..bf1fca79 100644 --- a/roboflow/__init__.py +++ b/roboflow/__init__.py @@ -15,7 +15,7 @@ from roboflow.models import CLIPModel, GazeModel # noqa: F401 from roboflow.util.general import write_line -__version__ = "1.1.44" +__version__ = "1.1.45" def check_key(api_key, model, notebook, num_retries=0):