From 48c17f8a17007d1a0b5756535072c6c0338650d9 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 12:56:14 -0400 Subject: [PATCH 01/15] New plugin that validates image size of a segmentation_mask and compares it with its parent base image. --- .../segmentation_mask_imagesize_validation.py | 85 +++++++++++++++++++ src/ingest_validation_tests/utils.py | 33 +++++++ 2 files changed, 118 insertions(+) create mode 100644 src/ingest_validation_tests/segmentation_mask_imagesize_validation.py create mode 100644 src/ingest_validation_tests/utils.py diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py new file mode 100644 index 0000000..6aba47c --- /dev/null +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -0,0 +1,85 @@ +from pathlib import Path +from typing import List, Optional + +from ingest_validation_tools.plugin_validator import Validator +import tifffile +import xmlschema + +from utils import GetParentData + + +def get_ometiff_size(file) -> Optional[str, dict]: + try: + tf = tifffile.TiffFile(file) + xml_document = xmlschema.XmlDocument(tf.ome_metadata) + if xml_document.schema and not xml_document.schema.is_valid(xml_document): + return f"{file} is not a valid OME.TIFF file" + except Exception as excp: + return f"{file} is not a valid OME.TIFF file: {excp}" + xml_image_data = xml_document.schema.to_dict(xml_document).get("Image")[0].get("Pixels") + try: + rst = {'X': xml_image_data.get('@PhysicalSizeX'), + 'XUnits': xml_image_data.get('@PhysicalSizeXUnits'), + 'Y': xml_image_data.get('@PhysicalSizeY'), + 'YUnits': xml_image_data.get('@PhysicalSizeYUnits'), + 'Z': xml_image_data.get('@PhysicalSizeZ'), + 'ZUnits': xml_image_data.get('@PhysicalSizeZUnits')} + return rst + except Exception as excp: + return f"{file} is not a valid OME.TIFF file: {excp}" + + +class ImageSizeValidator(Validator): + description = "Check dataset and parent image size so they can be matched in the visualization" + cost = 1.0 + version = "1.0" + required = "segmentation_mask" + + def collect_errors(self, **kwargs) -> List[Optional[str]]: + del kwargs + if self.required not in self.contains and self.assay_type.lower() != self.required: + return [] # We only test CODEX data + files_tested = None + output = [] + filenames_to_test = [] + parent_filenames_to_test = [] + try: + for row in self.metadata_tsv.rows: + data_path = Path(row["data_path"]) + if not data_path.is_absolute(): + data_path = Path(self.paths[0]).parent / data_path + + for glob_expr in [ + "**/*.ome.tif", + "**/*.ome.tiff", + "**/*.OME.TIFF", + "**/*.OME.TIF", + ]: + for file in data_path.glob(glob_expr): + filenames_to_test.append(file) + assert len(filenames_to_test) != 1, "Too many or too few files Mask" + + for glob_expr in [ + "**/*.ome.tif", + "**/*.ome.tiff", + "**/*.OME.TIFF", + "**/*.OME.TIF", + ]: + for file in Path(GetParentData(row["parent_sample_id"], + self.globus_token, + self.app_context).get_path()).glob(glob_expr): + parent_filenames_to_test.append(file) + assert len(parent_filenames_to_test) != 1, "Too many or too few files Base Images" + segmentation_mask_size = get_ometiff_size(filenames_to_test[0]) + base_image_size = get_ometiff_size(parent_filenames_to_test[0]) + assert segmentation_mask_size == base_image_size, "Files and base image size do not match" + + except AssertionError as exep: + output.append(str(exep)) + + if output: + return output + elif files_tested: + return [None] + else: + return [] \ No newline at end of file diff --git a/src/ingest_validation_tests/utils.py b/src/ingest_validation_tests/utils.py new file mode 100644 index 0000000..04bace7 --- /dev/null +++ b/src/ingest_validation_tests/utils.py @@ -0,0 +1,33 @@ +import requests + + +class GetParentData: + def __init__(self, hubmap_id, globus_token, app_context): + self.hubmap_id = hubmap_id + self.token = globus_token + self.app_context = app_context + + def __get_uuid(self) -> None: + url = self.app_context.get("uuid_url") + self.hubmap_id + headers = self.app_context.get("request_headers", {}) + headers({"Authorization": "Bearer " + self.token}) + try: + response = requests.get(url, headers=headers) + response.raise_for_status() + self.uuid = response.json().get("uuid") + except requests.exceptions.HTTPError as err: + self.uuid = None + print(f"Error: {err}") + + def get_path(self) -> str: + self.__get_uuid() + if self.uuid is None: + url = self.app_context.get("ingest_url") + "datasets/" + self.uuid + "/file-system-abs-path" + headers = self.app_context.get("request_headers", {}) + try: + response = requests.get(url, headers=headers) + response.raise_for_status() + return response.json().get("path") + except requests.exceptions.HTTPError as err: + print(f"Error: {err}") + return "" From e145815ebd09c6c90a6dc7b2e99a040d438322d2 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 13:15:04 -0400 Subject: [PATCH 02/15] Update to the reference for parent_id --- .../segmentation_mask_imagesize_validation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 6aba47c..ac818d2 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -65,7 +65,7 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: "**/*.OME.TIFF", "**/*.OME.TIF", ]: - for file in Path(GetParentData(row["parent_sample_id"], + for file in Path(GetParentData(row["parent_dataset_id"], self.globus_token, self.app_context).get_path()).glob(glob_expr): parent_filenames_to_test.append(file) From d785d578aacce06461d34e64a0d305fc31c94b7e Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 15:30:13 -0400 Subject: [PATCH 03/15] Linting --- .../segmentation_mask_imagesize_validation.py | 32 +++++++++++-------- src/ingest_validation_tests/utils.py | 7 +++- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index ac818d2..c10a631 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -13,17 +13,19 @@ def get_ometiff_size(file) -> Optional[str, dict]: tf = tifffile.TiffFile(file) xml_document = xmlschema.XmlDocument(tf.ome_metadata) if xml_document.schema and not xml_document.schema.is_valid(xml_document): - return f"{file} is not a valid OME.TIFF file" + return f"{file} is not a valid OME.TIFF file" except Exception as excp: return f"{file} is not a valid OME.TIFF file: {excp}" xml_image_data = xml_document.schema.to_dict(xml_document).get("Image")[0].get("Pixels") try: - rst = {'X': xml_image_data.get('@PhysicalSizeX'), - 'XUnits': xml_image_data.get('@PhysicalSizeXUnits'), - 'Y': xml_image_data.get('@PhysicalSizeY'), - 'YUnits': xml_image_data.get('@PhysicalSizeYUnits'), - 'Z': xml_image_data.get('@PhysicalSizeZ'), - 'ZUnits': xml_image_data.get('@PhysicalSizeZUnits')} + rst = { + "X": xml_image_data.get("@PhysicalSizeX"), + "XUnits": xml_image_data.get("@PhysicalSizeXUnits"), + "Y": xml_image_data.get("@PhysicalSizeY"), + "YUnits": xml_image_data.get("@PhysicalSizeYUnits"), + "Z": xml_image_data.get("@PhysicalSizeZ"), + "ZUnits": xml_image_data.get("@PhysicalSizeZUnits"), + } return rst except Exception as excp: return f"{file} is not a valid OME.TIFF file: {excp}" @@ -38,7 +40,7 @@ class ImageSizeValidator(Validator): def collect_errors(self, **kwargs) -> List[Optional[str]]: del kwargs if self.required not in self.contains and self.assay_type.lower() != self.required: - return [] # We only test CODEX data + return [] # We only test Segmentation Masks files_tested = None output = [] filenames_to_test = [] @@ -65,14 +67,18 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: "**/*.OME.TIFF", "**/*.OME.TIF", ]: - for file in Path(GetParentData(row["parent_dataset_id"], - self.globus_token, - self.app_context).get_path()).glob(glob_expr): + for file in Path( + GetParentData( + row["parent_dataset_id"], self.globus_token, self.app_context + ).get_path() + ).glob(glob_expr): parent_filenames_to_test.append(file) assert len(parent_filenames_to_test) != 1, "Too many or too few files Base Images" segmentation_mask_size = get_ometiff_size(filenames_to_test[0]) base_image_size = get_ometiff_size(parent_filenames_to_test[0]) - assert segmentation_mask_size == base_image_size, "Files and base image size do not match" + assert ( + segmentation_mask_size == base_image_size + ), "Files and base image size do not match" except AssertionError as exep: output.append(str(exep)) @@ -82,4 +88,4 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: elif files_tested: return [None] else: - return [] \ No newline at end of file + return [] diff --git a/src/ingest_validation_tests/utils.py b/src/ingest_validation_tests/utils.py index 04bace7..60490d7 100644 --- a/src/ingest_validation_tests/utils.py +++ b/src/ingest_validation_tests/utils.py @@ -22,7 +22,12 @@ def __get_uuid(self) -> None: def get_path(self) -> str: self.__get_uuid() if self.uuid is None: - url = self.app_context.get("ingest_url") + "datasets/" + self.uuid + "/file-system-abs-path" + url = ( + self.app_context.get("ingest_url") + + "datasets/" + + self.uuid + + "/file-system-abs-path" + ) headers = self.app_context.get("request_headers", {}) try: response = requests.get(url, headers=headers) From f2665378ecad8895d0ca8b5a4eb70bce8f9483ce Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 15:31:40 -0400 Subject: [PATCH 04/15] Adding pycharm environment files to gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index da9fde3..0cd82b6 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,7 @@ dmypy.json # Pyre type checker .pyre/ + +# PyCharm +.idea/ + From e8612d7c8fce78f47c1a5f78de3747b1f3c2a55c Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 15:34:19 -0400 Subject: [PATCH 05/15] More Linting --- .../segmentation_mask_imagesize_validation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index c10a631..ff449b5 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -1,10 +1,10 @@ from pathlib import Path from typing import List, Optional -from ingest_validation_tools.plugin_validator import Validator import tifffile import xmlschema +from ingest_validation_tools.plugin_validator import Validator from utils import GetParentData From 39fd223f01f407d1a173b4f2aa76526f2739c655 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 15:36:45 -0400 Subject: [PATCH 06/15] More Linting --- .../segmentation_mask_imagesize_validation.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index ff449b5..629ba01 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -1,9 +1,8 @@ -from pathlib import Path -from typing import List, Optional - import tifffile import xmlschema +from typing import List, Optional +from pathlib import Path from ingest_validation_tools.plugin_validator import Validator from utils import GetParentData From 5f8b76b8e0fa2fb0abaa91125c9d883e9f9add41 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Thu, 22 Aug 2024 15:38:29 -0400 Subject: [PATCH 07/15] More Linting -> isort --- .../segmentation_mask_imagesize_validation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 629ba01..00f6e46 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -1,8 +1,8 @@ +from pathlib import Path +from typing import List, Optional + import tifffile import xmlschema - -from typing import List, Optional -from pathlib import Path from ingest_validation_tools.plugin_validator import Validator from utils import GetParentData From e46b47a9109c52f6f635a2224e6c1ed8211f0ecc Mon Sep 17 00:00:00 2001 From: David Betancur Date: Fri, 30 Aug 2024 14:25:24 -0400 Subject: [PATCH 08/15] Updating to apply suggestions. --- .../segmentation_mask_imagesize_validation.py | 27 +++++++++---------- src/ingest_validation_tests/utils.py | 2 +- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 00f6e46..5343a92 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import List, Optional +from typing import List, Optional, Union import tifffile import xmlschema @@ -7,7 +7,7 @@ from utils import GetParentData -def get_ometiff_size(file) -> Optional[str, dict]: +def get_ometiff_size(file) -> Union[str, dict]: try: tf = tifffile.TiffFile(file) xml_document = xmlschema.XmlDocument(tf.ome_metadata) @@ -35,6 +35,12 @@ class ImageSizeValidator(Validator): cost = 1.0 version = "1.0" required = "segmentation_mask" + files_to_find = [ + "**/*.ome.tif", + "**/*.ome.tiff", + "**/*.OME.TIFF", + "**/*.OME.TIF", + ] def collect_errors(self, **kwargs) -> List[Optional[str]]: del kwargs @@ -50,29 +56,20 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: if not data_path.is_absolute(): data_path = Path(self.paths[0]).parent / data_path - for glob_expr in [ - "**/*.ome.tif", - "**/*.ome.tiff", - "**/*.OME.TIFF", - "**/*.OME.TIF", - ]: + for glob_expr in self.files_to_find: for file in data_path.glob(glob_expr): filenames_to_test.append(file) - assert len(filenames_to_test) != 1, "Too many or too few files Mask" - for glob_expr in [ - "**/*.ome.tif", - "**/*.ome.tiff", - "**/*.OME.TIFF", - "**/*.OME.TIF", - ]: for file in Path( GetParentData( row["parent_dataset_id"], self.globus_token, self.app_context ).get_path() ).glob(glob_expr): parent_filenames_to_test.append(file) + + assert len(filenames_to_test) != 1, "Too many or too few files Mask" assert len(parent_filenames_to_test) != 1, "Too many or too few files Base Images" + segmentation_mask_size = get_ometiff_size(filenames_to_test[0]) base_image_size = get_ometiff_size(parent_filenames_to_test[0]) assert ( diff --git a/src/ingest_validation_tests/utils.py b/src/ingest_validation_tests/utils.py index 60490d7..33a7472 100644 --- a/src/ingest_validation_tests/utils.py +++ b/src/ingest_validation_tests/utils.py @@ -21,7 +21,7 @@ def __get_uuid(self) -> None: def get_path(self) -> str: self.__get_uuid() - if self.uuid is None: + if self.uuid is not None: url = ( self.app_context.get("ingest_url") + "datasets/" From e5098a22f6b22d875940da621aa47a4f188d5e0a Mon Sep 17 00:00:00 2001 From: David Betancur Date: Fri, 30 Aug 2024 14:28:40 -0400 Subject: [PATCH 09/15] Linting --- .../segmentation_mask_imagesize_validation.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 5343a92..0f29500 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -36,11 +36,11 @@ class ImageSizeValidator(Validator): version = "1.0" required = "segmentation_mask" files_to_find = [ - "**/*.ome.tif", - "**/*.ome.tiff", - "**/*.OME.TIFF", - "**/*.OME.TIF", - ] + "**/*.ome.tif", + "**/*.ome.tiff", + "**/*.OME.TIFF", + "**/*.OME.TIF", + ] def collect_errors(self, **kwargs) -> List[Optional[str]]: del kwargs From 04c573ba9756bf8a5f7db0882b88f5633aa6d238 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Tue, 3 Sep 2024 13:49:13 -0400 Subject: [PATCH 10/15] Bugfix assertion should be equal to not different than --- .../segmentation_mask_imagesize_validation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 0f29500..e62a6d8 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -67,8 +67,8 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: ).glob(glob_expr): parent_filenames_to_test.append(file) - assert len(filenames_to_test) != 1, "Too many or too few files Mask" - assert len(parent_filenames_to_test) != 1, "Too many or too few files Base Images" + assert len(filenames_to_test) == 1, "Too many or too few files Mask" + assert len(parent_filenames_to_test) == 1, "Too many or too few files Base Images" segmentation_mask_size = get_ometiff_size(filenames_to_test[0]) base_image_size = get_ometiff_size(parent_filenames_to_test[0]) From 936e3bafbf6e222dc084b5dd5587adc6cc9b3d79 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Wed, 11 Sep 2024 12:58:27 -0400 Subject: [PATCH 11/15] Bugfix import path and assay_type naming --- .../segmentation_mask_imagesize_validation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index e62a6d8..5216e41 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -4,7 +4,7 @@ import tifffile import xmlschema from ingest_validation_tools.plugin_validator import Validator -from utils import GetParentData +from ingest_validation_tests.utils import GetParentData def get_ometiff_size(file) -> Union[str, dict]: @@ -34,7 +34,7 @@ class ImageSizeValidator(Validator): description = "Check dataset and parent image size so they can be matched in the visualization" cost = 1.0 version = "1.0" - required = "segmentation_mask" + required = "segmentation mask" files_to_find = [ "**/*.ome.tif", "**/*.ome.tiff", From 5735131fe83442a9807d2ed82895842ee36afa12 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Wed, 11 Sep 2024 13:18:29 -0400 Subject: [PATCH 12/15] Bugfix token attribute. Bugfix missing update on headers token appending. --- .../segmentation_mask_imagesize_validation.py | 4 +++- src/ingest_validation_tests/utils.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 5216e41..e7c85dd 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -4,6 +4,7 @@ import tifffile import xmlschema from ingest_validation_tools.plugin_validator import Validator + from ingest_validation_tests.utils import GetParentData @@ -44,6 +45,7 @@ class ImageSizeValidator(Validator): def collect_errors(self, **kwargs) -> List[Optional[str]]: del kwargs + print("Validating Image/SegMask sizes") if self.required not in self.contains and self.assay_type.lower() != self.required: return [] # We only test Segmentation Masks files_tested = None @@ -62,7 +64,7 @@ def collect_errors(self, **kwargs) -> List[Optional[str]]: for file in Path( GetParentData( - row["parent_dataset_id"], self.globus_token, self.app_context + row["parent_dataset_id"], self.token, self.app_context ).get_path() ).glob(glob_expr): parent_filenames_to_test.append(file) diff --git a/src/ingest_validation_tests/utils.py b/src/ingest_validation_tests/utils.py index 33a7472..f367f54 100644 --- a/src/ingest_validation_tests/utils.py +++ b/src/ingest_validation_tests/utils.py @@ -10,7 +10,7 @@ def __init__(self, hubmap_id, globus_token, app_context): def __get_uuid(self) -> None: url = self.app_context.get("uuid_url") + self.hubmap_id headers = self.app_context.get("request_headers", {}) - headers({"Authorization": "Bearer " + self.token}) + headers.update({"Authorization": "Bearer " + self.token}) try: response = requests.get(url, headers=headers) response.raise_for_status() From 38f93d8005245d8a1855947aea62dbb7f256555c Mon Sep 17 00:00:00 2001 From: David Betancur Date: Wed, 11 Sep 2024 14:03:47 -0400 Subject: [PATCH 13/15] Refactoring to pass tests and not conflict with ingest_pipeline. --- .../segmentation_mask_imagesize_validation.py | 10 +++++----- .../{utils.py => test_utils.py} | 0 2 files changed, 5 insertions(+), 5 deletions(-) rename src/ingest_validation_tests/{utils.py => test_utils.py} (100%) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index e7c85dd..1b384d7 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -5,7 +5,7 @@ import xmlschema from ingest_validation_tools.plugin_validator import Validator -from ingest_validation_tests.utils import GetParentData +from tests_utils import GetParentData def get_ometiff_size(file) -> Union[str, dict]: @@ -37,10 +37,10 @@ class ImageSizeValidator(Validator): version = "1.0" required = "segmentation mask" files_to_find = [ - "**/*.ome.tif", - "**/*.ome.tiff", - "**/*.OME.TIFF", - "**/*.OME.TIF", + "**/segmentation_masks/*.ome.tif", + "**/segmentation_masks/*.ome.tiff", + "**/segmentation_masks/*.OME.TIFF", + "**/segmentation_masks/*.OME.TIF", ] def collect_errors(self, **kwargs) -> List[Optional[str]]: diff --git a/src/ingest_validation_tests/utils.py b/src/ingest_validation_tests/test_utils.py similarity index 100% rename from src/ingest_validation_tests/utils.py rename to src/ingest_validation_tests/test_utils.py From 05022051b0dcd53047beaccae25f5f4579d76d42 Mon Sep 17 00:00:00 2001 From: David Betancur Date: Wed, 11 Sep 2024 14:05:31 -0400 Subject: [PATCH 14/15] Linting --- .../segmentation_mask_imagesize_validation.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py index 1b384d7..682ce73 100644 --- a/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py +++ b/src/ingest_validation_tests/segmentation_mask_imagesize_validation.py @@ -4,7 +4,6 @@ import tifffile import xmlschema from ingest_validation_tools.plugin_validator import Validator - from tests_utils import GetParentData From 7d8d06a58262e03fbdbd920bf402db55fed1f78b Mon Sep 17 00:00:00 2001 From: David Betancur Date: Wed, 11 Sep 2024 14:23:19 -0400 Subject: [PATCH 15/15] Typo on file name --- src/ingest_validation_tests/{test_utils.py => tests_utils.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ingest_validation_tests/{test_utils.py => tests_utils.py} (100%) diff --git a/src/ingest_validation_tests/test_utils.py b/src/ingest_validation_tests/tests_utils.py similarity index 100% rename from src/ingest_validation_tests/test_utils.py rename to src/ingest_validation_tests/tests_utils.py