ngio 0.5.0b3__tar.gz → 0.5.0b5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/workflows/ci.yml +1 -1
  2. {ngio-0.5.0b3 → ngio-0.5.0b5}/CHANGELOG.md +8 -1
  3. {ngio-0.5.0b3 → ngio-0.5.0b5}/PKG-INFO +3 -2
  4. {ngio-0.5.0b3 → ngio-0.5.0b5}/pyproject.toml +2 -1
  5. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_masking_roi.py +12 -16
  6. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_pyramid.py +1 -10
  7. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_roi.py +2 -2
  8. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_abstract_image.py +0 -2
  9. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_label.py +10 -5
  10. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/_datasets.py +6 -0
  11. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/images/test_images.py +35 -1
  12. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_backends.py +0 -2
  13. {ngio-0.5.0b3 → ngio-0.5.0b5}/.copier-answers.yml +0 -0
  14. {ngio-0.5.0b3 → ngio-0.5.0b5}/.gitattributes +0 -0
  15. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/ISSUE_TEMPLATE.md +0 -0
  16. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  17. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/dependabot.yml +0 -0
  18. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/pull_request_template.md +0 -0
  19. {ngio-0.5.0b3 → ngio-0.5.0b5}/.github/workflows/build_docs.yml +0 -0
  20. {ngio-0.5.0b3 → ngio-0.5.0b5}/.gitignore +0 -0
  21. {ngio-0.5.0b3 → ngio-0.5.0b5}/.pre-commit-config.yaml +0 -0
  22. {ngio-0.5.0b3 → ngio-0.5.0b5}/LICENSE +0 -0
  23. {ngio-0.5.0b3 → ngio-0.5.0b5}/README.md +0 -0
  24. {ngio-0.5.0b3 → ngio-0.5.0b5}/_typos.toml +0 -0
  25. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/hcs.md +0 -0
  26. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/images.md +0 -0
  27. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/iterators.md +0 -0
  28. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/common.md +0 -0
  29. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/hcs.md +0 -0
  30. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/images.md +0 -0
  31. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/io_pipes.md +0 -0
  32. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/iterators.md +0 -0
  33. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/ngio.md +0 -0
  34. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/tables.md +0 -0
  35. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/transforms.md +0 -0
  36. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ngio/utils.md +0 -0
  37. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/ome_zarr_container.md +0 -0
  38. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/api/tables.md +0 -0
  39. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/changelog.md +0 -0
  40. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/code_of_conduct.md +0 -0
  41. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/contributing.md +0 -0
  42. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/0_quickstart.md +0 -0
  43. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/1_ome_zarr_containers.md +0 -0
  44. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/2_images.md +0 -0
  45. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/3_tables.md +0 -0
  46. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/4_masked_images.md +0 -0
  47. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/5_hcs.md +0 -0
  48. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/getting_started/6_iterators.md +0 -0
  49. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/index.md +0 -0
  50. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/backend.md +0 -0
  51. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/overview.md +0 -0
  52. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/condition_table.md +0 -0
  53. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/custom_table.md +0 -0
  54. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/feature_table.md +0 -0
  55. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/generic_table.md +0 -0
  56. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/masking_roi_table.md +0 -0
  57. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/table_specs/table_types/roi_table.md +0 -0
  58. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/tutorials/create_ome_zarr.ipynb +0 -0
  59. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/tutorials/feature_extraction.ipynb +0 -0
  60. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/tutorials/hcs_exploration.ipynb +0 -0
  61. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/tutorials/image_processing.ipynb +0 -0
  62. {ngio-0.5.0b3 → ngio-0.5.0b5}/docs/tutorials/image_segmentation.ipynb +0 -0
  63. {ngio-0.5.0b3 → ngio-0.5.0b5}/mkdocs.yml +0 -0
  64. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/__init__.py +0 -0
  65. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/__init__.py +0 -0
  66. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_dimensions.py +0 -0
  67. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_synt_images_utils.py +0 -0
  68. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/common/_zoom.py +0 -0
  69. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/__init__.py +0 -0
  70. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/__init__.py +0 -0
  71. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_abstract_iterator.py +0 -0
  72. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_feature.py +0 -0
  73. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_image_processing.py +0 -0
  74. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_mappers.py +0 -0
  75. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_rois_utils.py +0 -0
  76. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/experimental/iterators/_segmentation.py +0 -0
  77. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/hcs/__init__.py +0 -0
  78. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/hcs/_plate.py +0 -0
  79. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/__init__.py +0 -0
  80. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_create_synt_container.py +0 -0
  81. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_create_utils.py +0 -0
  82. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_image.py +0 -0
  83. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_masked_image.py +0 -0
  84. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_ome_zarr_container.py +0 -0
  85. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/images/_table_ops.py +0 -0
  86. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/__init__.py +0 -0
  87. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_io_pipes.py +0 -0
  88. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_io_pipes_masked.py +0 -0
  89. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_io_pipes_roi.py +0 -0
  90. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_io_pipes_types.py +0 -0
  91. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_match_shape.py +0 -0
  92. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_ops_axes.py +0 -0
  93. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_ops_slices.py +0 -0
  94. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_ops_slices_utils.py +0 -0
  95. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_ops_transforms.py +0 -0
  96. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/io_pipes/_zoom_transform.py +0 -0
  97. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/__init__.py +0 -0
  98. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/_meta_handlers.py +0 -0
  99. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +0 -0
  100. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +0 -0
  101. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +0 -0
  102. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
  103. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +0 -0
  104. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +0 -0
  105. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
  106. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
  107. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
  108. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v04/_v04_spec.py +0 -0
  109. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v05/__init__.py +0 -0
  110. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v05/_custom_models.py +0 -0
  111. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/ome_zarr_meta/v05/_v05_spec.py +0 -0
  112. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
  113. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
  114. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
  115. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/resources/__init__.py +0 -0
  116. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/resources/resource_model.py +0 -0
  117. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/__init__.py +0 -0
  118. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/_abstract_table.py +0 -0
  119. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/_tables_container.py +0 -0
  120. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/__init__.py +0 -0
  121. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_abstract_backend.py +0 -0
  122. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_anndata.py +0 -0
  123. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_anndata_utils.py +0 -0
  124. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_csv.py +0 -0
  125. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_json.py +0 -0
  126. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_parquet.py +0 -0
  127. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_py_arrow_backends.py +0 -0
  128. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_table_backends.py +0 -0
  129. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/backends/_utils.py +0 -0
  130. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/v1/__init__.py +0 -0
  131. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/v1/_condition_table.py +0 -0
  132. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/v1/_feature_table.py +0 -0
  133. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/v1/_generic_table.py +0 -0
  134. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/tables/v1/_roi_table.py +0 -0
  135. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/transforms/__init__.py +0 -0
  136. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/transforms/_zoom.py +0 -0
  137. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/__init__.py +0 -0
  138. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/_cache.py +0 -0
  139. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/_errors.py +0 -0
  140. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
  141. {ngio-0.5.0b3 → ngio-0.5.0b5}/src/ngio/utils/_zarr_utils.py +0 -0
  142. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/conftest.py +0 -0
  143. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/create_test_data.py +0 -0
  144. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
  145. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
  146. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
  147. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/0/.zattrs +0 -0
  148. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
  149. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/1/.zattrs +0 -0
  150. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
  151. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
  152. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
  153. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
  154. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
  155. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zattrs +0 -0
  156. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
  157. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zattrs +0 -0
  158. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zattrs +0 -0
  159. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zgroup +0 -0
  160. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zattrs +0 -0
  161. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zgroup +0 -0
  162. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
  163. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
  164. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
  165. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
  166. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/0/.zattrs +0 -0
  167. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
  168. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/1/.zattrs +0 -0
  169. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
  170. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
  171. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
  172. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
  173. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
  174. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zattrs +0 -0
  175. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
  176. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zattrs +0 -0
  177. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/tables/.zattrs +0 -0
  178. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/tables/.zgroup +0 -0
  179. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  180. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  181. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
  182. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
  183. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
  184. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
  185. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/0/.zattrs +0 -0
  186. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
  187. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/1/.zattrs +0 -0
  188. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
  189. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
  190. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
  191. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
  192. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
  193. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zattrs +0 -0
  194. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
  195. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zattrs +0 -0
  196. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/tables/.zattrs +0 -0
  197. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/tables/.zgroup +0 -0
  198. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  199. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  200. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
  201. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
  202. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
  203. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
  204. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/0/.zattrs +0 -0
  205. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
  206. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/1/.zattrs +0 -0
  207. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
  208. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
  209. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
  210. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
  211. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
  212. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zattrs +0 -0
  213. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
  214. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zattrs +0 -0
  215. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zattrs +0 -0
  216. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zgroup +0 -0
  217. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  218. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  219. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
  220. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
  221. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
  222. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
  223. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/0/.zattrs +0 -0
  224. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
  225. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/1/.zattrs +0 -0
  226. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
  227. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
  228. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
  229. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
  230. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
  231. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zattrs +0 -0
  232. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
  233. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zattrs +0 -0
  234. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zattrs +0 -0
  235. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zgroup +0 -0
  236. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  237. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  238. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
  239. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
  240. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
  241. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
  242. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/0/.zattrs +0 -0
  243. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
  244. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/1/.zattrs +0 -0
  245. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
  246. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
  247. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
  248. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
  249. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
  250. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zattrs +0 -0
  251. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
  252. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zattrs +0 -0
  253. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/tables/.zattrs +0 -0
  254. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/tables/.zgroup +0 -0
  255. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  256. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  257. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
  258. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
  259. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
  260. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
  261. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/0/.zattrs +0 -0
  262. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
  263. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/1/.zattrs +0 -0
  264. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
  265. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
  266. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
  267. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
  268. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
  269. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zattrs +0 -0
  270. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
  271. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zattrs +0 -0
  272. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zattrs +0 -0
  273. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zgroup +0 -0
  274. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  275. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  276. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
  277. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
  278. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
  279. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
  280. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/0/.zattrs +0 -0
  281. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
  282. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/1/.zattrs +0 -0
  283. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
  284. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
  285. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
  286. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
  287. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
  288. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zattrs +0 -0
  289. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
  290. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zattrs +0 -0
  291. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/tables/.zattrs +0 -0
  292. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/tables/.zgroup +0 -0
  293. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zattrs +0 -0
  294. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zgroup +0 -0
  295. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
  296. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
  297. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
  298. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
  299. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/0/.zattrs +0 -0
  300. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
  301. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/1/.zattrs +0 -0
  302. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
  303. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
  304. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
  305. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
  306. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
  307. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zattrs +0 -0
  308. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
  309. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zattrs +0 -0
  310. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/tables/.zattrs +0 -0
  311. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/tables/.zgroup +0 -0
  312. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  313. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  314. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
  315. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
  316. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
  317. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
  318. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
  319. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
  320. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/0/zarr.json +0 -0
  321. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/1/zarr.json +0 -0
  322. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/0/zarr.json +0 -0
  323. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/1/zarr.json +0 -0
  324. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/zarr.json +0 -0
  325. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/labels/zarr.json +0 -0
  326. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
  327. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/zarr.json +0 -0
  328. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/tables/zarr.json +0 -0
  329. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_c1yx.zarr/zarr.json +0 -0
  330. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/0/zarr.json +0 -0
  331. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/1/zarr.json +0 -0
  332. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/labels/label/0/zarr.json +0 -0
  333. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/labels/label/1/zarr.json +0 -0
  334. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/labels/label/zarr.json +0 -0
  335. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/labels/zarr.json +0 -0
  336. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
  337. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  338. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/tables/zarr.json +0 -0
  339. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_cyx.zarr/zarr.json +0 -0
  340. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/0/zarr.json +0 -0
  341. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/1/zarr.json +0 -0
  342. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/labels/label/0/zarr.json +0 -0
  343. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/labels/label/1/zarr.json +0 -0
  344. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/labels/label/zarr.json +0 -0
  345. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/labels/zarr.json +0 -0
  346. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
  347. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  348. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/tables/zarr.json +0 -0
  349. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_czyx.zarr/zarr.json +0 -0
  350. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/0/zarr.json +0 -0
  351. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/1/zarr.json +0 -0
  352. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/0/zarr.json +0 -0
  353. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/1/zarr.json +0 -0
  354. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/zarr.json +0 -0
  355. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/labels/zarr.json +0 -0
  356. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
  357. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  358. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/tables/zarr.json +0 -0
  359. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tcyx.zarr/zarr.json +0 -0
  360. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/0/zarr.json +0 -0
  361. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/1/zarr.json +0 -0
  362. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/0/zarr.json +0 -0
  363. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/1/zarr.json +0 -0
  364. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/zarr.json +0 -0
  365. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/labels/zarr.json +0 -0
  366. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
  367. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  368. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/tables/zarr.json +0 -0
  369. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tczyx.zarr/zarr.json +0 -0
  370. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/0/zarr.json +0 -0
  371. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/1/zarr.json +0 -0
  372. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/labels/label/0/zarr.json +0 -0
  373. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/labels/label/1/zarr.json +0 -0
  374. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/labels/label/zarr.json +0 -0
  375. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/labels/zarr.json +0 -0
  376. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
  377. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  378. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/tables/zarr.json +0 -0
  379. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tyx.zarr/zarr.json +0 -0
  380. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/0/zarr.json +0 -0
  381. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/1/zarr.json +0 -0
  382. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/0/zarr.json +0 -0
  383. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/1/zarr.json +0 -0
  384. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/zarr.json +0 -0
  385. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/labels/zarr.json +0 -0
  386. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
  387. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  388. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/tables/zarr.json +0 -0
  389. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_tzyx.zarr/zarr.json +0 -0
  390. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/0/zarr.json +0 -0
  391. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/1/zarr.json +0 -0
  392. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/labels/label/0/zarr.json +0 -0
  393. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/labels/label/1/zarr.json +0 -0
  394. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/labels/label/zarr.json +0 -0
  395. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/labels/zarr.json +0 -0
  396. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
  397. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/zarr.json +0 -0
  398. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/tables/zarr.json +0 -0
  399. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_yx.zarr/zarr.json +0 -0
  400. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/0/zarr.json +0 -0
  401. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/1/zarr.json +0 -0
  402. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/labels/label/0/zarr.json +0 -0
  403. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/labels/label/1/zarr.json +0 -0
  404. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/labels/label/zarr.json +0 -0
  405. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/labels/zarr.json +0 -0
  406. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
  407. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  408. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/tables/zarr.json +0 -0
  409. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/data/v05/images/test_image_zyx.zarr/zarr.json +0 -0
  410. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/conftest.py +0 -0
  411. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/test_http_store.py +0 -0
  412. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/test_local_store.py +0 -0
  413. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/test_memory_store.py +0 -0
  414. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/test_s3_store.py +0 -0
  415. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/stores/utils.py +0 -0
  416. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/common/test_dimensions.py +0 -0
  417. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/common/test_pyramid.py +0 -0
  418. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/common/test_roi.py +0 -0
  419. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/common/test_transforms.py +0 -0
  420. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/hcs/test_plate.py +0 -0
  421. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/hcs/test_well.py +0 -0
  422. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/images/test_create.py +0 -0
  423. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/images/test_masked_images.py +0 -0
  424. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/images/test_omezarr_container.py +0 -0
  425. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/images/test_table_ops.py +0 -0
  426. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/io_pipes/test_axes_ops.py +0 -0
  427. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/io_pipes/test_slicing_ops.py +0 -0
  428. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/iterators/test_iterators.py +0 -0
  429. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
  430. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +0 -0
  431. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +0 -0
  432. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_backends_utils.py +0 -0
  433. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_feature_table.py +0 -0
  434. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_generic_table.py +0 -0
  435. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
  436. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_roi_table_v1.py +0 -0
  437. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/tables/test_table_group.py +0 -0
  438. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/utils/test_download_datasets.py +0 -0
  439. {ngio-0.5.0b3 → ngio-0.5.0b5}/tests/unit/utils/test_zarr_utils.py +0 -0
@@ -33,7 +33,7 @@ jobs:
33
33
  strategy:
34
34
  fail-fast: false
35
35
  matrix:
36
- python-version: ["3.11", "3.12", "3.13"]
36
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
37
37
  platform: [ubuntu-latest, macos-latest, windows-latest]
38
38
 
39
39
  steps:
@@ -6,6 +6,7 @@
6
6
  - Add support for OME-NGFF v0.5
7
7
  - Move to zarr-python v3
8
8
  - API to delete labels and tables from OME-Zarr containers and HCS plates.
9
+ - Allow to explicitly set axes order when building masking roi tables.
9
10
 
10
11
  ### API Breaking Changes
11
12
 
@@ -18,7 +19,13 @@
18
19
  - Internal changes to `ZarrGroupHandler` to support cleanup unused apis.
19
20
  - Remove `ngio_logger` in favor of standard warnings module.
20
21
 
21
- ## [v0.4.6]
22
+ ### Bug Fixes
23
+ - Fix bug in `consolidate` function when using corsening mode with non power-of-two shapes.
24
+
25
+ ## [v0.4.7]
26
+
27
+ ### Bug Fixes
28
+ - Fix bug adding time axis to masking roi tables.
22
29
 
23
30
  ### Bug Fixes
24
31
  - Fix channel selection from `wavelength_id`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngio
3
- Version: 0.5.0b3
3
+ Version: 0.5.0b5
4
4
  Summary: Next Generation file format IO
5
5
  Project-URL: homepage, https://github.com/BioVisionCenter/ngio
6
6
  Project-URL: repository, https://github.com/BioVisionCenter/ngio
@@ -13,8 +13,9 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
16
17
  Classifier: Typing :: Typed
17
- Requires-Python: <3.14,>=3.11
18
+ Requires-Python: <3.15,>=3.11
18
19
  Requires-Dist: aiohttp
19
20
  Requires-Dist: anndata
20
21
  Requires-Dist: dask[array]<2025.11.0
@@ -18,7 +18,7 @@ name = "ngio"
18
18
  dynamic = ["version"]
19
19
  description = "Next Generation file format IO"
20
20
  readme = "README.md"
21
- requires-python = ">=3.11,<3.14"
21
+ requires-python = ">=3.11,<3.15"
22
22
  license = { text = "BSD-3-Clause" }
23
23
  authors = [{ name = "Lorenzo Cerrone", email = "lorenzo.cerrone@uzh.ch" }]
24
24
  # https://pypi.org/classifiers/
@@ -29,6 +29,7 @@ classifiers = [
29
29
  "Programming Language :: Python :: 3.11",
30
30
  "Programming Language :: Python :: 3.12",
31
31
  "Programming Language :: Python :: 3.13",
32
+ "Programming Language :: Python :: 3.14",
32
33
  "Typing :: Typed",
33
34
  ]
34
35
  # add your package dependencies here
@@ -1,6 +1,7 @@
1
1
  """Utilities to build masking regions of interest (ROIs)."""
2
2
 
3
3
  import itertools
4
+ from collections.abc import Sequence
4
5
 
5
6
  import dask.array as da
6
7
  import numpy as np
@@ -115,7 +116,9 @@ def lazy_compute_slices(segmentation: da.Array) -> dict[int, tuple[slice, ...]]:
115
116
 
116
117
 
117
118
  def compute_masking_roi(
118
- segmentation: np.ndarray | da.Array, pixel_size: PixelSize
119
+ segmentation: np.ndarray | da.Array,
120
+ pixel_size: PixelSize,
121
+ axes_order: Sequence[str],
119
122
  ) -> list[Roi]:
120
123
  """Compute a ROIs for each label in a segmentation.
121
124
 
@@ -127,6 +130,12 @@ def compute_masking_roi(
127
130
  if segmentation.ndim not in [2, 3, 4]:
128
131
  raise NgioValueError("Only 2D, 3D, and 4D segmentations are supported.")
129
132
 
133
+ if len(axes_order) != segmentation.ndim:
134
+ raise NgioValueError(
135
+ "The length of axes_order must match the number of dimensions "
136
+ "of the segmentation."
137
+ )
138
+
130
139
  if isinstance(segmentation, da.Array):
131
140
  slices = lazy_compute_slices(segmentation)
132
141
  else:
@@ -134,24 +143,11 @@ def compute_masking_roi(
134
143
 
135
144
  rois = []
136
145
  for label, slice_ in slices.items():
137
- if len(slice_) == 2:
138
- slices = {"y": slice_[0], "x": slice_[1]}
139
- elif len(slice_) == 3:
140
- slices = {"z": slice_[0], "y": slice_[1], "x": slice_[2]}
141
- elif len(slice_) == 4:
142
- slices = {
143
- "t": slice_[0],
144
- "z": slice_[1],
145
- "y": slice_[2],
146
- "x": slice_[3],
147
- }
148
- else:
149
- raise ValueError("Invalid slice length.")
150
-
146
+ assert len(slice_) == len(axes_order)
147
+ slices = dict(zip(axes_order, slice_, strict=True))
151
148
  roi = Roi.from_values(
152
149
  name=str(label), slices=slices, label=label, space="pixel"
153
150
  )
154
-
155
151
  roi = roi.to_world(pixel_size=pixel_size)
156
152
  rois.append(roi)
157
153
  return rois
@@ -92,16 +92,7 @@ def _on_disk_coarsen(
92
92
 
93
93
  coarsening_setup = {}
94
94
  for i, s in enumerate(_scale):
95
- factor = 1 / s
96
- # This check is very strict, but it is necessary to avoid
97
- # a few pixels shift in the coarsening
98
- # We could add a tolerance
99
- if factor.is_integer():
100
- coarsening_setup[i] = int(factor)
101
- else:
102
- raise NgioValueError(
103
- f"Coarsening factor must be an integer, got {factor} on axis {i}"
104
- )
95
+ coarsening_setup[i] = int(np.round(1 / s))
105
96
 
106
97
  out_target = da.coarsen(
107
98
  aggregation_function, source_array, coarsening_setup, trim_excess=True
@@ -4,7 +4,7 @@ These are the interfaces bwteen the ROI tables / masking ROI tables and
4
4
  the ImageLikeHandler.
5
5
  """
6
6
 
7
- from collections.abc import Callable
7
+ from collections.abc import Callable, Mapping
8
8
  from typing import Literal, Self
9
9
 
10
10
  from pydantic import BaseModel, ConfigDict, Field, field_validator
@@ -183,7 +183,7 @@ class Roi(BaseModel):
183
183
  @classmethod
184
184
  def from_values(
185
185
  cls,
186
- slices: dict[str, float | tuple[float | None, float | None] | slice],
186
+ slices: Mapping[str, float | tuple[float | None, float | None] | slice],
187
187
  name: str | None,
188
188
  label: int | None = None,
189
189
  space: Literal["world", "pixel"] = "world",
@@ -615,7 +615,6 @@ def _shapes_from_ref_image(
615
615
  if len(shapes) == len(paths):
616
616
  return shapes
617
617
  missing_levels = len(paths) - len(shapes)
618
- print(ref_image.meta.scaling_factor())
619
618
  extended_shapes = shapes_from_scaling_factors(
620
619
  base_shape=shapes[-1],
621
620
  scaling_factors=ref_image.meta.scaling_factor(),
@@ -918,7 +917,6 @@ def abstract_derive(
918
917
 
919
918
  if chunks is None:
920
919
  chunks = ref_image.zarr_array.chunks
921
- print(chunks)
922
920
  if shards is None:
923
921
  shards = ref_image.zarr_array.shards
924
922
 
@@ -97,9 +97,11 @@ class Label(AbstractImage):
97
97
  meta = meta.to_units(space_unit=space_unit, time_unit=time_unit)
98
98
  self.meta_handler.update_meta(meta)
99
99
 
100
- def build_masking_roi_table(self) -> MaskingRoiTable:
100
+ def build_masking_roi_table(
101
+ self, axes_order: Sequence[str] | None = None
102
+ ) -> MaskingRoiTable:
101
103
  """Compute the masking ROI table."""
102
- return build_masking_roi_table(self)
104
+ return build_masking_roi_table(self, axes_order=axes_order)
103
105
 
104
106
  def consolidate(
105
107
  self,
@@ -405,8 +407,11 @@ def derive_label(
405
407
  return group_handler
406
408
 
407
409
 
408
- def build_masking_roi_table(label: Label) -> MaskingRoiTable:
410
+ def build_masking_roi_table(
411
+ label: Label, axes_order: Sequence[str] | None = None
412
+ ) -> MaskingRoiTable:
409
413
  """Compute the masking ROI table for a label."""
410
- array = label.get_as_dask(axes_order=["t", "z", "y", "x"])
411
- rois = compute_masking_roi(array, label.pixel_size)
414
+ axes_order = axes_order or label.axes
415
+ array = label.get_as_dask(axes_order=axes_order)
416
+ rois = compute_masking_roi(array, label.pixel_size, axes_order=axes_order)
412
417
  return MaskingRoiTable(rois, reference_label=label.meta.name)
@@ -155,5 +155,11 @@ def download_ome_zarr_dataset(
155
155
  path=download_dir,
156
156
  processor=processor,
157
157
  progressbar=progressbar,
158
+ # Add User-Agent to avoid 403 errors from Zenodo
159
+ downloader=pooch.HTTPDownloader(
160
+ headers={
161
+ "User-Agent": f"pooch/{pooch.__version__} (https://github.com/BioVisionCenter/ngio)"
162
+ }
163
+ ),
158
164
  )
159
165
  return processor.output_file()
@@ -1,6 +1,7 @@
1
1
  from pathlib import Path
2
2
 
3
3
  import pytest
4
+ from zarr.storage import MemoryStore
4
5
 
5
6
  from ngio import Image, create_empty_ome_zarr, open_image
6
7
  from ngio.transforms import ZoomTransform
@@ -225,7 +226,6 @@ def test_zoom_virtual_axes(
225
226
  assert img2_data.shape[0] == 1 # Virtual channel axis
226
227
 
227
228
  roi = img1.build_image_roi_table().rois()[0]
228
- print(roi)
229
229
  img2_roi_data = img2.get_roi_as_numpy(roi, transforms=[zoom], axes_order="czyx")
230
230
  # Roi data should match exactly except for virtual axis
231
231
  assert img1_data.shape[1:] == img2_roi_data.shape[1:]
@@ -251,3 +251,37 @@ def test_derive_image_consistency(
251
251
 
252
252
  label = ome_zarr.derive_label("derived_label")
253
253
  assert label.path == "s0"
254
+
255
+
256
+ @pytest.mark.parametrize(
257
+ ("shape", "factors"),
258
+ [
259
+ ((1, 1111, 1111), (1, 2, 2)),
260
+ ((1, 1111, 1111), (1, 4, 4)),
261
+ ((1, 1111, 1111), (1, 3, 3)),
262
+ ],
263
+ )
264
+ def test_consolidate_consistency(shape, factors):
265
+ store = MemoryStore()
266
+ ome_zarr = create_empty_ome_zarr(
267
+ store,
268
+ shape=shape,
269
+ axes_names="zyx",
270
+ xy_pixelsize=1.0,
271
+ scaling_factors=factors,
272
+ levels=3,
273
+ )
274
+ image = ome_zarr.get_image()
275
+ image.consolidate()
276
+
277
+ derived_store = MemoryStore()
278
+ derived_ome_zarr = ome_zarr.derive_image(derived_store)
279
+ derived_image = derived_ome_zarr.get_image()
280
+ derived_image.consolidate()
281
+
282
+ for level_path in ome_zarr.levels_paths:
283
+ img1 = ome_zarr.get_image(path=level_path)
284
+ img2 = derived_ome_zarr.get_image(path=level_path)
285
+ assert img1.shape == img2.shape, (
286
+ f"Shapes do not match at level {level_path}: {img1.shape} vs {img2.shape}"
287
+ )
@@ -111,8 +111,6 @@ def test_csv_backend(tmp_path: Path):
111
111
 
112
112
  backend.write(test_table, metadata={"test": "test"})
113
113
  loaded_table = backend.load_as_pandas_df()
114
- print(loaded_table)
115
- print(test_table)
116
114
  assert loaded_table.equals(test_table), loaded_table
117
115
  meta = backend._group_handler.load_attrs()
118
116
  assert meta["test"] == "test"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes