From 5fc66ebee2f54da87b102a44fac003bb1d17f50a Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 30 Oct 2026 17:41:33 +0000 Subject: [PATCH 1/5] Add infrastructure for transform_coordinates tests --- README.md | 7 + cases/transform_coordinates/README.md | 67 +++---- src/oztest/kinds/common.py | 143 +++++++++++++- src/oztest/kinds/parse_attributes.py | 122 ++---------- src/oztest/kinds/transform_coordinates.py | 214 +++++++++++++++++++++ src/oztest/types.py | 10 +- uv.lock | 222 ++-------------------- 7 files changed, 430 insertions(+), 355 deletions(-) diff --git a/README.md b/README.md index d6d929d..8a9c328 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,13 @@ repo in [PR #5](https://github.com/clbarnes/oztest/pull/5). The script used for from the `ngff-spec` repo at commit [5c76733](https://github.com/ome/ngff-spec/commit/5c76733fe3a1f97a3957909c879b15d57689f74e). The script used for this import is under `scripts/import_v06_cases.py`. +## Custom test cases + +If you extend your implementation to include metadata not in the OME-Zarr spec, you can use oztest too. + +Structure your test cases in the same directory hierarchy +and use the `--custom-cases` argument to have them included in test discovery. + ## Versioning This project is currently in alpha (`0.x` series). diff --git a/cases/transform_coordinates/README.md b/cases/transform_coordinates/README.md index e93457a..d075c83 100644 --- a/cases/transform_coordinates/README.md +++ b/cases/transform_coordinates/README.md @@ -8,30 +8,38 @@ They do NOT test implementations' capability to transform images on the basis of Each test case is an OME-Zarr hierarchy with a Scene in the root node. This Scene contains a graph of coordinate systems joined by coordinate transformations. -At the root of each OME-Zarr hierarchy is a `conformance.toml` file, which lays out: - -```toml -description = "The first case of my comprehensive and totally correct test suite." - -# result should be within 0.000_001 of expected value -absolute_tolerance = 1e-06 - -# result should be within 0.1% of expected value -relative_tolerance = 0.001 - -[source] -name = "inputSystem" # name of the input coordinate system -coordinates = [ - [ -1, -1, -1 ], # first 3D input coordinate - [ 0, 0, 0 ], # second 3D input coordinate -] - -[target] -name = "outputSystem" # name of the output coordinate system -coordinates = [ - [ 18, 57, 16 ], # first 3D expected output coordinate - [ 20, 60, 120 ], # second 3D expected output coordinate -] +At the root of each OME-Zarr hierarchy is an `oztest.json` file, which lays out: + +```jsonc +{ + "description": "The first case of my comprehensive and totally correct test suite.", + "transform_coordinates": { + "tolerance": { // optional, defaults as shown + "relative": 0.00001, // optional, default as shown + "absolute": 0.00000001 // optional, default as shown + }, + "source": { + // input coordinate system name + "name": "mySourceCoordinateSystem", + "coordinates": [ + // first input coordinate + [-1, -1, -1], + // second input coordinate + [0, 0, 0] + ] + }, + "target": { + // output coordinate system name + "name": "myTargetCoordinateSystem", + "coordinates": [ + // expected result of transforming first input coordinate + [ 18, 57, 16 ], + // expected result of transforming second input coordinate + [ 20, 60, 120 ] + ] + } + } +} ``` Users of the conformance tests should @@ -41,7 +49,8 @@ Users of the conformance tests should 3. construct the coordinate system graph 4. find a path through the graph from the input to the output coordinate system 5. apply the resulting coordinate transform sequence to the input coordinates -6. check that the resulting coordinates equal the given output coordinates, to within the given tolerances +6. check that the resulting coordinates are close to the given output coordinates, using the `numpy.allclose` algorithm + `|a - b| <= (absolute + relative * |b|)` raising an error if any of these steps are not possible. @@ -79,7 +88,6 @@ The dingus MUST then 5. exit with status code 0 If any of the above steps are not supported by the implementation, the dingus MUST exit with a status code other than 0. -In this case, it MAY print to STDOUT a JSON-serialised [Error](#object-response) object. For the example above, a passing test would exit with status code 0 after printing @@ -93,9 +101,4 @@ For the example above, a passing test would exit with status code 0 after printi | ----- | --------- | ---- | ----------- | | coordinates | MUST | array of array of number | The resulting coordinates from transforming the input. | | message | MAY | string | Free-text details. | - -### Object: Error - -| field | necessity | type | description | -| ----- | --------- | ---- | ----------- | -| message | MAY | string | Free-text description of error. | +| xfail | MAY | boolean, default `false` | Whether the dingus expected to fail this test. | diff --git a/src/oztest/kinds/common.py b/src/oztest/kinds/common.py index 8827057..925683a 100644 --- a/src/oztest/kinds/common.py +++ b/src/oztest/kinds/common.py @@ -1,19 +1,22 @@ from __future__ import annotations +import asyncio +import json import logging import sys -from collections.abc import Generator +from collections.abc import Awaitable, Generator from contextlib import contextmanager from dataclasses import dataclass +from importlib.metadata import version from pathlib import Path -from typing import IO, Literal, NamedTuple +from typing import IO, Literal, NamedTuple, Protocol, Self, TypeAlias, cast -from rich.progress import Progress +from rich import print as rprint +from rich.progress import Progress, TaskID -from ..case_filter import Case +from oztest.types import JSON, Status -JSON = int | float | str | None | list["JSON"] | dict[str, "JSON"] -Status = Literal["pass", "fail", "error", "skip", "xfail"] +from ..case_filter import Case, CaseFilter logger = logging.getLogger(__name__) @@ -46,10 +49,24 @@ class Result(NamedTuple): stderr: str | None +@dataclass +class Oztest: + description: str | None = None + + @classmethod + def from_jso(cls, jso: JSON) -> Self: + if not isinstance(jso, dict): + raise TypeError(f"Expected JSON object, got {type(jso).__name__}") + return cls(cast(str, jso.get("description"))) + + +OutputFormat: TypeAlias = Literal["tsv", "json"] + + @dataclass class OutputConfig: out_file: Path | None - format: Literal["tsv", "json"] + format: OutputFormat progress: Progress def is_a_tty(self) -> bool: @@ -66,3 +83,115 @@ def open(self) -> Generator[IO[str]]: with open(self.out_file, "w") as f: yield f + + +async def read_stream(stream: None | asyncio.StreamReader) -> str | None: + if stream is None: + logger.debug("No output") + return None + b = await stream.read() + return b.decode() + + +async def read_json(stream: None | asyncio.StreamReader, logger=logger) -> JSON | None: + s = await read_stream(stream) + if not s: + return s + logger.debug("Got raw output: %s", s) + return json.loads(s) + + +@dataclass +class ValidationResult: + case: Case + invocation: list[str] + status: Status + message: str | None + + @classmethod + def field_names(cls, full=True) -> list[str]: + out = ["slug"] + if full: + out.extend( + [ + "kind", + "oz_version", + "profile", + "expected_validity", + "name", + ] + ) + out.extend(["result", "message"]) + return out + + def to_dict(self, full=True, color=False) -> dict[str, str]: + d = {"slug": self.case.slug()} + if full: + d.update( + { + "kind": self.case.kind, + "oz_version": str(self.case.version), + "profile": self.case.profile, + "expected_validity": self.case.validity, + "name": self.case.name, + } + ) + + if color: + d["result"] = format_status(self.status) + else: + d["result"] = self.status + + if self.message is not None: + d["message"] = self.message + return d + + +class Runner(Protocol): + def __call__( + self, dingus: list[str], case: Case, prog_task: tuple[Progress, TaskID] + ) -> Awaitable[ValidationResult]: ... + + +async def run_cases( + dingus: list[str], + cases: CaseFilter, + output: OutputConfig, + runner: Runner, +): + futs: list[Awaitable[ValidationResult]] = [] + prog = output.progress + gath_task = prog.add_task("Gathering cases", total=None) + exec_task = prog.add_task("Running tests", total=None, start=False) + for tcase, should_run in cases: + if not should_run: + continue + futs.append(runner(dingus, tcase, (prog, exec_task))) + prog.advance(gath_task) + prog.stop_task(gath_task) + prog.update(exec_task, total=len(futs)) + prog.start_task(exec_task) + results = await asyncio.gather(*futs) + prog.stop_task(exec_task) + + match output.format: + case "json": + results = [v.to_dict(True, False) for v in results] + jso = { + "command": dingus, + "oztest_version": version("oztest"), + "results": results, + } + with output.open() as f: + json.dump(jso, f, indent=2, sort_keys=True) + case "tsv": + with output.open() as f: + delim = "\t" + field_names = ValidationResult.field_names(False) + # Can't use csv.DictWriter here because we may need to use `rich.print` to color status output. + rprint(delim.join(field_names), file=f) + for v in results: + d = v.to_dict(False, output.is_a_tty()) + rprint(delim.join(d.get(n, "") for n in field_names), file=f) + case s: + raise RuntimeError(f"Unknown output format '{s}'") diff --git a/src/oztest/kinds/parse_attributes.py b/src/oztest/kinds/parse_attributes.py index 8e37e17..f5fd780 100644 --- a/src/oztest/kinds/parse_attributes.py +++ b/src/oztest/kinds/parse_attributes.py @@ -1,38 +1,25 @@ import asyncio -import json import logging import subprocess as sp -from collections.abc import Awaitable from dataclasses import dataclass -from importlib.metadata import version -from typing import Any -from rich import print as rprint from rich.progress import Progress, TaskID from ..case_filter import Case, CaseFilter from ..types import Validity -from .common import JSON, OutputConfig, Status, format_status +from .common import ( + JSON, + OutputConfig, + Status, + ValidationResult, + read_json, + read_stream, + run_cases, +) logger = logging.getLogger(__name__) -async def read_stream(stream: None | asyncio.StreamReader) -> str | None: - if stream is None: - logger.debug("No output") - return None - b = await stream.read() - return b.decode() - - -async def read_json(stream: None | asyncio.StreamReader, logger=logger) -> JSON | None: - s = await read_stream(stream) - if not s: - return s - logger.debug("Got raw output: %s", s) - return json.loads(s) - - async def run_parse_attributes_single( dingus: list[str], case: Case, prog_task: tuple[Progress, TaskID] ): @@ -57,7 +44,7 @@ async def run_parse_attributes_single( status = "error" if res: - output = Output.from_jso(res) # type: ignore + output = Output.from_jso(res) if output.validity == case.validity: status = status or "pass" elif output.xfail: @@ -74,52 +61,6 @@ async def run_parse_attributes_single( return ValidationResult(case, cmd, status, msg) -@dataclass -class ValidationResult: - case: Case - invocation: list[str] - status: Status - message: str | None - - @classmethod - def field_names(cls, full=True) -> list[str]: - out = ["slug"] - if full: - out.extend( - [ - "kind", - "oz_version", - "profile", - "expected_validity", - "name", - ] - ) - out.extend(["result", "message"]) - return out - - def to_dict(self, full=True, color=False) -> dict[str, str]: - d = {"slug": self.case.slug()} - if full: - d.update( - { - "kind": self.case.kind, - "oz_version": str(self.case.version), - "profile": self.case.profile, - "expected_validity": self.case.validity, - "name": self.case.name, - } - ) - - if color: - d["result"] = format_status(self.status) - else: - d["result"] = self.status - - if self.message is not None: - d["message"] = self.message - return d - - @dataclass class Output: validity: Validity @@ -127,7 +68,9 @@ class Output: xfail: bool = False @classmethod - def from_jso(cls, d: dict[str, Any]): + def from_jso(cls, d: JSON): + if not isinstance(d, dict): + raise TypeError(f"Expected JSON object, got {type(d).__name__}") v = d.get("validity") if v not in ("valid", "invalid"): raise ValueError(f'"validity" must be "valid" or "invalid"; got {v!r}') @@ -144,41 +87,4 @@ def from_jso(cls, d: dict[str, Any]): async def run_parse_attributes( dingus: list[str], cases: CaseFilter, output: OutputConfig ): - futs: list[Awaitable[ValidationResult]] = [] - prog = output.progress - gath_task = prog.add_task("Gathering cases", total=None) - exec_task = prog.add_task("Running tests", total=None) - prog.start_task(gath_task) - for tcase, should_run in cases: - if not should_run: - continue - futs.append(run_parse_attributes_single(dingus, tcase, (prog, exec_task))) - prog.advance(gath_task) - prog.stop_task(gath_task) - - prog.update(exec_task, total=len(futs)) - prog.start_task(exec_task) - out = await asyncio.gather(*futs) - prog.stop_task(exec_task) - - match output.format: - case "json": - results = [v.to_dict(True, False) for v in out] - jso = { - "command": dingus, - "oztest_version": version("oztest"), - "results": results, - } - with output.open() as f: - json.dump(jso, f, indent=2, sort_keys=True) - case "tsv": - with output.open() as f: - delim = "\t" - field_names = ValidationResult.field_names(False) - # Can't use csv.DictWriter here because we may need to use `rich.print` to color status output. - rprint(delim.join(field_names), file=f) - for v in out: - d = v.to_dict(False, output.is_a_tty()) - rprint(delim.join(d.get(n, "") for n in field_names), file=f) - case s: - raise RuntimeError(f"Unknown output format '{s}'") + await run_cases(dingus, cases, output, run_parse_attributes_single) diff --git a/src/oztest/kinds/transform_coordinates.py b/src/oztest/kinds/transform_coordinates.py index e69de29..2bd7674 100644 --- a/src/oztest/kinds/transform_coordinates.py +++ b/src/oztest/kinds/transform_coordinates.py @@ -0,0 +1,214 @@ +from __future__ import annotations + +import asyncio +import json +import logging +import subprocess as sp +from collections.abc import Mapping, Sequence +from dataclasses import dataclass, field +from pathlib import Path +from typing import NamedTuple, Self, cast + +import numpy as np +from rich.progress import Progress, TaskID + +from oztest.case_filter import Case, CaseFilter + +from .common import ( + JSON, + OutputConfig, + Status, + ValidationResult, + read_json, + read_stream, + run_cases, +) + +logger = logging.getLogger(__name__) + +CONFIG_NAME = "oztest.json" + + +def validate_coords(jso: JSON) -> list[list[float]]: + if not isinstance(jso, Sequence): + raise TypeError(f"coordinates are {type(jso)}, not a sequence") + + out = [] + + length = None + for idx, c in enumerate(jso): + if not isinstance(c, Sequence): + raise TypeError(f"coordinate {idx} is {c}, not a sequence") + if length is None: + length = len(c) + elif len(c) != length: + raise ValueError( + f"coordinate {idx} does not have expected length {length}: {c}" + ) + this = [] + for v in c: + if v is None: + this.append(float("nan")) + elif isinstance(v, int): + this.append(float(v)) + elif not isinstance(v, float): + raise TypeError(f"coordinate {idx} is not numeric: {c}") + else: + this.append(v) + out.append(this) + + return out + + +@dataclass +class OztestTransformCoordinates: + transform_coordinates: TransformCoordinatesConfig + description: str | None = None + + @classmethod + def from_jso(cls, jso: JSON) -> Self: + if not isinstance(jso, dict): + raise TypeError(f"Expected JSON object, got {type(jso).__name__}") + return cls( + TransformCoordinatesConfig.from_jso(jso["transform_coordinates"]), + cast(str, jso.get("description")), + ) + + +@dataclass +class Tolerances: + relative: float = 1e-5 + absolute: float = 1e-8 + + @classmethod + def from_jso(cls, d: JSON) -> Self: + if not isinstance(d, dict): + raise TypeError(f"Expected JSON object, got {type(d).__name__}") + out = cls() + out.absolute = cast(float, d.get("absolute", out.absolute)) + out.relative = cast(float, d.get("relative", out.relative)) + return out + + def is_close(self, a, b) -> bool: + return np.allclose(a, b, self.relative, self.absolute, equal_nan=True) + + +@dataclass +class TransformCoordinatesConfig: + source: Terminal + target: Terminal + tolerance: Tolerances = field(default_factory=Tolerances) + + @classmethod + def from_jso(cls, jso: JSON) -> Self: + if not isinstance(jso, dict): + raise TypeError(f"Expected JSON object, got {type(jso).__name__}") + src = Terminal.from_jso(jso["source"]) + tgt = Terminal.from_jso(jso["target"]) + tolerance = Tolerances.from_jso(jso.get("tolerance", {})) + return cls(src, tgt, tolerance) + + def to_args(self) -> DingusArgs: + coords = json.dumps( + self.source.coordinates, allow_nan=False, separators=(",", ":") + ) + return DingusArgs(self.source.name, self.target.name, coords) + + def check_output(self, output: Output) -> Status: + if self.tolerance.is_close(self.source.coordinates, output.coordinates): + return "pass" + + if output.xfail: + return "xfail" + + return "fail" + + +class DingusArgs(NamedTuple): + source: str + target: str + in_coords: str + + +@dataclass +class Output: + coordinates: list[list[float]] + message: str | None = None + xfail: bool = False + + def __post_init__(self): + self.coordinates = validate_coords(self.coordinates) + + @classmethod + def from_jso(cls, jso: JSON) -> Self: + if not isinstance(jso, Mapping): + raise TypeError("Not a mapping") + coords = validate_coords(jso["coordinates"]) + return cls( + coords, + cast(str | None, jso.get("message")), + cast(bool, jso.get("xfail", False)), + ) + + +@dataclass +class Terminal: + name: str + coordinates: list[list[float]] + + def __post_init__(self): + self.coordinates = validate_coords(self.coordinates) + + @classmethod + def from_jso(cls, jso: JSON) -> Self: + if not isinstance(jso, dict): + raise TypeError(f"Expected JSON object, got {type(jso).__name__}") + return cls(cast(str, jso["name"]), cast(list[list[float]], jso["coordinates"])) + + +def get_config(p: Path): + jso = p.joinpath(CONFIG_NAME).read_text() + return OztestTransformCoordinates.from_jso(jso) + + +async def run_transform_coordinates_single( + dingus: list[str], case: Case, prog_task: tuple[Progress, TaskID] +): + logger = logging.getLogger(__name__).getChild(case.slug()) + + with case.as_path() as p: + config = get_config(p) + cmd = [*dingus, str(p), *config.transform_coordinates.to_args()] + logger.debug("Running command: %s", cmd) + proc = await asyncio.create_subprocess_exec( + *cmd, stdout=sp.PIPE, stderr=sp.PIPE + ) + return_code = await proc.wait() + res, stderr = await asyncio.gather( + read_json(proc.stdout), read_stream(proc.stderr) + ) + if stderr: + logger.info("Got STDERR\n%s", stderr) + + status: Status | None = None + msg: str | None = None + if return_code != 0: + status = "error" + + if res: + output = Output.from_jso(res) + status = config.transform_coordinates.check_output(output) + msg = output.message + else: + status = "error" + msg = "No output from dingus" + + prog, task = prog_task + prog.advance(task) + return ValidationResult(case, cmd, status, msg) + + +async def run_transform_coordinates( + dingus: list[str], cases: CaseFilter, output: OutputConfig +): + await run_cases(dingus, cases, output, run_transform_coordinates_single) diff --git a/src/oztest/types.py b/src/oztest/types.py index 9237804..6cb3d45 100644 --- a/src/oztest/types.py +++ b/src/oztest/types.py @@ -1,7 +1,10 @@ -from typing import Literal +from collections.abc import Mapping, Sequence +from typing import Literal, Protocol, Self Kind = Literal["parse_attributes", "transform_coordinates", "validate_zarr"] Validity = Literal["valid", "invalid"] +JSON = int | float | str | None | Sequence["JSON"] | Mapping[str, "JSON"] +Status = Literal["pass", "fail", "error", "skip", "xfail"] def parse_dingus_invocation(items: list[str] | None) -> None | list[str]: @@ -12,3 +15,8 @@ def parse_dingus_invocation(items: list[str] | None) -> None | list[str]: items.pop(0) return items if items else None + + +class FromJso(Protocol): + @classmethod + def from_jso(cls, jso: JSON) -> Self: ... diff --git a/uv.lock b/uv.lock index 3508658..7d4228d 100644 --- a/uv.lock +++ b/uv.lock @@ -1,11 +1,10 @@ version = 1 -revision = 3 -requires-python = ">=3.10, <4.0" +revision = 5 +requires-python = ">=3.11, <4.0" resolution-markers = [ "python_full_version >= '3.15'", "python_full_version >= '3.12' and python_full_version < '3.15'", - "python_full_version == '3.11.*'", - "python_full_version < '3.11'", + "python_full_version < '3.12'", ] [[package]] @@ -104,36 +103,19 @@ name = "donfig" version = "0.8.1.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyyaml", marker = "python_full_version >= '3.12'" }, + { name = "pyyaml" }, ] sdist = { url = "https://files.pythonhosted.org/packages/25/71/80cc718ff6d7abfbabacb1f57aaa42e9c1552bfdd01e64ddd704e4a03638/donfig-0.8.1.post1.tar.gz", hash = "sha256:3bef3413a4c1c601b585e8d297256d0c1470ea012afa6e8461dc28bfb7c23f52", size = 19506, upload-time = "2024-05-23T14:14:31.513Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/0c/d5/c5db1ea3394c6e1732fb3286b3bd878b59507a8f77d32a2cebda7d7b7cd4/donfig-0.8.1.post1-py3-none-any.whl", hash = "sha256:2a3175ce74a06109ff9307d90a230f81215cbac9a751f4d1c6194644b8204f9d", size = 21592, upload-time = "2024-05-23T14:13:55.283Z" }, ] -[[package]] -name = "exceptiongroup" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, -] - [[package]] name = "google-crc32c" version = "1.9.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/fa/25/9cb0c1c31c45b893eb8f11ae70b3f4309432d59b5acaebca5dbe791729a4/google_crc32c-1.9.0.tar.gz", hash = "sha256:7b8c84c3d159ab6817fe3f74e6e6cef099c3f95dcec3abc0d8afb1404642efbe", size = 14857, upload-time = "2026-09-24T21:39:32.067Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/7c/e89a13c971bcab4a0464ecc78f8dc162c5c7ec8986a54dd867fc093b2c6f/google_crc32c-1.9.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e6b529a6a287104ec79d281c411685231200ce954a29c28ab8e5093cb6e130fb", size = 31959, upload-time = "2026-09-24T21:19:00.091Z" }, - { url = "https://files.pythonhosted.org/packages/c6/06/510062c2acbdbf602d759b7b0086032c487126106bb25197b9da1ff1047f/google_crc32c-1.9.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:51cb4e23a38ad4f495f35f87c233ca3ea6b9c4559e7ac383cdef786fab0f7977", size = 31801, upload-time = "2026-09-24T21:22:24.222Z" }, - { url = "https://files.pythonhosted.org/packages/9a/c6/53eaa12dc62625f4605760b09854a0814ef6afebdc0e611a38c7b15aa6d1/google_crc32c-1.9.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8535e75dfead304f30e9122b9ea2c0a570dbaa52c176a0a591540c7914c1e46d", size = 37203, upload-time = "2026-09-24T21:38:04.791Z" }, - { url = "https://files.pythonhosted.org/packages/dd/92/770c2713df471df73998f79758739da83e410ef576bfafd05e5e845959ff/google_crc32c-1.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:280f3a3e47af0eeba3a3e5aa7d311af77001812b8df80fb8beafcd0b40eaf7f1", size = 35816, upload-time = "2026-09-24T21:38:05.798Z" }, - { url = "https://files.pythonhosted.org/packages/b8/f3/181945217690644aa502220a3ec9bf0d2ef9af930bbfffee555fe5236e2f/google_crc32c-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:56610f548f1b35c9568b9d1de30423480f505dae4991556072d5802820ff35c4", size = 35097, upload-time = "2026-09-24T21:39:27.402Z" }, { url = "https://files.pythonhosted.org/packages/0e/55/a2f07f15e624f0de79359b1a6c1deb59ec5061bd3b38744b3b2849400662/google_crc32c-1.9.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:457d0d9a4718fd52b1494eac5c200ad25beeadbdc91843d550a003910838589f", size = 31958, upload-time = "2026-09-24T21:19:00.994Z" }, { url = "https://files.pythonhosted.org/packages/f8/b3/923743597b774bbcf12a7c3e00e48d745e15fd616ad7489a40a63fff8f2f/google_crc32c-1.9.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:ccfe40021fd6afe23361175cf7551e3cef5fd34dc1ebe319f14993a83579e0eb", size = 31805, upload-time = "2026-09-24T21:22:25.019Z" }, { url = "https://files.pythonhosted.org/packages/df/a6/4d0352fe889663e0d81cea7fc664ec9158727384de4a44ab10e9967a7682/google_crc32c-1.9.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fbef61a3794e011c65fb4396a196cf123a7f474fe5a443db8e5dd7d751b9e6d4", size = 38119, upload-time = "2026-09-24T21:38:06.634Z" }, @@ -187,8 +169,7 @@ dependencies = [ { name = "attrs" }, { name = "jsonschema-specifications" }, { name = "referencing" }, - { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "rpds-py", version = "2026.9.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "rpds-py" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } wheels = [ @@ -213,20 +194,6 @@ version = "0.16.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/04/f5/9dc696772d241814bacac7880bac32f2930b5a6ebc1f85317b83161a011c/librt-0.16.0.tar.gz", hash = "sha256:ac38d6d8d66bf3d744148dbbc0b8e193e195a51e364ed55e224631f5721891fc", size = 219839, upload-time = "2026-09-29T00:55:32.891Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/77/900294b3c9a81415323d81b3f3f271a7f5d7ed9d01e824fc38ffa49470b6/librt-0.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96f576f2711f8519152ec76d0e599243555c1f07679fa73606ca8c8c868c0be6", size = 148668, upload-time = "2026-09-29T00:44:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/55/3b/c301e8cc47758e4518b93e926a0111080155cc79fa03651d202ac2025065/librt-0.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bec3818c7da7c96ceae0ef5915a3d16c52dd08f3ea913bf1fe8568c447c7978", size = 153562, upload-time = "2026-09-29T00:44:21.672Z" }, - { url = "https://files.pythonhosted.org/packages/62/b1/4d5b98114a58bf17e3832cd33400e40f2582f68c2fb7ce25b4468cb1afd3/librt-0.16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64c79520414a3fdfc6aabd7593e6169afa14d5f8d9908d4b498db068868b08dd", size = 494337, upload-time = "2026-09-29T00:44:23.096Z" }, - { url = "https://files.pythonhosted.org/packages/88/36/14223c9b0dc38982eb4f399732c8cb27b19c7e027ae0faef5ca51d08d19f/librt-0.16.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:f81b5b19ce748ef68d4746656b7929762eb2fe99269b266e4be07e2ee4de7144", size = 485440, upload-time = "2026-09-29T00:44:24.555Z" }, - { url = "https://files.pythonhosted.org/packages/ec/9e/d7155e6800d0c33e297e529b217649f7361d706491ebf9d2fc0fc627309e/librt-0.16.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c71d1b76210a36729fedfc5115069b50a3d8619054745f8758fe5d6f19e86671", size = 498363, upload-time = "2026-09-29T00:44:26.03Z" }, - { url = "https://files.pythonhosted.org/packages/d3/ce/d5f1fb9f913ac0979d6fc5db9fb9c0bf28cc3470988528957922f15ed40c/librt-0.16.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:473eebc7866bb0a0c8849a292b5e7157c1aba5d14d0f0f610c52158d6d964262", size = 515453, upload-time = "2026-09-29T00:44:27.566Z" }, - { url = "https://files.pythonhosted.org/packages/b4/d4/ca0fca1a27c26080d1a25b2b31f271e532078a5719878c3daca0c3d4c539/librt-0.16.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4eb1313a19847089ee81e88742abedf285c60538816640b99742d8534b81d26a", size = 509537, upload-time = "2026-09-29T00:44:29.14Z" }, - { url = "https://files.pythonhosted.org/packages/ee/c0/26807bf2221a53a2c66f2e23a5c4d57f1c0eaa4afed7cb81d841cf3d1903/librt-0.16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ebefd60b42e2a82b32d136bb5f7c94eadfcd29f772b547df6f3291d1ed855a1c", size = 532541, upload-time = "2026-09-29T00:44:30.745Z" }, - { url = "https://files.pythonhosted.org/packages/0e/50/c329d509907e1bc061abeec3796f94d255d43ba25d28c3854d2138ed5ab2/librt-0.16.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6c5da27e8056439f927ea896735da60e616c477a8293feaa3233d4e7781a6726", size = 537059, upload-time = "2026-09-29T00:44:32.102Z" }, - { url = "https://files.pythonhosted.org/packages/84/d6/4571b9c9e65d98e5503734166dce2fd3e216f526dc3c59a3773faa8a60e3/librt-0.16.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:67e718c7a43f8db325abbbf1404e2d535f12f8f7a1a82259568385cc5274b82a", size = 536614, upload-time = "2026-09-29T00:44:33.653Z" }, - { url = "https://files.pythonhosted.org/packages/c8/d3/a2ed8a292e4ab7889792a9c3f4ad5d1caf6557afce7f6b452e77f8ed20b7/librt-0.16.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:314e703f0c19320dc8094e7a784b9cf29e1b67402515abf580069a6363c0b4f1", size = 517199, upload-time = "2026-09-29T00:44:35.115Z" }, - { url = "https://files.pythonhosted.org/packages/9e/24/276e5218b4b7adb6258a42b7403cb1b7cef25616238d0c2152288a9d2f53/librt-0.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:943c6bbecbdf7fa575a4f2952fcfd848c88ef95507c3fca411e89d4ac3ff8143", size = 558746, upload-time = "2026-09-29T00:44:36.656Z" }, - { url = "https://files.pythonhosted.org/packages/7c/5c/9156df81a1726e1efc9567379def2b8777a6d56f464d2f1b760bf951b8af/librt-0.16.0-cp310-cp310-win32.whl", hash = "sha256:7cc365f006891afb006b52d5ee5ee74c09306ffa20e2f8705a32a4450af2f3ba", size = 104424, upload-time = "2026-09-29T00:44:38.123Z" }, - { url = "https://files.pythonhosted.org/packages/0b/62/4fd172cb3f49ab2cf5ef17de519a93cfb935202c1270ba9d44c6a64178c3/librt-0.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:0314058469f4d2fd279ce7c62ac274ac82c3918ef7db62ef0697c4c359370155", size = 124267, upload-time = "2026-09-29T00:44:39.455Z" }, { url = "https://files.pythonhosted.org/packages/ba/0e/b04fd2d76b6a78a02286938251b2c119fb36ddece92c76cb4886ef7d44b8/librt-0.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fe4372c52d4849096c6cc1cda2817d293ec51440c890474ed59ef38d46556f18", size = 148058, upload-time = "2026-09-29T00:44:40.903Z" }, { url = "https://files.pythonhosted.org/packages/a3/fc/e1ed24aadb32d38603c0c07f579d739eb4d90e64e90d525b024e4a999b4d/librt-0.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c72c5295a84bd249526da9bdca38f2e176d15c31c13bb0063c5053f4ca023421", size = 153073, upload-time = "2026-09-29T00:44:42.165Z" }, { url = "https://files.pythonhosted.org/packages/be/38/133ab655409420e0c34a9a9836a7f4e5ae75fba758d7fe177099130d58ba/librt-0.16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be56ba9c884143495b517f23fe794ae367d58cd89ea0fdd6d437e3c024a87f9f", size = 493052, upload-time = "2026-09-29T00:44:44.043Z" }, @@ -364,16 +331,6 @@ version = "0.22.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d0/e6/6dcf9306ff3c5e486578f3bf29ed11dfbdbbc2a8bf0caf7e07d392887fda/msgspec-0.22.0.tar.gz", hash = "sha256:0a13624a4969159fe35d8c2a3d377b2b61bbd8585e327440d5e52725affcce38", size = 343188, upload-time = "2026-09-29T14:14:11.422Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/5e/78d4fa2073bb3a891753e7f915d51094e2ded5aa5e9b20402518929b373e/msgspec-0.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f3413e3647275f787b21b4dfb4836a59a1a5acf1018ab1d45843b1d7edf15c22", size = 200076, upload-time = "2026-09-29T14:12:07.599Z" }, - { url = "https://files.pythonhosted.org/packages/38/f8/59701da04584af4ccd55f42200da303ebf146cd6867186a8b9b1e127a4a2/msgspec-0.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:38c5b9bd347bc9abbcee40752be3c5117854e891ea7a1881a56d4b3dec58c5e7", size = 192337, upload-time = "2026-09-29T14:12:09.198Z" }, - { url = "https://files.pythonhosted.org/packages/eb/dd/bd4131da741aa349656fe32a5cca0c4266c58d7b5ad75485bed29565f7cd/msgspec-0.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57c282f474e17acf6bcf84f393c73afd45d6eba47cccff8b76b79c4fbb8a3b54", size = 222888, upload-time = "2026-09-29T14:12:10.691Z" }, - { url = "https://files.pythonhosted.org/packages/c6/46/01fe71c42b3342f00e2dd6c5a8837f5dc4d0e1596b4c74c054fb13075201/msgspec-0.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:12a887c4c06e4a771a2db32c9a80c7bb21866b12458025f636dcdc2253331c28", size = 227838, upload-time = "2026-09-29T14:12:12.178Z" }, - { url = "https://files.pythonhosted.org/packages/62/8f/1a459825e0a5510de882af461459bd7f0525342b3c0bf1000e27be7aeef5/msgspec-0.22.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6c8a3f210421e29d8f7e9815f106cf59d758665b7fe5428e61152ce24fe65d7", size = 235818, upload-time = "2026-09-29T14:12:13.586Z" }, - { url = "https://files.pythonhosted.org/packages/3c/2e/9d37b6f1190101b452f6c455e8715cc9960afad231e18cf9545af58710b9/msgspec-0.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ebd211d7af79ed8710c64e9e8d4c0d02749bc20170e7ab4e1c5801ca7c99d25b", size = 228019, upload-time = "2026-09-29T14:12:15.156Z" }, - { url = "https://files.pythonhosted.org/packages/c1/d5/33723137c96b8f244d8e6fc57a0a8d3b57b3599ce9b4a4dd58dc55a46d1c/msgspec-0.22.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:27d9ef46c80884f9c4f323e0b18bec464287e872121e70f2cbe47335780bf597", size = 236406, upload-time = "2026-09-29T14:12:16.908Z" }, - { url = "https://files.pythonhosted.org/packages/44/4a/f0e4a9ab970ce0a31f191acb772d3e1af67eeb73e1d73b70c079252aed02/msgspec-0.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ec108e96fdaa8fdbe5bb993ec97a9d1faa69b3a521eecd71a6e5acbe0e29ae69", size = 231028, upload-time = "2026-09-29T14:12:18.497Z" }, - { url = "https://files.pythonhosted.org/packages/0a/e8/3de7345a8944a5bcfc9dd861d30fcea5f20f51057bcafacbbff9164e55fc/msgspec-0.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:21c887d4de397355f6635c2a037b1c067882dac5d132a1793d63bbf7cf5ca78e", size = 190753, upload-time = "2026-09-29T14:12:20.291Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/f0d3bd2dfc3753806ab70b8d00a1613019c39148a87da797771d7f72a0a9/msgspec-0.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a663a8d7f6ad56ac1dbcba91e046ba8ebab7773ae72ef3dd3c47f8226919184", size = 188939, upload-time = "2026-09-29T14:12:21.645Z" }, { url = "https://files.pythonhosted.org/packages/9d/22/45c17acb1a85360b10afb95f66777f76bc2634993c66db8b7833832bd343/msgspec-0.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb1e129b81ac8fcf9ec649b081c6c8da1c7ea6f87cab336d46386abc2cd855c1", size = 198231, upload-time = "2026-09-29T14:12:23.016Z" }, { url = "https://files.pythonhosted.org/packages/34/79/1cf725694125051e866066d74e6199206838d1465cbfc35081dc29b6e366/msgspec-0.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dce29a04966e31abf9b83b697c6d672486526dc5d03fcd6970cb56d5dc1fbeea", size = 190911, upload-time = "2026-09-29T14:12:24.636Z" }, { url = "https://files.pythonhosted.org/packages/bc/b2/e0ace038031a2988aa2e85c431c4d7aef734fbba4749ace6bc5bf310b769/msgspec-0.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b962000e11dd34fb210a5a2c57a8a62b2d92b381c8cb3b05c075a83e38f8d645", size = 220343, upload-time = "2026-09-29T14:12:26.111Z" }, @@ -456,17 +413,10 @@ dependencies = [ { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, { name = "mypy-extensions" }, { name = "pathspec" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/34/4e/64300736cf0a0373a27b94a91b664ee7382e36f77b0621bae6381da3e180/mypy-2.4.0.tar.gz", hash = "sha256:77bdaebd452f43fcfc4cc3ba94352a3ea537cd01e3f2d0879f48673d2ec00d6e", size = 4064425, upload-time = "2026-10-01T20:40:39.229Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/0a/78c9ac93933e2ecd51d807021f78c03ffe98640f33951a8be159f5fd55bc/mypy-2.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffda5244fd1ad71a1e54405e35f50d09b80c3978efa120f58bd1252ae32c62d2", size = 14408618, upload-time = "2026-10-01T20:39:46.766Z" }, - { url = "https://files.pythonhosted.org/packages/aa/4f/5f5f4429fd5a4218ce6268164a66afeed75c7e2ce5522a4d163faaa5fe85/mypy-2.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:615b03922d40e186fd1df73156473db0ba525c639bb4fd1cf28e1694879c9b23", size = 14552749, upload-time = "2026-10-01T20:40:08.325Z" }, - { url = "https://files.pythonhosted.org/packages/54/78/fa1c319cd51db7a6027b46117460d5a361c6bba0c0f0f0670a2dab8ce2a5/mypy-2.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13fa24f439c0e48a290a3922fa14ccd22f2762bae99d2142931b3e40a9055080", size = 15505846, upload-time = "2026-10-01T20:39:15.475Z" }, - { url = "https://files.pythonhosted.org/packages/e2/5a/14c02690776fb04e9fa60b81173cb9ae6315e0745fad3813b303737f2f0c/mypy-2.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3adef556a19eb3b630bf86a79c29d7da3d61e541472d0d897ca01b171c0abf8f", size = 15823059, upload-time = "2026-10-01T20:39:35.429Z" }, - { url = "https://files.pythonhosted.org/packages/76/d8/d29afa819f8cb765018d6e2773e390a41ea4592f75abe417135969646857/mypy-2.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:1dc0f64b0a92ae27a49d2175f0bacfa56e15bdc5b420cf92e0c1f79292219cbb", size = 11312927, upload-time = "2026-10-01T20:39:28.509Z" }, - { url = "https://files.pythonhosted.org/packages/bc/c8/966dec4d80303855d824e6bf67fe1da812d88adfe4d75e24d8545dab4826/mypy-2.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a378fc15fb33e321f04652c166ce73eeb8833a97c3d218132844e938cd93220", size = 10879252, upload-time = "2026-10-01T20:38:41.545Z" }, { url = "https://files.pythonhosted.org/packages/26/67/e53965e67d23d48e78dd603aa7525a8d77e7818c23954cc217ccde5cd5c0/mypy-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d20e6c7c35fcbf2a0ebdd0eaeacfbc243009dfd33ab7822d54e213912e6dbbd", size = 14315745, upload-time = "2026-10-01T20:39:25.03Z" }, { url = "https://files.pythonhosted.org/packages/b1/5d/a588ccd57625822d8484d7aff4e9c70f88d042a91c2ec84324a2bc14b3f3/mypy-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3011537be6cf1de4511c0255a324362a812b58184bbe61e15f59c8b31033bd74", size = 14465652, upload-time = "2026-10-01T20:38:57.19Z" }, { url = "https://files.pythonhosted.org/packages/05/af/b4978a5566cb829ca563dc08e3ad8d944f116078786ad54ba3dff2bcb64d/mypy-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a96b07a49b7b1d025ce59c1b3acbcf24bead9a83da4523c4a6bde1bb94e7a0e1", size = 15419180, upload-time = "2026-10-01T20:40:27.808Z" }, @@ -528,8 +478,8 @@ name = "numcodecs" version = "0.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", marker = "python_full_version >= '3.12'" }, - { name = "typing-extensions", marker = "python_full_version >= '3.12'" }, + { name = "numpy" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/dd/ec/260cdb6304868de6db14eb31064bd2735c0200bcb3331d6b4c9e9be02a03/numcodecs-0.17.0.tar.gz", hash = "sha256:e8db2e337bdafd3bb5f891a2543b53b2b36a509ce9d587af2846db3715b6c8b9", size = 6288352, upload-time = "2026-09-17T18:12:42.262Z" } wheels = [ @@ -765,12 +715,10 @@ version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, { name = "pygments" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ @@ -783,15 +731,6 @@ version = "6.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, - { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, - { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, - { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, - { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, - { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, - { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, - { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, @@ -847,8 +786,7 @@ version = "0.37.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, - { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "rpds-py", version = "2026.9.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "rpds-py" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } @@ -869,140 +807,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, ] -[[package]] -name = "rpds-py" -version = "0.30.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.11'", -] -sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, - { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, - { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, - { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, - { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, - { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, - { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, - { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, - { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, - { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, - { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, - { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, - { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, - { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, - { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, - { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, - { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, - { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, - { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, - { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, - { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, - { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, - { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, - { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, - { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, - { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, - { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, - { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, - { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, - { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, - { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, - { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, - { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, - { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, - { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, - { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, - { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, - { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, - { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, - { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, - { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, - { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, - { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, - { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, - { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, - { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, - { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, - { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, - { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, - { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, - { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, - { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, - { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, - { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, - { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, - { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, - { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, - { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, - { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, - { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, - { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, - { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, - { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, - { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, - { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, - { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, - { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, - { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, - { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, - { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, - { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, - { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, - { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, - { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, - { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, - { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, - { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, - { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, - { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, - { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, - { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, - { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, - { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, - { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, - { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, - { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, - { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, - { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, - { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, - { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, - { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, - { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, - { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, - { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, - { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, - { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, - { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, - { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, - { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, - { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, - { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, - { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, - { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, - { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, - { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, - { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, -] - [[package]] name = "rpds-py" version = "2026.9.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.15'", - "python_full_version >= '3.12' and python_full_version < '3.15'", - "python_full_version == '3.11.*'", -] sdist = { url = "https://files.pythonhosted.org/packages/42/68/3bd46b8a5e01d3c2ebdf9c5e9497912e3fe0cde02bac21a7130ca866e403/rpds_py-2026.9.1.tar.gz", hash = "sha256:4793ef7f78268b124b73fa933440f01d258bbae01de9fa53e9080c9ab0425a12", size = 63948, upload-time = "2026-10-04T16:32:36.469Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/f5/6d/ddb8dfcf41892ba9c672d27988592c038d30db61708230313831b6780a1b/rpds_py-2026.9.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2711d29b653b3bce48a63d18b9c6b53274669e6d6c4094dddeb4d9a0e45128b2", size = 344947, upload-time = "2026-10-04T16:28:55.207Z" }, @@ -1269,13 +1077,13 @@ name = "zarr" version = "3.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "donfig", marker = "python_full_version >= '3.12'" }, - { name = "google-crc32c", marker = "python_full_version >= '3.12'" }, - { name = "msgspec", marker = "python_full_version >= '3.12'" }, - { name = "numcodecs", marker = "python_full_version >= '3.12'" }, - { name = "numpy", marker = "python_full_version >= '3.12'" }, - { name = "packaging", marker = "python_full_version >= '3.12'" }, - { name = "typing-extensions", marker = "python_full_version >= '3.12'" }, + { name = "donfig" }, + { name = "google-crc32c" }, + { name = "msgspec" }, + { name = "numcodecs" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3e/62/e8a36a4b65f01499c7aefcf103aabba0c37c018bf135fbf179f6ed2f01a0/zarr-3.4.1.tar.gz", hash = "sha256:b34bda11ceb199c81ee78ecd42cd02f46c7f67a6d8a1e9bc501cafd5a1795356", size = 923257, upload-time = "2026-10-08T17:14:25.972Z" } wheels = [ From 49f051d936c68a77b36de964ea9c3353fc540dc1 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 30 Oct 2026 18:39:39 +0000 Subject: [PATCH 2/5] Port single-profile cases --- .../core/valid/identity.ome.zarr/oztest.json | 27 ++++++ .../core/valid/identity.ome.zarr/zarr.json | 51 ++++++++++ .../identity_inverse.ome.zarr/oztest.json | 27 ++++++ .../valid/identity_inverse.ome.zarr/zarr.json | 51 ++++++++++ .../core/valid/scale.ome.zarr/oztest.json | 27 ++++++ .../v0.6/core/valid/scale.ome.zarr/zarr.json | 55 +++++++++++ .../valid/scale_inverse.ome.zarr/oztest.json | 27 ++++++ .../valid/scale_inverse.ome.zarr/zarr.json | 55 +++++++++++ .../core/valid/sequence.ome.zarr/oztest.json | 27 ++++++ .../core/valid/sequence.ome.zarr/zarr.json | 67 +++++++++++++ .../valid/sequence3d.ome.zarr/oztest.json | 29 ++++++ .../core/valid/sequence3d.ome.zarr/zarr.json | 77 +++++++++++++++ .../sequence3d_inverse.ome.zarr/oztest.json | 29 ++++++ .../sequence3d_inverse.ome.zarr/zarr.json | 77 +++++++++++++++ .../sequence_inverse.ome.zarr/oztest.json | 27 ++++++ .../valid/sequence_inverse.ome.zarr/zarr.json | 67 +++++++++++++ .../valid/simple_path.ome.zarr/oztest.json | 27 ++++++ .../core/valid/simple_path.ome.zarr/zarr.json | 74 ++++++++++++++ .../simple_path_inverse.ome.zarr/oztest.json | 27 ++++++ .../simple_path_inverse.ome.zarr/zarr.json | 74 ++++++++++++++ .../valid/translation.ome.zarr/oztest.json | 27 ++++++ .../core/valid/translation.ome.zarr/zarr.json | 55 +++++++++++ .../translation_inverse.ome.zarr/oztest.json | 27 ++++++ .../translation_inverse.ome.zarr/zarr.json | 55 +++++++++++ .../valid/affine.ome.zarr/oztest.json | 59 ++++++++++++ .../valid/affine.ome.zarr/zarr.json | 79 +++++++++++++++ .../oztest.json | 28 ++++++ .../affine_downProjection.ome.zarr/zarr.json | 69 +++++++++++++ .../affine_identity.ome.zarr/oztest.json | 27 ++++++ .../valid/affine_identity.ome.zarr/zarr.json | 63 ++++++++++++ .../oztest.json | 27 ++++++ .../zarr.json | 63 ++++++++++++ .../valid/affine_inverse.ome.zarr/oztest.json | 59 ++++++++++++ .../valid/affine_inverse.ome.zarr/zarr.json | 79 +++++++++++++++ .../inputToOutput/c/0/0 | Bin 0 -> 48 bytes .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 59 ++++++++++++ .../zarr.json | 60 ++++++++++++ .../inputToOutput/c/0/0 | Bin 0 -> 96 bytes .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 59 ++++++++++++ .../zarr.json | 60 ++++++++++++ .../inputToOutput/c/0/0 | Bin 0 -> 48 bytes .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../affine_path_float32.ome.zarr/oztest.json | 59 ++++++++++++ .../affine_path_float32.ome.zarr/zarr.json | 60 ++++++++++++ .../inputToOutput/c/0/0 | Bin 0 -> 96 bytes .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../affine_path_float64.ome.zarr/oztest.json | 59 ++++++++++++ .../affine_path_float64.ome.zarr/zarr.json | 60 ++++++++++++ .../affine_upProjection.ome.zarr/oztest.json | 28 ++++++ .../affine_upProjection.ome.zarr/zarr.json | 72 ++++++++++++++ .../bijection_forward.ome.zarr/oztest.json | 27 ++++++ .../bijection_forward.ome.zarr/zarr.json | 65 +++++++++++++ .../bijection_inverse.ome.zarr/oztest.json | 27 ++++++ .../bijection_inverse.ome.zarr/zarr.json | 65 +++++++++++++ .../valid/byDimension.ome.zarr/oztest.json | 27 ++++++ .../valid/byDimension.ome.zarr/zarr.json | 78 +++++++++++++++ .../byDimension_inverse.ome.zarr/oztest.json | 27 ++++++ .../byDimension_inverse.ome.zarr/zarr.json | 78 +++++++++++++++ .../inputToOutput/c/0/0 | Bin 0 -> 20 bytes .../inputToOutput/zarr.json | 61 ++++++++++++ .../coordinateTransformations/zarr.json | 5 + .../valid/coordinates_1d.ome.zarr/oztest.json | 73 ++++++++++++++ .../valid/coordinates_1d.ome.zarr/zarr.json | 45 +++++++++ .../inputToOutput/c/0/0/0 | Bin 0 -> 192 bytes .../inputToOutput/zarr.json | 67 +++++++++++++ .../coordinateTransformations/zarr.json | 5 + .../coordinates_2d-3d.ome.zarr/oztest.json | 91 ++++++++++++++++++ .../coordinates_2d-3d.ome.zarr/zarr.json | 57 +++++++++++ .../inputToOutput/c/0/0/0 | Bin 0 -> 128 bytes .../inputToOutput/zarr.json | 67 +++++++++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 51 ++++++++++ .../displacements_constant.ome.zarr/zarr.json | 53 ++++++++++ .../valid/mapAxis.ome.zarr/oztest.json | 27 ++++++ .../valid/mapAxis.ome.zarr/zarr.json | 55 +++++++++++ .../valid/mapAxis3d.ome.zarr/oztest.json | 29 ++++++ .../valid/mapAxis3d.ome.zarr/zarr.json | 64 ++++++++++++ .../mapAxis3d_inverse.ome.zarr/oztest.json | 29 ++++++ .../mapAxis3d_inverse.ome.zarr/zarr.json | 64 ++++++++++++ .../mapAxis_inverse.ome.zarr/oztest.json | 27 ++++++ .../valid/mapAxis_inverse.ome.zarr/zarr.json | 55 +++++++++++ .../valid/rotation.ome.zarr/oztest.json | 51 ++++++++++ .../valid/rotation.ome.zarr/zarr.json | 61 ++++++++++++ .../rotation_identity.ome.zarr/oztest.json | 27 ++++++ .../rotation_identity.ome.zarr/zarr.json | 61 ++++++++++++ .../oztest.json | 27 ++++++ .../zarr.json | 61 ++++++++++++ .../rotation_inverse.ome.zarr/oztest.json | 51 ++++++++++ .../valid/rotation_inverse.ome.zarr/zarr.json | 61 ++++++++++++ .../inputToOutput/c/0/0 | 1 + .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 51 ++++++++++ .../zarr.json | 52 ++++++++++ .../inputToOutput/c/0/0 | 1 + .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 51 ++++++++++ .../zarr.json | 52 ++++++++++ .../inputToOutput/c/0/0 | 1 + .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 51 ++++++++++ .../rotation_path_float32.ome.zarr/zarr.json | 52 ++++++++++ .../inputToOutput/c/0/0 | 1 + .../inputToOutput/zarr.json | 35 +++++++ .../coordinateTransformations/zarr.json | 5 + .../oztest.json | 51 ++++++++++ .../rotation_path_float64.ome.zarr/zarr.json | 52 ++++++++++ 115 files changed, 4675 insertions(+) create mode 100644 cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_displacements/valid/displacements_constant.ome.zarr/coordinateTransformations/inputToOutput/c/0/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_displacements/valid/displacements_constant.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_displacements/valid/displacements_constant.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_displacements/valid/displacements_constant.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_displacements/valid/displacements_constant.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis3d.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis3d.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis3d_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis3d_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_mapAxis/valid/mapAxis_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_identity.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_identity.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_identity_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_identity_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float32.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float32.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float32.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float64.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float64.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_inverse_path_float64.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float32.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float32.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float32.ome.zarr/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float64.ome.zarr/coordinateTransformations/zarr.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float64.ome.zarr/oztest.json create mode 100644 cases/transform_coordinates/v0.6/transform_rotation/valid/rotation_path_float64.ome.zarr/zarr.json diff --git a/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/oztest.json new file mode 100644 index 0000000..d447d2e --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Identity transformation.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/zarr.json new file mode 100644 index 0000000..5311601 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/identity.ome.zarr/zarr.json @@ -0,0 +1,51 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "identity" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..501b72c --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Identity transformation. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..5311601 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/identity_inverse.ome.zarr/zarr.json @@ -0,0 +1,51 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "identity" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/oztest.json new file mode 100644 index 0000000..abe28a9 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple scale.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 10, + 40 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/zarr.json new file mode 100644 index 0000000..74e16c1 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/scale.ome.zarr/zarr.json @@ -0,0 +1,55 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "scale": [ + 10, + 20 + ], + "type": "scale" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..49aec56 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple scale. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 10, + 40 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..74e16c1 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/scale_inverse.ome.zarr/zarr.json @@ -0,0 +1,55 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "scale": [ + 10, + 20 + ], + "type": "scale" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/oztest.json new file mode 100644 index 0000000..6ae0d9b --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple transform sequence.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/zarr.json new file mode 100644 index 0000000..9a92889 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence.ome.zarr/zarr.json @@ -0,0 +1,67 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "scale": [ + 10, + 20 + ], + "type": "scale" + }, + { + "scale": [ + 0.1, + 0.05 + ], + "type": "scale" + } + ], + "type": "sequence" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/oztest.json new file mode 100644 index 0000000..1f82ba9 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/oztest.json @@ -0,0 +1,29 @@ +{ + "description": "A 3d transform sequence whose transformations do not commute.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2, + 3 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 22, + -22, + 33 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/zarr.json new file mode 100644 index 0000000..f1ba0d5 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence3d.ome.zarr/zarr.json @@ -0,0 +1,77 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "translation": [ + 10, + 20, + 30 + ], + "type": "translation" + }, + { + "scale": [ + 2.0, + -1.0, + 1.0 + ], + "type": "scale" + } + ], + "type": "sequence" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..b3cf722 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/oztest.json @@ -0,0 +1,29 @@ +{ + "description": "A 3d transform sequence whose transformations do not commute. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 22, + -22, + 33 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2, + 3 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..f1ba0d5 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence3d_inverse.ome.zarr/zarr.json @@ -0,0 +1,77 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "translation": [ + 10, + 20, + 30 + ], + "type": "translation" + }, + { + "scale": [ + 2.0, + -1.0, + 1.0 + ], + "type": "scale" + } + ], + "type": "sequence" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..adaf18f --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple transform sequence. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..9a92889 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/sequence_inverse.ome.zarr/zarr.json @@ -0,0 +1,67 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "scale": [ + 10, + 20 + ], + "type": "scale" + }, + { + "scale": [ + 0.1, + 0.05 + ], + "type": "scale" + } + ], + "type": "sequence" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/oztest.json new file mode 100644 index 0000000..751df5b --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Transform via an intermediate system.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/zarr.json new file mode 100644 index 0000000..0e736af --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/simple_path.ome.zarr/zarr.json @@ -0,0 +1,74 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "intermediate" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "input->intermediate", + "output": { + "name": "intermediate" + }, + "type": "identity" + }, + { + "input": { + "name": "intermediate" + }, + "name": "intermediate->output", + "output": { + "name": "output" + }, + "type": "identity" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..982b8b4 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Transform via an intermediate system. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..0e736af --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/simple_path_inverse.ome.zarr/zarr.json @@ -0,0 +1,74 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "intermediate" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "input->intermediate", + "output": { + "name": "intermediate" + }, + "type": "identity" + }, + { + "input": { + "name": "intermediate" + }, + "name": "intermediate->output", + "output": { + "name": "output" + }, + "type": "identity" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/oztest.json new file mode 100644 index 0000000..361a0b8 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple translation.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 11, + 22 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/zarr.json new file mode 100644 index 0000000..2defe04 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/translation.ome.zarr/zarr.json @@ -0,0 +1,55 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "translation": [ + 10, + 20 + ], + "type": "translation" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..56d4fca --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple translation. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 11, + 22 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..2defe04 --- /dev/null +++ b/cases/transform_coordinates/v0.6/core/valid/translation_inverse.ome.zarr/zarr.json @@ -0,0 +1,55 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "translation": [ + 10, + 20 + ], + "type": "translation" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/oztest.json new file mode 100644 index 0000000..d8476ab --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/zarr.json new file mode 100644 index 0000000..d14ed2e --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine.ome.zarr/zarr.json @@ -0,0 +1,79 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 2, + 0, + 0, + 20 + ], + [ + 0, + 3, + 0, + 60 + ], + [ + 0, + 0, + 4, + 120 + ] + ], + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/oztest.json new file mode 100644 index 0000000..77d0459 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/oztest.json @@ -0,0 +1,28 @@ +{ + "description": "An affine performing down-projection from 3D to 2D.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2, + 3 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 12, + 18 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/zarr.json new file mode 100644 index 0000000..c812650 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_downProjection.ome.zarr/zarr.json @@ -0,0 +1,69 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 2, + 2, + 2, + 0 + ], + [ + 3, + 3, + 3, + 0 + ] + ], + "input": { + "name": "input" + }, + "name": "input->output", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/oztest.json new file mode 100644 index 0000000..e8a2e99 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Identity transformation as an affine.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/zarr.json new file mode 100644 index 0000000..2f6815a --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity.ome.zarr/zarr.json @@ -0,0 +1,63 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 1, + 0 + ] + ], + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..4b94fd4 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Identity transformation as an affine. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..2f6815a --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_identity_inverse.ome.zarr/zarr.json @@ -0,0 +1,63 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 1, + 0, + 0 + ], + [ + 0, + 1, + 0 + ] + ], + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..4d58160 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..d14ed2e --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse.ome.zarr/zarr.json @@ -0,0 +1,79 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 2, + 0, + 0, + 20 + ], + [ + 0, + 3, + 0, + 60 + ], + [ + 0, + 0, + 4, + 120 + ] + ], + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..2fa3a71f52cb9deface962aabb1c5ca0fee1abc5 GIT binary patch literal 48 ecmZQzU~pi7g9VNdrUO*0zzHtJ&;S(s-~<3jbp%EL literal 0 HcmV?d00001 diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json new file mode 100644 index 0000000..cb41017 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json @@ -0,0 +1,35 @@ +{ + "attributes": {}, + "chunk_grid": { + "configuration": { + "chunk_shape": [ + 3, + 4 + ] + }, + "name": "regular" + }, + "chunk_key_encoding": { + "configuration": { + "separator": "/" + }, + "name": "default" + }, + "codecs": [ + { + "configuration": { + "endian": "little" + }, + "name": "bytes" + } + ], + "data_type": "float32", + "fill_value": 0.0, + "node_type": "array", + "shape": [ + 3, + 4 + ], + "storage_transformers": [], + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/zarr.json new file mode 100644 index 0000000..a7d1b29 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/coordinateTransformations/zarr.json @@ -0,0 +1,5 @@ +{ + "attributes": {}, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/oztest.json new file mode 100644 index 0000000..4d58160 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/zarr.json new file mode 100644 index 0000000..42f69e0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float32.ome.zarr/zarr.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "path": "coordinateTransformations/inputToOutput", + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..a8bce31a7e11f61c193aa90d2e2b7fcfbf0a8714 GIT binary patch literal 96 ecmZQz00RdIg-)8FiF2Uw{m}R@{Q^+&I0pb&kOFxC literal 0 HcmV?d00001 diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json new file mode 100644 index 0000000..976bdc7 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json @@ -0,0 +1,35 @@ +{ + "attributes": {}, + "chunk_grid": { + "configuration": { + "chunk_shape": [ + 3, + 4 + ] + }, + "name": "regular" + }, + "chunk_key_encoding": { + "configuration": { + "separator": "/" + }, + "name": "default" + }, + "codecs": [ + { + "configuration": { + "endian": "little" + }, + "name": "bytes" + } + ], + "data_type": "float64", + "fill_value": 0.0, + "node_type": "array", + "shape": [ + 3, + 4 + ], + "storage_transformers": [], + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/zarr.json new file mode 100644 index 0000000..a7d1b29 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/coordinateTransformations/zarr.json @@ -0,0 +1,5 @@ +{ + "attributes": {}, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/oztest.json new file mode 100644 index 0000000..4d58160 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/zarr.json new file mode 100644 index 0000000..42f69e0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_inverse_path_float64.ome.zarr/zarr.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "path": "coordinateTransformations/inputToOutput", + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..2fa3a71f52cb9deface962aabb1c5ca0fee1abc5 GIT binary patch literal 48 ecmZQzU~pi7g9VNdrUO*0zzHtJ&;S(s-~<3jbp%EL literal 0 HcmV?d00001 diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json new file mode 100644 index 0000000..cb41017 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/inputToOutput/zarr.json @@ -0,0 +1,35 @@ +{ + "attributes": {}, + "chunk_grid": { + "configuration": { + "chunk_shape": [ + 3, + 4 + ] + }, + "name": "regular" + }, + "chunk_key_encoding": { + "configuration": { + "separator": "/" + }, + "name": "default" + }, + "codecs": [ + { + "configuration": { + "endian": "little" + }, + "name": "bytes" + } + ], + "data_type": "float32", + "fill_value": 0.0, + "node_type": "array", + "shape": [ + 3, + 4 + ], + "storage_transformers": [], + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/zarr.json new file mode 100644 index 0000000..a7d1b29 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/coordinateTransformations/zarr.json @@ -0,0 +1,5 @@ +{ + "attributes": {}, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/oztest.json new file mode 100644 index 0000000..d8476ab --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/zarr.json new file mode 100644 index 0000000..42f69e0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float32.ome.zarr/zarr.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "path": "coordinateTransformations/inputToOutput", + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..a8bce31a7e11f61c193aa90d2e2b7fcfbf0a8714 GIT binary patch literal 96 ecmZQz00RdIg-)8FiF2Uw{m}R@{Q^+&I0pb&kOFxC literal 0 HcmV?d00001 diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json new file mode 100644 index 0000000..976bdc7 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/inputToOutput/zarr.json @@ -0,0 +1,35 @@ +{ + "attributes": {}, + "chunk_grid": { + "configuration": { + "chunk_shape": [ + 3, + 4 + ] + }, + "name": "regular" + }, + "chunk_key_encoding": { + "configuration": { + "separator": "/" + }, + "name": "default" + }, + "codecs": [ + { + "configuration": { + "endian": "little" + }, + "name": "bytes" + } + ], + "data_type": "float64", + "fill_value": 0.0, + "node_type": "array", + "shape": [ + 3, + 4 + ], + "storage_transformers": [], + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/zarr.json new file mode 100644 index 0000000..a7d1b29 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/coordinateTransformations/zarr.json @@ -0,0 +1,5 @@ +{ + "attributes": {}, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/oztest.json new file mode 100644 index 0000000..d8476ab --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/oztest.json @@ -0,0 +1,59 @@ +{ + "description": "Scale and translation as an affine.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + -1, + -1, + -1 + ], + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 2, + 2, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 18, + 57, + 116 + ], + [ + 20, + 60, + 120 + ], + [ + 22, + 63, + 124 + ], + [ + 24, + 66, + 128 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/zarr.json new file mode 100644 index 0000000..42f69e0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_path_float64.ome.zarr/zarr.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "path": "coordinateTransformations/inputToOutput", + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/oztest.json new file mode 100644 index 0000000..3254966 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/oztest.json @@ -0,0 +1,28 @@ +{ + "description": "An affine performing up-projection from 2D to 3D.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 2, + 6, + 3 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/zarr.json new file mode 100644 index 0000000..852b264 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_affine/valid/affine_upProjection.ome.zarr/zarr.json @@ -0,0 +1,72 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "affine": [ + [ + 2, + 0, + 0 + ], + [ + 0, + 3, + 0 + ], + [ + 1, + 1, + 0 + ] + ], + "input": { + "name": "input" + }, + "name": "input->output", + "output": { + "name": "output" + }, + "type": "affine" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/oztest.json new file mode 100644 index 0000000..e2b320a --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Bijection forward.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 2, + 3 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/zarr.json new file mode 100644 index 0000000..581c2b0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_forward.ome.zarr/zarr.json @@ -0,0 +1,65 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "forward": { + "translation": [ + 1, + 1 + ], + "type": "translation" + }, + "input": { + "name": "input" + }, + "inverse": { + "translation": [ + 10, + 10 + ], + "type": "translation" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "bijection" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..4c60f34 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Bijection forward.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 11, + 12 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..581c2b0 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_bijection/valid/bijection_inverse.ome.zarr/zarr.json @@ -0,0 +1,65 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "forward": { + "translation": [ + 1, + 1 + ], + "type": "translation" + }, + "input": { + "name": "input" + }, + "inverse": { + "translation": [ + 10, + 10 + ], + "type": "translation" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "type": "bijection" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/oztest.json new file mode 100644 index 0000000..4d3fc9f --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple byDimension.", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 1, + 20 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/zarr.json new file mode 100644 index 0000000..7fe7619 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension.ome.zarr/zarr.json @@ -0,0 +1,78 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "inputAxes": [ + 0 + ], + "outputAxes": [ + 0 + ], + "transformation": { + "type": "identity" + } + }, + { + "inputAxes": [ + 1 + ], + "outputAxes": [ + 1 + ], + "transformation": { + "scale": [ + 10 + ], + "type": "scale" + } + } + ], + "type": "byDimension" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/oztest.json new file mode 100644 index 0000000..dbac8b9 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/oztest.json @@ -0,0 +1,27 @@ +{ + "description": "Simple byDimension. (inverse)", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 1, + 20 + ] + ], + "name": "output" + }, + "target": { + "coordinates": [ + [ + 1, + 2 + ] + ], + "name": "input" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/zarr.json new file mode 100644 index 0000000..7fe7619 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_byDimension/valid/byDimension_inverse.ome.zarr/zarr.json @@ -0,0 +1,78 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "name": "inputToOutput", + "output": { + "name": "output" + }, + "transformations": [ + { + "inputAxes": [ + 0 + ], + "outputAxes": [ + 0 + ], + "transformation": { + "type": "identity" + } + }, + { + "inputAxes": [ + 1 + ], + "outputAxes": [ + 1 + ], + "transformation": { + "scale": [ + 10 + ], + "type": "scale" + } + } + ], + "type": "byDimension" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..c87a6728a35a106af904065163f94227199449c5 GIT binary patch literal 20 VcmZQz0D%U3Aa-D25O4(2jsO&G0+Ij# literal 0 HcmV?d00001 diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/zarr.json b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/zarr.json new file mode 100644 index 0000000..cbaeaa2 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/inputToOutput/zarr.json @@ -0,0 +1,61 @@ +{ + "attributes": { + "ome": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "i", + "type": "space" + }, + { + "name": "c", + "type": "coordinate" + } + ], + "name": "inputToOutput" + } + ], + "coordinateTransformations": [ + { + "output": { + "name": "inputToOutput" + }, + "type": "identity" + } + ] + } + }, + "chunk_grid": { + "configuration": { + "chunk_shape": [ + 5, + 1 + ] + }, + "name": "regular" + }, + "chunk_key_encoding": { + "configuration": { + "separator": "/" + }, + "name": "default" + }, + "codecs": [ + { + "configuration": { + "endian": "little" + }, + "name": "bytes" + } + ], + "data_type": "float32", + "fill_value": 0.0, + "node_type": "array", + "shape": [ + 5, + 1 + ], + "storage_transformers": [], + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/zarr.json b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/zarr.json new file mode 100644 index 0000000..a7d1b29 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/coordinateTransformations/zarr.json @@ -0,0 +1,5 @@ +{ + "attributes": {}, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/oztest.json b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/oztest.json new file mode 100644 index 0000000..b936aa1 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/oztest.json @@ -0,0 +1,73 @@ +{ + "description": "1D coordinate field mapping index to physical space (x = i ** 2).", + "transform_coordinates": { + "source": { + "coordinates": [ + [ + 0.0 + ], + [ + 0.9 + ], + [ + 1.0 + ], + [ + 1.5 + ], + [ + 2.0 + ], + [ + 2.5 + ], + [ + 3.0 + ], + [ + 3.3 + ], + [ + 4.0 + ] + ], + "name": "input" + }, + "target": { + "coordinates": [ + [ + 0.0 + ], + [ + 0.9 + ], + [ + 1.0 + ], + [ + 2.5 + ], + [ + 4.0 + ], + [ + 6.5 + ], + [ + 9.0 + ], + [ + 11.1 + ], + [ + 16.0 + ] + ], + "name": "output" + }, + "tolerance": { + "absolute": 1e-6, + "relative": 0.001 + } + } +} diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/zarr.json b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/zarr.json new file mode 100644 index 0000000..77af385 --- /dev/null +++ b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_1d.ome.zarr/zarr.json @@ -0,0 +1,45 @@ +{ + "attributes": { + "ome": { + "scene": { + "coordinateSystems": [ + { + "axes": [ + { + "name": "i", + "type": "space" + } + ], + "name": "input" + }, + { + "axes": [ + { + "name": "x", + "type": "space" + } + ], + "name": "output" + } + ], + "coordinateTransformations": [ + { + "input": { + "name": "input" + }, + "interpolation": "linear", + "name": "inputToOutput", + "output": { + "name": "output" + }, + "path": "coordinateTransformations/inputToOutput", + "type": "coordinates" + } + ] + }, + "version": "0.6" + } + }, + "node_type": "group", + "zarr_format": 3 +} diff --git a/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0/0 b/cases/transform_coordinates/v0.6/transform_coordinates/valid/coordinates_2d-3d.ome.zarr/coordinateTransformations/inputToOutput/c/0/0/0 new file mode 100644 index 0000000000000000000000000000000000000000..79546a3db08d0e8a1c1aa1debd3ac01d4421cf5f GIT binary patch literal 192 zcmZ9FfeipL2m%?Q8@=7Eqx>ixtsITX=Sc{tsL~(nkzi2vCa99eytAH1-R~VT Date: Fri, 30 Oct 2026 18:53:26 +0000 Subject: [PATCH 3/5] Fix lints --- src/oztest/kinds/common.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/oztest/kinds/common.py b/src/oztest/kinds/common.py index 925683a..90915d6 100644 --- a/src/oztest/kinds/common.py +++ b/src/oztest/kinds/common.py @@ -176,11 +176,10 @@ async def run_cases( match output.format: case "json": - results = [v.to_dict(True, False) for v in results] jso = { "command": dingus, "oztest_version": version("oztest"), - "results": results, + "results": [v.to_dict(True, False) for v in results], } with output.open() as f: json.dump(jso, f, indent=2, sort_keys=True) From 2245367b99684a5cb3891174ecc5ddb8d693338e Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 30 Oct 2026 18:58:46 +0000 Subject: [PATCH 4/5] Storage test --- src/oztest/kinds/transform_coordinates.py | 6 ++++++ test/test_valid_storage.py | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/oztest/kinds/transform_coordinates.py b/src/oztest/kinds/transform_coordinates.py index 2bd7674..465a35b 100644 --- a/src/oztest/kinds/transform_coordinates.py +++ b/src/oztest/kinds/transform_coordinates.py @@ -65,6 +65,12 @@ class OztestTransformCoordinates: transform_coordinates: TransformCoordinatesConfig description: str | None = None + @classmethod + def from_dir(cls, dpath: Path) -> Self: + txt = dpath.joinpath(CONFIG_NAME).read_text() + jso = json.loads(txt) + return cls.from_jso(jso) + @classmethod def from_jso(cls, jso: JSON) -> Self: if not isinstance(jso, dict): diff --git a/test/test_valid_storage.py b/test/test_valid_storage.py index 1cc724a..cca0348 100644 --- a/test/test_valid_storage.py +++ b/test/test_valid_storage.py @@ -3,6 +3,7 @@ import pytest from oztest.case_filter import Case, CaseFilter +from oztest.kinds.transform_coordinates import OztestTransformCoordinates def parametrize_cases(filt: CaseFilter): @@ -42,3 +43,9 @@ def test_zarr_tests_are_zarr(case: Case): if isinstance(root, zarr.Group): for _ in root.members(None): pass + + +@parametrize_cases(CaseFilter.from_args(kinds=["transform_coordinates"])) +def test_transform_coordinates_oztest(case: Case): + with case.as_path() as p: + OztestTransformCoordinates.from_dir(p) From 33cc79a5092cbb4b9fa75a75c2d439f68355d07e Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 30 Oct 2026 19:00:59 +0000 Subject: [PATCH 5/5] oztest from dir --- src/oztest/kinds/common.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/oztest/kinds/common.py b/src/oztest/kinds/common.py index 90915d6..0082c90 100644 --- a/src/oztest/kinds/common.py +++ b/src/oztest/kinds/common.py @@ -53,6 +53,16 @@ class Result(NamedTuple): class Oztest: description: str | None = None + @classmethod + def from_path(cls, p: Path) -> Self | None: + if p.is_dir(): + p = p.joinpath("oztest.json") + if not p.exists(): + return None + txt = p.read_text() + jso = json.loads(txt) + return cls.from_jso(jso) + @classmethod def from_jso(cls, jso: JSON) -> Self: if not isinstance(jso, dict):