diff --git a/conformance/ome_zarr_conformance.py b/conformance/ome_zarr_conformance.py
old mode 100644
new mode 100755
index 5614e44c..c4b40c09
--- a/conformance/ome_zarr_conformance.py
+++ b/conformance/ome_zarr_conformance.py
@@ -8,23 +8,73 @@
"""
from __future__ import annotations
-from concurrent.futures import Future, ThreadPoolExecutor
+
+import json
+import logging
import os
+import re
import subprocess as sp
-from argparse import ArgumentParser
-from pathlib import Path
import sys
-import re
-import json
+from argparse import ArgumentParser
+from collections.abc import Iterable
+from concurrent.futures import Future, ThreadPoolExecutor
from dataclasses import dataclass
-from typing import Any, Iterable, Literal, Self
-import logging
+from pathlib import Path
+from typing import Any, Literal, Self
logger = logging.getLogger("ome_zarr_conformance")
here = Path(__file__).resolve().parent.parent
tests_dir = here / "tests"
+Status = Literal["pass", "fail", "error"]
+
+
+def color(s: str, num: int, is_bright=False, is_background=False) -> str:
+ match (is_bright, is_background):
+ case (False, False):
+ pref = "3"
+ case (False, True):
+ pref = "4"
+ case (True, False):
+ pref = "9"
+ case (True, True):
+ pref = "10"
+ return f"\x1b[{pref}{num}m{s}\x1b[0m"
+
+
+class Colorer:
+ def __init__(self) -> None:
+ self.is_term = sys.stdout.isatty()
+
+ def _colour(self, s: str, num: int, is_bright=False, is_background=False) -> str:
+ if not self.is_term:
+ return s
+ return color(s, num, is_bright, is_background)
+
+ def r(self, s: str) -> str:
+ return self._colour(s, 1)
+
+ def g(self, s: str) -> str:
+ return self._colour(s, 2)
+
+ def y(self, s: str) -> str:
+ return self._colour(s, 3)
+
+ def m(self, s: str) -> str:
+ return self._colour(s, 5)
+
+ def status(self, s: Status) -> str:
+ match s:
+ case "pass":
+ return self.g(s)
+ case "fail":
+ return self.r(s)
+ case "error":
+ return self.m(s)
+ case other:
+ raise ValueError(f"Unknown status '{other}'")
+
@dataclass
class CommandOutput:
@@ -39,7 +89,7 @@ def from_jso(cls, jso: dict[str, Any]) -> Self:
@dataclass
class TestResult:
test_name: str
- status: Literal["pass", "fail", "error"]
+ status: Status
message: str | None
stderr: str
return_code: int
@@ -48,14 +98,12 @@ class TestResult:
@dataclass
class Conformance:
- strict: bool
valid: bool
description: bool | None
@classmethod
def from_jso(cls, jso: dict[str, Any]) -> Self:
return cls(
- strict=jso.get("strict", False),
valid=jso.get("valid", True),
description=jso.get("description"),
)
@@ -80,25 +128,21 @@ def __init__(
self,
exclude_patterns: list[re.Pattern] | None = None,
include_patterns: list[re.Pattern] | None = None,
- exclude_strict=False,
exclude_invalid=False,
) -> None:
self.exclude_patterns = exclude_patterns or []
self.include_patterns = include_patterns or []
- if exclude_strict:
- self.exclude_patterns.append(re.compile(r"^strict/"))
if exclude_invalid:
self.exclude_patterns.append(re.compile(r"^\w+/invalid/"))
def include(self, name: str) -> bool:
if self.exclude_patterns and any(p.search(name) for p in self.exclude_patterns):
return False
- if self.include_patterns and not any(
- p.search(name) for p in self.include_patterns
- ):
- return False
- return True
+
+ if not self.include_patterns:
+ return True
+ return any(p.search(name) for p in self.include_patterns)
def test_path_to_name(fpath: Path, root: Path) -> str:
@@ -110,7 +154,9 @@ def run_test(dingus_cmd: list[str], fpath: Path, test_name: str) -> TestResult:
test_logger = logger.getChild(test_name)
strictness, validity, *_ = test_name.split("/")
- if strictness not in ("strict", "spec"):
+ # previously there were "strict" tests which treated schema SHOULDs as MUSTs;
+ # these have since been removed
+ if strictness != "spec":
raise RuntimeError(f"cannot determine strictness from name: {test_name}")
if validity == "invalid":
@@ -124,6 +170,7 @@ def run_test(dingus_cmd: list[str], fpath: Path, test_name: str) -> TestResult:
dingus_cmd + [os.fspath(fpath)],
text=True,
capture_output=True,
+ check=False,
)
if res.returncode:
@@ -205,7 +252,7 @@ def main(raw_args=None):
"--exclude-strict",
"-S",
action="store_true",
- help="exclude strict tests",
+ help="DEPRECATED: exclude strict tests",
)
parser.add_argument(
"--exclude-invalid",
@@ -241,7 +288,12 @@ def main(raw_args=None):
3: logging.DEBUG,
}.get(args.verbose, logging.DEBUG)
logging.basicConfig(level=lvl)
- logging.debug("Got args: %s", args)
+ logger.debug("Got args: %s", args)
+
+ if args.exclude_strict:
+ logger.warning(
+ "Strict test cases are deprecated; -S/--exclude-strict argument is implicit and will soon be removed."
+ )
if dingus_args is None:
print(
@@ -267,21 +319,18 @@ def main(raw_args=None):
req = Requested(
exclude_patterns=args.exclude_pattern,
include_patterns=args.include_pattern,
- exclude_strict=bool(args.exclude_strict),
exclude_invalid=bool(args.exclude_invalid),
)
test_paths = ((test_path_to_name(p, dpath), p) for p in dpath.rglob(rglob))
cases = dict(sorted((n, p) for n, p in test_paths if req.include(n)))
+ c = Colorer()
+
for res in run_all_tests(
dingus_args,
cases,
):
- row = [
- res.test_name,
- res.status,
- ]
if res.status == "pass":
passes += 1
elif res.status == "fail":
@@ -289,6 +338,13 @@ def main(raw_args=None):
elif res.status == "error":
errors += 1
+ row = [
+ res.test_name,
+ c.status(res.status),
+ ]
+ if res.message:
+ row.append(" ".join(res.message.split()))
+
print("\t".join(row))
logger.info("Got %s passes, %s failures, %s errors", passes, failures, errors)
diff --git a/examples/label/.config.json b/examples/label/.config.json
new file mode 100644
index 00000000..095b45e7
--- /dev/null
+++ b/examples/label/.config.json
@@ -0,0 +1,3 @@
+{
+ "schema": "schemas/label.schema"
+}
diff --git a/examples/label_strict/colors_properties.json b/examples/label/colors_properties.json
similarity index 100%
rename from examples/label_strict/colors_properties.json
rename to examples/label/colors_properties.json
diff --git a/examples/label_strict/.config.json b/examples/label_strict/.config.json
deleted file mode 100644
index e7329dc9..00000000
--- a/examples/label_strict/.config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "schema": "schemas/strict_label.schema"
-}
diff --git a/examples/multiscales/.config.json b/examples/multiscales/.config.json
new file mode 100644
index 00000000..029ae09c
--- /dev/null
+++ b/examples/multiscales/.config.json
@@ -0,0 +1,3 @@
+{
+ "schema": "schemas/image.schema"
+}
\ No newline at end of file
diff --git a/examples/multiscales_strict/multiscales_example.json b/examples/multiscales/multiscales_example.json
similarity index 100%
rename from examples/multiscales_strict/multiscales_example.json
rename to examples/multiscales/multiscales_example.json
diff --git a/examples/multiscales_strict/multiscales_example_relative.json b/examples/multiscales/multiscales_example_relative.json
similarity index 100%
rename from examples/multiscales_strict/multiscales_example_relative.json
rename to examples/multiscales/multiscales_example_relative.json
diff --git a/examples/multiscales_strict/multiscales_reference_to_label.json b/examples/multiscales/multiscales_reference_to_label.json
similarity index 100%
rename from examples/multiscales_strict/multiscales_reference_to_label.json
rename to examples/multiscales/multiscales_reference_to_label.json
diff --git a/examples/multiscales_strict/multiscales_transformations.json b/examples/multiscales/multiscales_transformations.json
similarity index 100%
rename from examples/multiscales_strict/multiscales_transformations.json
rename to examples/multiscales/multiscales_transformations.json
diff --git a/examples/multiscales_strict/.config.json b/examples/multiscales_strict/.config.json
deleted file mode 100644
index b0469538..00000000
--- a/examples/multiscales_strict/.config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "schema": "schemas/strict_image.schema"
-}
diff --git a/examples/plate/.config.json b/examples/plate/.config.json
new file mode 100644
index 00000000..939366ad
--- /dev/null
+++ b/examples/plate/.config.json
@@ -0,0 +1,3 @@
+{
+ "schema": "schemas/plate.schema"
+}
\ No newline at end of file
diff --git a/examples/plate_strict/plate_2wells.json b/examples/plate/plate_2wells.json
similarity index 100%
rename from examples/plate_strict/plate_2wells.json
rename to examples/plate/plate_2wells.json
diff --git a/examples/plate_strict/plate_6wells.json b/examples/plate/plate_6wells.json
similarity index 100%
rename from examples/plate_strict/plate_6wells.json
rename to examples/plate/plate_6wells.json
diff --git a/examples/plate_strict/.config.json b/examples/plate_strict/.config.json
deleted file mode 100644
index a49b1743..00000000
--- a/examples/plate_strict/.config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "schema": "schemas/strict_plate.schema"
-}
diff --git a/examples/well/.config.json b/examples/well/.config.json
new file mode 100644
index 00000000..af9ba888
--- /dev/null
+++ b/examples/well/.config.json
@@ -0,0 +1,3 @@
+{
+ "schema": "schemas/well.schema"
+}
\ No newline at end of file
diff --git a/examples/well_strict/well_2fields.json b/examples/well/well_2fields.json
similarity index 100%
rename from examples/well_strict/well_2fields.json
rename to examples/well/well_2fields.json
diff --git a/examples/well_strict/well_4fields.json b/examples/well/well_4fields.json
similarity index 100%
rename from examples/well_strict/well_4fields.json
rename to examples/well/well_4fields.json
diff --git a/examples/well_strict/.config.json b/examples/well_strict/.config.json
deleted file mode 100644
index 129ac69c..00000000
--- a/examples/well_strict/.config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "schema": "schemas/strict_well.schema"
-}
diff --git a/index.md b/index.md
index 382bb634..fa3cb7ee 100644
--- a/index.md
+++ b/index.md
@@ -429,7 +429,7 @@ The following transformations are supported:
| [`bijection`](#bijection-md) | `"forward":Transformation`
`"inverse":Transformation` | An invertible transformation providing an explicit forward transformation and its inverse. |
| [`byDimension`](#bydimension-md) | `"transformations":List[Transformation]`.
Transformations in the array MUST have
`"inputAxes": List[number]`,
and `"outputAxes": List[number]` | A high dimensional transformation using lower dimensional transformations on subsets of dimensions. |
-The parameter values (e.g., `scale` for a [scale transformation](#scale-md)) MUST be compatible with input and output space dimensionality (see details).
+The parameter values (e.g., `scale` for a [scale transformation](#scale-md)) MUST be compatible with input and output space dimensionality (see details).
The `input` and `output` fields are objects structured as follows:
@@ -471,7 +471,7 @@ Depending on which, different constraints apply to the transformations, as descr
- Both `input` and `output` MUST specify a coordinate system `name`.
- `path` is required when referencing a coordinate system in a multiscale image subgroup;
it MAY be omitted or null when referencing a coordinate system defined in the scene's own `coordinateSystems`.
-
+
In any context, the values given for `name` and `path` provide an unambiguous reference to a named coordinate system.
If the `path` field is null or omitted, this is to be interpreted as referring to a named coordinate system in the same `zarr.json` file.
@@ -1107,7 +1107,7 @@ An exact reproducibility of pixel values for images transformed and resampled by
The multiscale group at `path` MUST satisfy:
- **Dimensionality**: If the input coordinate system has `N` axes, the multiscale image at location `path` MUST have `N+1` dimensions.
- - **Vector dimension length**:
+ - **Vector dimension length**:
- For `coordinates` transformations, the length of the array along the `coordinate` dimension (last axis) MUST equal `M`,
the number of axes in the output coordinate system.
- For `displacements` transformations, the length of the array along the `displacement` dimension (last axis) MUST equal `N`,
@@ -1407,7 +1407,7 @@ In this example, a multiscales group containing labels is located at `labels/lab
:::{dropdown} Example: Complete multiscales metadata
A complete example of json-file for a 5D (TCZYX) multiscales with 3 resolution levels could look like this:
-```{literalinclude} examples/multiscales_strict/multiscales_example.json
+```{literalinclude} examples/multiscales/multiscales_example.json
:language: json
```
:::
@@ -1562,7 +1562,7 @@ In the `zarr.json` under the image.zarr group, an explicit `identity` transform
the coordinate system named `"physical"` in the multiscales metadata of the original image is the same as
the coordinate system named `"physical"` in the multiscales metadata of the label image:
-```{literalinclude} examples/multiscales_strict/multiscale_reference_to_label.json
+```{literalinclude} examples/multiscales/multiscale_reference_to_label.json
:language: json
```
@@ -1586,7 +1586,7 @@ a coordinate system named `"physical"` serves as the "[intrinsic](#spec:hint:mul
The `image-label` field contains information about the source image and display colors for the label image,
i.e., a label image in which 0s and 1s represent intercellular and cellular space, respectively:
-```{literalinclude} examples/label_strict/colors_properties.json
+```{literalinclude} examples/label/colors_properties.json
:language: json
```
@@ -1665,14 +1665,14 @@ The `rowIndex`, `columnIndex`, and `path` MUST all refer to the same row/column
For example the following JSON object defines a plate with two acquisitions and 6 wells (2 rows and 3 columns),
containing up to 2 fields of view per acquisition.
-```{literalinclude} examples/plate_strict/plate_6wells.json
+```{literalinclude} examples/plate/plate_6wells.json
:language: json
```
The following JSON object defines a sparse plate with one acquisition and 2 wells in a 96 well plate,
containing one field of view per acquisition.
-```{literalinclude} examples/plate_strict/plate_2wells.json
+```{literalinclude} examples/plate/plate_2wells.json
:language: json
```
:::
@@ -1701,14 +1701,14 @@ For example the following JSON object defines a well with four fields of view.
The first two fields of view were part of the first acquisition
while the last two fields of view were part of the second acquisition.
-```{literalinclude} examples/well_strict/well_4fields.json
+```{literalinclude} examples/well/well_4fields.json
:language: json
```
The following JSON object defines a well with two fields of view in a plate with four acquisitions.
The first field is part of the first acquisition, and the second field is part of the last acquisition.
-```{literalinclude} examples/well_strict/well_2fields.json
+```{literalinclude} examples/well/well_2fields.json
:language: json
```
:::
@@ -1866,7 +1866,7 @@ If they do so, it is RECOMMENDED that the scene's first entry under the `coordin
If no coordinate system is defined therein, but only in the respective linked multiscale groups,
viewers may want to expose a choice for the user to select a coordinate system for display when opening the dataset for the first time.
-
+
```
diff --git a/pre_build.py b/pre_build.py
index 86a4d0d9..86e4565e 100644
--- a/pre_build.py
+++ b/pre_build.py
@@ -87,14 +87,11 @@ def build_json_schemas():
"""
for schema_file in schema_files:
- if 'strict' in schema_file:
- continue # skip strict schemas
-
print(f'Processing {schema_file}...')
output_path_md = os.path.join(output_directory, f"{Path(schema_file).stem}" + ".md")
output_path_html = os.path.join(output_directory, f"{Path(schema_file).stem}" + ".html")
os.makedirs(os.path.dirname(output_path_md), exist_ok=True)
- os.makedirs(os.path.dirname(output_path_html), exist_ok=True)
+ os.makedirs(os.path.dirname(output_path_html), exist_ok=True)
# Generate the documentation
try:
diff --git a/schemas/strict_axes.schema b/schemas/strict_axes.schema
deleted file mode 100644
index 70288fbc..00000000
--- a/schemas/strict_axes.schema
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_axes.schema",
- "title": "NGFF Strict Axes",
- "description": "JSON from OME-NGFF .zattrs",
- "allOf": [
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/axes.schema"
- },
- {
- "items": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "array",
- "channel",
- "time",
- "space",
- "displacement",
- "coordinate",
- "frequency"
- ]
- }
- }
- }
- }
- ]
-}
diff --git a/schemas/strict_coordinate_systems.schema b/schemas/strict_coordinate_systems.schema
deleted file mode 100644
index 2f9c6372..00000000
--- a/schemas/strict_coordinate_systems.schema
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_coordinate_systems.schema",
- "allOf" : [
- {
- "$ref": "coordinate_systems.schema"
- },
- {
- "items": {
- "type": "object",
- "properties": {
- "axes": {
- "$ref": "strict_axes.schema"
- }
- }
- }
- }
- ]
-}
diff --git a/schemas/strict_image.schema b/schemas/strict_image.schema
deleted file mode 100644
index cb8196ed..00000000
--- a/schemas/strict_image.schema
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_image.schema",
- "allOf": [
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/image.schema"
- },
- {
- "properties": {
- "ome": {
- "properties": {
- "multiscales": {
- "items": {
- "required": [
- "metadata",
- "type",
- "name"
- ]
- }
- }
- }
- }
- }
- }
- ]
-}
diff --git a/schemas/strict_label.schema b/schemas/strict_label.schema
deleted file mode 100644
index 50322e86..00000000
--- a/schemas/strict_label.schema
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_label.schema",
- "allOf": [
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/label.schema"
- },
- {
- "properties": {
- "ome": {
- "properties": {
- "image-label": {
- "required": [
- "colors"
- ]
- }
- }
- }
- }
- }
- ]
-}
diff --git a/schemas/strict_ome_zarr.schema b/schemas/strict_ome_zarr.schema
deleted file mode 100644
index 25e75302..00000000
--- a/schemas/strict_ome_zarr.schema
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_ome_zarr.schema",
- "anyOf": [
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/bf2raw.schema"
- },
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_image.schema"
- },
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_label.schema"
- },
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/ome.schema"
- },
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_plate.schema"
- },
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_well.schema"
- }
- ]
-}
diff --git a/schemas/strict_plate.schema b/schemas/strict_plate.schema
deleted file mode 100644
index 0a23bb36..00000000
--- a/schemas/strict_plate.schema
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_plate.schema",
- "allOf": [
- {
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/plate.schema"
- },
- {
- "properties": {
- "ome": {
- "properties": {
- "plate": {
- "properties": {
- "acquisitions": {
- "items": {
- "required": [
- "name",
- "maximumfieldcount"
- ]
- }
- }
- },
- "required": [
- "name"
- ]
- }
- }
- }
- }
- }
- ]
-}
diff --git a/schemas/strict_well.schema b/schemas/strict_well.schema
deleted file mode 100644
index 004860ea..00000000
--- a/schemas/strict_well.schema
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "$id": "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_well.schema",
- "$ref": "https://ngff.openmicroscopy.org/0.6rc0/schemas/well.schema"
-}
diff --git a/tests/attributes/strict/invalid/label/no_colors.json b/tests/attributes/strict/invalid/label/no_colors.json
deleted file mode 100644
index de107479..00000000
--- a/tests/attributes/strict/invalid/label/no_colors.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "image-label": {}
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_label.schema"
- },
- "description": "Tests for the strict image-label JSON schema: ",
- "valid": false,
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json b/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
deleted file mode 100644
index c84e1252..00000000
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_maximumfieldcount.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "ome": {
- "version": "0.6rc02",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "name": "0"
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false,
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json b/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
deleted file mode 100644
index fcf1204f..00000000
--- a/tests/attributes/strict/invalid/plate/missing_acquisition_name.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "maximumfieldcount": 1
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false,
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/invalid/plate/missing_name.json b/tests/attributes/strict/invalid/plate/missing_name.json
deleted file mode 100644
index 61631838..00000000
--- a/tests/attributes/strict/invalid/plate/missing_name.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "ome": {
- "version": "0.6rc02",
- "plate": {
- "columns": [
- {
- "name": "A"
- }
- ],
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false,
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image.json b/tests/attributes/strict/valid/image/image.json
deleted file mode 100644
index 8606c08c..00000000
--- a/tests/attributes/strict/valid/image/image.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "s0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1
- ],
- "type": "scale",
- "input": {"path": "s0"},
- "output": {"name": "physical"}
- }
- ]
- }
- ],
- "name": "simple_image",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- },
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image_metadata.json b/tests/attributes/strict/valid/image/image_metadata.json
deleted file mode 100644
index b081fd9e..00000000
--- a/tests/attributes/strict/valid/image/image_metadata.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "@id": "top",
- "@type": "ngff:Image",
- "multiscales": [
- {
- "@id": "inner",
- "name": "example",
- "datasets": [
- {
- "path": "path/to/0",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1,
- 1
- ],
- "input": {"path": "path/to/0"},
- "output": {"name": "physical"}
- }
- ]
- }
- ],
- "type": "gaussian",
- "metadata": {
- "method": "skimage.transform.pyramid_gaussian",
- "version": "0.16.1",
- "args": [
- "true",
- "false"
- ],
- "kwargs": {
- "multichannel": true
- }
- },
- "coordinateSystems": [
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ]
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- },
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/image_omero.json b/tests/attributes/strict/valid/image/image_omero.json
deleted file mode 100644
index c61a7d70..00000000
--- a/tests/attributes/strict/valid/image/image_omero.json
+++ /dev/null
@@ -1,167 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "t",
- "type": "time"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "physical",
- "axes": [
- {
- "name": "t",
- "type": "time"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "s0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1,
- 0.5,
- 0.13,
- 0.13
- ],
- "type": "scale",
- "input": {"path": "s0"},
- "output": {"name": "physical"}
- }
- ]
- },
- {
- "path": "s1",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1,
- 1,
- 0.26,
- 0.26
- ],
- "type": "scale",
- "input": {"path": "s1"},
- "output": {"name": "physical"}
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "translation": [
- 0,
- 9,
- 0.5,
- 25.74,
- 21.58
- ],
- "type": "translation",
- "input": {"name": "intrinsic"},
- "output": {"name": "world"}
- }
- ],
- "name": "image_with_omero_metadata",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ],
- "omero": {
- "channels": [
- {
- "active": true,
- "coefficient": 1.0,
- "color": "00FF00",
- "family": "linear",
- "inverted": false,
- "label": "FITC",
- "window": {
- "end": 813.0,
- "max": 870.0,
- "min": 102.0,
- "start": 82.0
- }
- },
- {
- "active": true,
- "coefficient": 1.0,
- "color": "FF0000",
- "family": "linear",
- "inverted": false,
- "label": "RD-TR-PE",
- "window": {
- "end": 815.0,
- "max": 441.0,
- "min": 129.0,
- "start": 78.0
- }
- }
- ],
- "id": 1,
- "rdefs": {
- "defaultT": 0,
- "defaultZ": 2,
- "model": "color"
- },
- "version": "0.6rc0"
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- },
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/multiscales_example.json b/tests/attributes/strict/valid/image/multiscales_example.json
deleted file mode 100644
index 34fce6b1..00000000
--- a/tests/attributes/strict/valid/image/multiscales_example.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "name": "example",
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "t",
- "type": "time",
- "unit": "millisecond"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "intrinsic",
- "axes": [
- {
- "name": "t",
- "type": "time",
- "unit": "millisecond"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "s0",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 0.5,
- 0.5,
- 0.5
- ],
- "input": {"path": "s0"},
- "output": {"name": "intrinsic"}
- }
- ]
- },
- {
- "path": "1",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0
- ],
- "input": {"path": "s1"},
- "output": {"name": "intrinsic"}
- }
- ]
- },
- {
- "path": "s2",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 2.0,
- 2.0,
- 2.0
- ],
- "input": {"path": "s2"},
- "output": {"name": "intrinsic"}
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 0.1,
- 1.0,
- 1.0,
- 1.0,
- 1.0
- ],
- "input": {"name": "world"},
- "output": {"name": "intrinsic"}
- }
- ],
- "type": "gaussian",
- "metadata": {
- "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
- "method": "skimage.transform.pyramid_gaussian",
- "version": "0.16.1",
- "args": "[true]",
- "kwargs": {
- "multichannel": true
- }
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- },
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/image/multiscales_transformations.json b/tests/attributes/strict/valid/image/multiscales_transformations.json
deleted file mode 100644
index ecd09381..00000000
--- a/tests/attributes/strict/valid/image/multiscales_transformations.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "s0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1
- ],
- "type": "scale",
- "input": {"path": "s0"},
- "output": {"name": "physical"}
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "scale": [
- 10,
- 10
- ],
- "type": "scale",
- "input": {"name": "physical"},
- "output": {"name": "world"}
- }
- ],
- "name": "image_with_coordinateTransformations",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- },
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/plate/strict_acquisitions.json b/tests/attributes/strict/valid/plate/strict_acquisitions.json
deleted file mode 100644
index 16520059..00000000
--- a/tests/attributes/strict/valid/plate/strict_acquisitions.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "name": "0",
- "maximumfieldcount": 1
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json b/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
deleted file mode 100644
index c531aca2..00000000
--- a/tests/attributes/strict/valid/plate/strict_no_acquisitions.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/well/strict_acquisitions.json b/tests/attributes/strict/valid/well/strict_acquisitions.json
deleted file mode 100644
index 841a6929..00000000
--- a/tests/attributes/strict/valid/well/strict_acquisitions.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "well": {
- "images": [
- {
- "acquisition": 0,
- "path": "0"
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_well.schema"
- },
- "description": "Tests for the strict well JSON schema: ",
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/attributes/strict/valid/well/strict_no_acquisitions.json b/tests/attributes/strict/valid/well/strict_no_acquisitions.json
deleted file mode 100644
index 58bfe147..00000000
--- a/tests/attributes/strict/valid/well/strict_no_acquisitions.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "ome": {
- "version": "0.6rc0",
- "well": {
- "images": [
- {
- "path": "0"
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_well.schema"
- },
- "description": "Tests for the strict well JSON schema: ",
- "strict": true
- }
-}
\ No newline at end of file
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
index 8e1e51b1..974fa9b8 100644
--- a/tests/test_attributes.py
+++ b/tests/test_attributes.py
@@ -1,10 +1,10 @@
+import json
from pathlib import Path
from typing import Any
-import json
import pytest
-
-from jsonschema import RefResolver, Draft202012Validator as Validator
+from jsonschema import Draft202012Validator as Validator
+from jsonschema import RefResolver
from jsonschema.exceptions import ValidationError
here = Path(__file__).resolve().parent
@@ -24,9 +24,6 @@
GENERIC_SCHEMA = schema_store[
f"https://ngff.openmicroscopy.org/{version}/schemas/ome_zarr.schema"
]
-STRICT_SCHEMA = schema_store[
- f"https://ngff.openmicroscopy.org/{version}/schemas/strict_ome_zarr.schema"
-]
case_fnames = sorted(attrs_dir.rglob("*.json"))
@@ -46,22 +43,16 @@ def test_attributes(case_fname: Path):
conformance = case_obj.get("_conformance", {})
valid = conformance.get("valid", True)
- strict = conformance.get("strict", False)
-
- if strict:
- schema = STRICT_SCHEMA
- else:
- schema = GENERIC_SCHEMA
resolver = RefResolver.from_schema(
- schema,
+ GENERIC_SCHEMA,
store=schema_store,
)
validator_cls = Validator
validator = validator_cls(
- schema,
+ GENERIC_SCHEMA,
resolver=resolver,
)
diff --git a/tests/test_validation.py b/tests/test_validation.py
index 1f38f354..923208f4 100644
--- a/tests/test_validation.py
+++ b/tests/test_validation.py
@@ -1,21 +1,19 @@
-import json
import glob
+import json
import os
-
from dataclasses import dataclass
-from typing import List
+from pathlib import Path
import pytest
-
-from jsonschema import RefResolver, Draft202012Validator as Validator
+from jsonschema import Draft202012Validator as Validator
+from jsonschema import RefResolver
from jsonschema.exceptions import ValidationError
-from pathlib import Path
os.chdir(Path(__file__).parent.parent)
schema_store = {}
for schema_filename in glob.glob("schemas/*"):
- if schema_filename.endswith('.schema'):
+ if schema_filename.endswith(".schema"):
with open(schema_filename) as f:
schema = json.load(f)
schema_store[schema["$id"]] = schema
@@ -23,9 +21,6 @@
GENERIC_SCHEMA = schema_store[
"https://ngff.openmicroscopy.org/0.6rc0/schemas/ome_zarr.schema"
]
-GENERIC_STRICT_SCHEMA = schema_store[
- "https://ngff.openmicroscopy.org/0.6rc0/schemas/strict_ome_zarr.schema"
-]
@dataclass
@@ -65,8 +60,8 @@ def pytest_generate_tests(metafunc):
if "suite" not in metafunc.fixturenames:
return
- suites: List[Suite] = []
- ids: List[str] = []
+ suites: list[Suite] = []
+ ids: list[str] = []
# Validation
for filename in glob.glob("tests/*.json"):
@@ -127,8 +122,8 @@ def test_example_configs():
if has_examples and not has_config:
missing.append(subdir[0])
if missing:
- raise Exception(f"Directories missing configs: {missing}")
+ raise FileNotFoundError(f"Directories missing configs: {missing}")
-if __name__ == '__main__':
- pytest.main([__file__])
\ No newline at end of file
+if __name__ == "__main__":
+ pytest.main([__file__])
diff --git a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json b/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
deleted file mode 100644
index cedf31b6..00000000
--- a/tests/zarr/strict/invalid/label/no_colors.ome.zarr/zarr.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "image-label": {}
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_label.schema"
- },
- "description": "Tests for the strict image-label JSON schema: ",
- "valid": false
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
deleted file mode 100644
index d25d7075..00000000
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_maximumfieldcount.ome.zarr/zarr.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "name": "0"
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
deleted file mode 100644
index bc04d4e3..00000000
--- a/tests/zarr/strict/invalid/plate/missing_acquisition_name.ome.zarr/zarr.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "maximumfieldcount": 1
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json b/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
deleted file mode 100644
index 29074140..00000000
--- a/tests/zarr/strict/invalid/plate/missing_name.ome.zarr/zarr.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "columns": [
- {
- "name": "A"
- }
- ],
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: ",
- "valid": false
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json
deleted file mode 100644
index 0d22914c..00000000
--- a/tests/zarr/strict/valid/image/image.ome.zarr/zarr.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1
- ],
- "type": "scale",
- "input": "0",
- "output": "physical"
- }
- ]
- }
- ],
- "name": "simple_image",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json
deleted file mode 100644
index 1bd58af9..00000000
--- a/tests/zarr/strict/valid/image/image_metadata.ome.zarr/zarr.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "@id": "top",
- "@type": "ngff:Image",
- "multiscales": [
- {
- "@id": "inner",
- "name": "example",
- "datasets": [
- {
- "path": "path/to/0",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1,
- 1
- ],
- "input": "path/to/0",
- "output": "physical"
- }
- ]
- }
- ],
- "type": "gaussian",
- "metadata": {
- "method": "skimage.transform.pyramid_gaussian",
- "version": "0.16.1",
- "args": [
- "true",
- "false"
- ],
- "kwargs": {
- "multichannel": true
- }
- },
- "coordinateSystems": [
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ]
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json
deleted file mode 100644
index e8222896..00000000
--- a/tests/zarr/strict/valid/image/image_omero.ome.zarr/zarr.json
+++ /dev/null
@@ -1,170 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "t",
- "type": "time"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "physical",
- "axes": [
- {
- "name": "t",
- "type": "time"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1,
- 0.5,
- 0.13,
- 0.13
- ],
- "type": "scale",
- "input": "0",
- "output": "physical"
- }
- ]
- },
- {
- "path": "1",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1,
- 1,
- 0.26,
- 0.26
- ],
- "type": "scale",
- "input": "1",
- "output": "physical"
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "translation": [
- 0,
- 9,
- 0.5,
- 25.74,
- 21.58
- ],
- "type": "translation",
- "input": "intrinsic",
- "output": "world"
- }
- ],
- "name": "image_with_omero_metadata",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ],
- "omero": {
- "channels": [
- {
- "active": true,
- "coefficient": 1.0,
- "color": "00FF00",
- "family": "linear",
- "inverted": false,
- "label": "FITC",
- "window": {
- "end": 813.0,
- "max": 870.0,
- "min": 102.0,
- "start": 82.0
- }
- },
- {
- "active": true,
- "coefficient": 1.0,
- "color": "FF0000",
- "family": "linear",
- "inverted": false,
- "label": "RD-TR-PE",
- "window": {
- "end": 815.0,
- "max": 441.0,
- "min": 129.0,
- "start": 78.0
- }
- }
- ],
- "id": 1,
- "rdefs": {
- "defaultT": 0,
- "defaultZ": 2,
- "model": "color"
- },
- "version": "0.6rc0"
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json
deleted file mode 100644
index e9c87a85..00000000
--- a/tests/zarr/strict/valid/image/multiscales_example.ome.zarr/zarr.json
+++ /dev/null
@@ -1,156 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "name": "example",
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "t",
- "type": "time",
- "unit": "millisecond"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "intrinsic",
- "axes": [
- {
- "name": "t",
- "type": "time",
- "unit": "millisecond"
- },
- {
- "name": "c",
- "type": "channel"
- },
- {
- "name": "z",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "0",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 0.5,
- 0.5,
- 0.5
- ],
- "input": "0",
- "output": "intrinsic"
- }
- ]
- },
- {
- "path": "1",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0
- ],
- "input": "1",
- "output": "intrinsic"
- }
- ]
- },
- {
- "path": "2",
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 1.0,
- 1.0,
- 2.0,
- 2.0,
- 2.0
- ],
- "input": "2",
- "output": "intrinsic"
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "type": "scale",
- "scale": [
- 0.1,
- 1.0,
- 1.0,
- 1.0,
- 1.0
- ],
- "input": "world",
- "output": "intrinsic"
- }
- ],
- "type": "gaussian",
- "metadata": {
- "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
- "method": "skimage.transform.pyramid_gaussian",
- "version": "0.16.1",
- "args": "[true]",
- "kwargs": {
- "multichannel": true
- }
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json b/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json
deleted file mode 100644
index eb562ead..00000000
--- a/tests/zarr/strict/valid/image/multiscales_transformations.ome.zarr/zarr.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "multiscales": [
- {
- "coordinateSystems": [
- {
- "name": "world",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- },
- {
- "name": "physical",
- "axes": [
- {
- "name": "y",
- "type": "space",
- "unit": "micrometer"
- },
- {
- "name": "x",
- "type": "space",
- "unit": "micrometer"
- }
- ]
- }
- ],
- "datasets": [
- {
- "path": "0",
- "coordinateTransformations": [
- {
- "scale": [
- 1,
- 1
- ],
- "type": "scale",
- "input": "0",
- "output": "physical"
- }
- ]
- }
- ],
- "coordinateTransformations": [
- {
- "scale": [
- 10,
- 10
- ],
- "type": "scale",
- "input": "physical",
- "output": "world"
- }
- ],
- "name": "image_with_coordinateTransformations",
- "type": "foo",
- "metadata": {
- "key": "value"
- }
- }
- ]
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_image.schema"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json
deleted file mode 100644
index c9b5a501..00000000
--- a/tests/zarr/strict/valid/plate/strict_acquisitions.ome.zarr/zarr.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "acquisitions": [
- {
- "id": 0,
- "name": "0",
- "maximumfieldcount": 1
- }
- ],
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: "
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json
deleted file mode 100644
index dc80db86..00000000
--- a/tests/zarr/strict/valid/plate/strict_no_acquisitions.ome.zarr/zarr.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "plate": {
- "columns": [
- {
- "name": "A"
- }
- ],
- "name": "test plate",
- "rows": [
- {
- "name": "1"
- }
- ],
- "wells": [
- {
- "path": "A/1",
- "rowIndex": 0,
- "columnIndex": 0
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_plate.schema"
- },
- "description": "Tests for the strict plate JSON schema: "
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json
deleted file mode 100644
index 457197f8..00000000
--- a/tests/zarr/strict/valid/well/strict_acquisitions.ome.zarr/zarr.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "well": {
- "images": [
- {
- "acquisition": 0,
- "path": "0"
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_well.schema"
- },
- "description": "Tests for the strict well JSON schema: "
- }
- }
-}
\ No newline at end of file
diff --git a/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json b/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json
deleted file mode 100644
index 3836d3a9..00000000
--- a/tests/zarr/strict/valid/well/strict_no_acquisitions.ome.zarr/zarr.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "zarr_format": 3,
- "node_type": "group",
- "attributes": {
- "ome": {
- "version": "0.6rc0",
- "well": {
- "images": [
- {
- "path": "0"
- }
- ]
- }
- },
- "_conformance": {
- "schema": {
- "id": "schemas/strict_well.schema"
- },
- "description": "Tests for the strict well JSON schema: "
- }
- }
-}
\ No newline at end of file