ngio 0.5.0b1__tar.gz → 0.5.0b3__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.0b1 → ngio-0.5.0b3}/CHANGELOG.md +1 -0
  2. {ngio-0.5.0b1 → ngio-0.5.0b3}/PKG-INFO +2 -1
  3. {ngio-0.5.0b1 → ngio-0.5.0b3}/pyproject.toml +1 -0
  4. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/__init__.py +3 -0
  5. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_pyramid.py +4 -0
  6. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/hcs/_plate.py +67 -14
  7. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_abstract_image.py +3 -3
  8. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_image.py +13 -4
  9. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_label.py +29 -4
  10. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_ome_zarr_container.py +43 -4
  11. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/__init__.py +2 -0
  12. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +11 -11
  13. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/_tables_container.py +21 -0
  14. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/__init__.py +2 -0
  15. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/_zarr_utils.py +11 -11
  16. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/hcs/test_plate.py +18 -2
  17. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/images/test_create.py +26 -0
  18. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/images/test_omezarr_container.py +37 -1
  19. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/utils/test_zarr_utils.py +23 -0
  20. {ngio-0.5.0b1 → ngio-0.5.0b3}/.copier-answers.yml +0 -0
  21. {ngio-0.5.0b1 → ngio-0.5.0b3}/.gitattributes +0 -0
  22. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/ISSUE_TEMPLATE.md +0 -0
  23. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  24. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/dependabot.yml +0 -0
  25. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/pull_request_template.md +0 -0
  26. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/workflows/build_docs.yml +0 -0
  27. {ngio-0.5.0b1 → ngio-0.5.0b3}/.github/workflows/ci.yml +0 -0
  28. {ngio-0.5.0b1 → ngio-0.5.0b3}/.gitignore +0 -0
  29. {ngio-0.5.0b1 → ngio-0.5.0b3}/.pre-commit-config.yaml +0 -0
  30. {ngio-0.5.0b1 → ngio-0.5.0b3}/LICENSE +0 -0
  31. {ngio-0.5.0b1 → ngio-0.5.0b3}/README.md +0 -0
  32. {ngio-0.5.0b1 → ngio-0.5.0b3}/_typos.toml +0 -0
  33. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/hcs.md +0 -0
  34. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/images.md +0 -0
  35. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/iterators.md +0 -0
  36. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/common.md +0 -0
  37. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/hcs.md +0 -0
  38. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/images.md +0 -0
  39. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/io_pipes.md +0 -0
  40. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/iterators.md +0 -0
  41. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/ngio.md +0 -0
  42. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/tables.md +0 -0
  43. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/transforms.md +0 -0
  44. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ngio/utils.md +0 -0
  45. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/ome_zarr_container.md +0 -0
  46. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/api/tables.md +0 -0
  47. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/changelog.md +0 -0
  48. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/code_of_conduct.md +0 -0
  49. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/contributing.md +0 -0
  50. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/0_quickstart.md +0 -0
  51. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/1_ome_zarr_containers.md +0 -0
  52. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/2_images.md +0 -0
  53. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/3_tables.md +0 -0
  54. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/4_masked_images.md +0 -0
  55. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/5_hcs.md +0 -0
  56. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/getting_started/6_iterators.md +0 -0
  57. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/index.md +0 -0
  58. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/backend.md +0 -0
  59. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/overview.md +0 -0
  60. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/condition_table.md +0 -0
  61. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/custom_table.md +0 -0
  62. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/feature_table.md +0 -0
  63. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/generic_table.md +0 -0
  64. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/masking_roi_table.md +0 -0
  65. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/table_specs/table_types/roi_table.md +0 -0
  66. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/tutorials/create_ome_zarr.ipynb +0 -0
  67. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/tutorials/feature_extraction.ipynb +0 -0
  68. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/tutorials/hcs_exploration.ipynb +0 -0
  69. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/tutorials/image_processing.ipynb +0 -0
  70. {ngio-0.5.0b1 → ngio-0.5.0b3}/docs/tutorials/image_segmentation.ipynb +0 -0
  71. {ngio-0.5.0b1 → ngio-0.5.0b3}/mkdocs.yml +0 -0
  72. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/__init__.py +0 -0
  73. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_dimensions.py +0 -0
  74. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_masking_roi.py +0 -0
  75. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_roi.py +0 -0
  76. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_synt_images_utils.py +0 -0
  77. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/common/_zoom.py +0 -0
  78. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/__init__.py +0 -0
  79. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/__init__.py +0 -0
  80. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_abstract_iterator.py +0 -0
  81. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_feature.py +0 -0
  82. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_image_processing.py +0 -0
  83. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_mappers.py +0 -0
  84. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_rois_utils.py +0 -0
  85. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/experimental/iterators/_segmentation.py +0 -0
  86. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/hcs/__init__.py +0 -0
  87. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/__init__.py +0 -0
  88. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_create_synt_container.py +0 -0
  89. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_create_utils.py +0 -0
  90. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_masked_image.py +0 -0
  91. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/images/_table_ops.py +0 -0
  92. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/__init__.py +0 -0
  93. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_io_pipes.py +0 -0
  94. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_io_pipes_masked.py +0 -0
  95. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_io_pipes_roi.py +0 -0
  96. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_io_pipes_types.py +0 -0
  97. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_match_shape.py +0 -0
  98. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_ops_axes.py +0 -0
  99. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_ops_slices.py +0 -0
  100. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_ops_slices_utils.py +0 -0
  101. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_ops_transforms.py +0 -0
  102. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/io_pipes/_zoom_transform.py +0 -0
  103. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/_meta_handlers.py +0 -0
  104. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +0 -0
  105. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +0 -0
  106. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +0 -0
  107. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
  108. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +0 -0
  109. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
  110. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
  111. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
  112. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v04/_v04_spec.py +0 -0
  113. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v05/__init__.py +0 -0
  114. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v05/_custom_models.py +0 -0
  115. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/ome_zarr_meta/v05/_v05_spec.py +0 -0
  116. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
  117. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
  118. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
  119. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/resources/__init__.py +0 -0
  120. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/resources/resource_model.py +0 -0
  121. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/__init__.py +0 -0
  122. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/_abstract_table.py +0 -0
  123. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/__init__.py +0 -0
  124. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_abstract_backend.py +0 -0
  125. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_anndata.py +0 -0
  126. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_anndata_utils.py +0 -0
  127. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_csv.py +0 -0
  128. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_json.py +0 -0
  129. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_parquet.py +0 -0
  130. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_py_arrow_backends.py +0 -0
  131. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_table_backends.py +0 -0
  132. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/backends/_utils.py +0 -0
  133. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/v1/__init__.py +0 -0
  134. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/v1/_condition_table.py +0 -0
  135. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/v1/_feature_table.py +0 -0
  136. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/v1/_generic_table.py +0 -0
  137. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/tables/v1/_roi_table.py +0 -0
  138. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/transforms/__init__.py +0 -0
  139. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/transforms/_zoom.py +0 -0
  140. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/_cache.py +0 -0
  141. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/_datasets.py +0 -0
  142. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/_errors.py +0 -0
  143. {ngio-0.5.0b1 → ngio-0.5.0b3}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
  144. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/conftest.py +0 -0
  145. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/create_test_data.py +0 -0
  146. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
  147. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
  148. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
  149. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/0/.zattrs +0 -0
  150. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
  151. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/1/.zattrs +0 -0
  152. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
  153. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
  154. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
  155. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
  156. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
  157. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zattrs +0 -0
  158. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
  159. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zattrs +0 -0
  160. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zattrs +0 -0
  161. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/tables/.zgroup +0 -0
  162. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zattrs +0 -0
  163. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/.zgroup +0 -0
  164. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
  165. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
  166. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
  167. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
  168. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/0/.zattrs +0 -0
  169. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
  170. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/1/.zattrs +0 -0
  171. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
  172. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
  173. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
  174. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
  175. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
  176. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zattrs +0 -0
  177. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
  178. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zattrs +0 -0
  179. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/tables/.zattrs +0 -0
  180. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/tables/.zgroup +0 -0
  181. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  182. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  183. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
  184. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
  185. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
  186. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
  187. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/0/.zattrs +0 -0
  188. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
  189. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/1/.zattrs +0 -0
  190. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
  191. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
  192. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
  193. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
  194. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
  195. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zattrs +0 -0
  196. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
  197. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zattrs +0 -0
  198. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/tables/.zattrs +0 -0
  199. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/tables/.zgroup +0 -0
  200. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  201. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  202. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
  203. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
  204. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
  205. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
  206. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/0/.zattrs +0 -0
  207. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
  208. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/1/.zattrs +0 -0
  209. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
  210. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
  211. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
  212. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
  213. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
  214. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zattrs +0 -0
  215. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
  216. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zattrs +0 -0
  217. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zattrs +0 -0
  218. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/tables/.zgroup +0 -0
  219. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  220. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  221. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
  222. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
  223. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
  224. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
  225. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/0/.zattrs +0 -0
  226. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
  227. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/1/.zattrs +0 -0
  228. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
  229. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
  230. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
  231. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
  232. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
  233. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zattrs +0 -0
  234. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
  235. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zattrs +0 -0
  236. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zattrs +0 -0
  237. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/tables/.zgroup +0 -0
  238. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  239. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  240. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
  241. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
  242. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
  243. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
  244. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/0/.zattrs +0 -0
  245. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
  246. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/1/.zattrs +0 -0
  247. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
  248. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
  249. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
  250. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
  251. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
  252. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zattrs +0 -0
  253. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
  254. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zattrs +0 -0
  255. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/tables/.zattrs +0 -0
  256. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/tables/.zgroup +0 -0
  257. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  258. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  259. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
  260. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
  261. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
  262. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
  263. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/0/.zattrs +0 -0
  264. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
  265. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/1/.zattrs +0 -0
  266. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
  267. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
  268. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
  269. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
  270. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
  271. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zattrs +0 -0
  272. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
  273. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zattrs +0 -0
  274. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zattrs +0 -0
  275. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/tables/.zgroup +0 -0
  276. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  277. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  278. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
  279. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
  280. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
  281. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
  282. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/0/.zattrs +0 -0
  283. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
  284. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/1/.zattrs +0 -0
  285. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
  286. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
  287. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
  288. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
  289. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
  290. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zattrs +0 -0
  291. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
  292. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zattrs +0 -0
  293. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/tables/.zattrs +0 -0
  294. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/tables/.zgroup +0 -0
  295. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zattrs +0 -0
  296. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/.zgroup +0 -0
  297. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
  298. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
  299. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
  300. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
  301. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/0/.zattrs +0 -0
  302. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
  303. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/1/.zattrs +0 -0
  304. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
  305. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
  306. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
  307. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
  308. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
  309. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zattrs +0 -0
  310. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
  311. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zattrs +0 -0
  312. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/tables/.zattrs +0 -0
  313. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/tables/.zgroup +0 -0
  314. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zattrs +0 -0
  315. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/.zgroup +0 -0
  316. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
  317. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
  318. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
  319. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
  320. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
  321. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
  322. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/0/zarr.json +0 -0
  323. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/1/zarr.json +0 -0
  324. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/0/zarr.json +0 -0
  325. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/1/zarr.json +0 -0
  326. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/labels/label/zarr.json +0 -0
  327. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/labels/zarr.json +0 -0
  328. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/table.csv +0 -0
  329. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/tables/well_ROI_table/zarr.json +0 -0
  330. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/tables/zarr.json +0 -0
  331. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_c1yx.zarr/zarr.json +0 -0
  332. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/0/zarr.json +0 -0
  333. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/1/zarr.json +0 -0
  334. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/labels/label/0/zarr.json +0 -0
  335. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/labels/label/1/zarr.json +0 -0
  336. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/labels/label/zarr.json +0 -0
  337. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/labels/zarr.json +0 -0
  338. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/table.csv +0 -0
  339. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  340. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/tables/zarr.json +0 -0
  341. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_cyx.zarr/zarr.json +0 -0
  342. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/0/zarr.json +0 -0
  343. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/1/zarr.json +0 -0
  344. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/labels/label/0/zarr.json +0 -0
  345. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/labels/label/1/zarr.json +0 -0
  346. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/labels/label/zarr.json +0 -0
  347. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/labels/zarr.json +0 -0
  348. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/table.csv +0 -0
  349. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  350. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/tables/zarr.json +0 -0
  351. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_czyx.zarr/zarr.json +0 -0
  352. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/0/zarr.json +0 -0
  353. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/1/zarr.json +0 -0
  354. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/0/zarr.json +0 -0
  355. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/1/zarr.json +0 -0
  356. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/labels/label/zarr.json +0 -0
  357. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/labels/zarr.json +0 -0
  358. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/table.csv +0 -0
  359. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  360. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/tables/zarr.json +0 -0
  361. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tcyx.zarr/zarr.json +0 -0
  362. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/0/zarr.json +0 -0
  363. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/1/zarr.json +0 -0
  364. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/0/zarr.json +0 -0
  365. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/1/zarr.json +0 -0
  366. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/labels/label/zarr.json +0 -0
  367. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/labels/zarr.json +0 -0
  368. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/table.csv +0 -0
  369. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  370. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/tables/zarr.json +0 -0
  371. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tczyx.zarr/zarr.json +0 -0
  372. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/0/zarr.json +0 -0
  373. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/1/zarr.json +0 -0
  374. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/labels/label/0/zarr.json +0 -0
  375. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/labels/label/1/zarr.json +0 -0
  376. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/labels/label/zarr.json +0 -0
  377. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/labels/zarr.json +0 -0
  378. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/table.csv +0 -0
  379. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  380. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/tables/zarr.json +0 -0
  381. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tyx.zarr/zarr.json +0 -0
  382. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/0/zarr.json +0 -0
  383. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/1/zarr.json +0 -0
  384. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/0/zarr.json +0 -0
  385. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/1/zarr.json +0 -0
  386. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/labels/label/zarr.json +0 -0
  387. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/labels/zarr.json +0 -0
  388. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/table.csv +0 -0
  389. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  390. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/tables/zarr.json +0 -0
  391. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_tzyx.zarr/zarr.json +0 -0
  392. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/0/zarr.json +0 -0
  393. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/1/zarr.json +0 -0
  394. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/labels/label/0/zarr.json +0 -0
  395. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/labels/label/1/zarr.json +0 -0
  396. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/labels/label/zarr.json +0 -0
  397. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/labels/zarr.json +0 -0
  398. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/table.csv +0 -0
  399. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/tables/well_ROI_table/zarr.json +0 -0
  400. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/tables/zarr.json +0 -0
  401. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_yx.zarr/zarr.json +0 -0
  402. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/0/zarr.json +0 -0
  403. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/1/zarr.json +0 -0
  404. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/labels/label/0/zarr.json +0 -0
  405. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/labels/label/1/zarr.json +0 -0
  406. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/labels/label/zarr.json +0 -0
  407. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/labels/zarr.json +0 -0
  408. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/table.csv +0 -0
  409. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/tables/well_ROI_table/zarr.json +0 -0
  410. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/tables/zarr.json +0 -0
  411. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/data/v05/images/test_image_zyx.zarr/zarr.json +0 -0
  412. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/conftest.py +0 -0
  413. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/test_http_store.py +0 -0
  414. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/test_local_store.py +0 -0
  415. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/test_memory_store.py +0 -0
  416. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/test_s3_store.py +0 -0
  417. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/stores/utils.py +0 -0
  418. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/common/test_dimensions.py +0 -0
  419. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/common/test_pyramid.py +0 -0
  420. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/common/test_roi.py +0 -0
  421. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/common/test_transforms.py +0 -0
  422. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/hcs/test_well.py +0 -0
  423. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/images/test_images.py +0 -0
  424. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/images/test_masked_images.py +0 -0
  425. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/images/test_table_ops.py +0 -0
  426. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/io_pipes/test_axes_ops.py +0 -0
  427. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/io_pipes/test_slicing_ops.py +0 -0
  428. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/iterators/test_iterators.py +0 -0
  429. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
  430. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +0 -0
  431. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +0 -0
  432. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_backends.py +0 -0
  433. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_backends_utils.py +0 -0
  434. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_feature_table.py +0 -0
  435. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_generic_table.py +0 -0
  436. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
  437. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_roi_table_v1.py +0 -0
  438. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/tables/test_table_group.py +0 -0
  439. {ngio-0.5.0b1 → ngio-0.5.0b3}/tests/unit/utils/test_download_datasets.py +0 -0
@@ -5,6 +5,7 @@
5
5
  ### Features
6
6
  - Add support for OME-NGFF v0.5
7
7
  - Move to zarr-python v3
8
+ - API to delete labels and tables from OME-Zarr containers and HCS plates.
8
9
 
9
10
  ### API Breaking Changes
10
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngio
3
- Version: 0.5.0b1
3
+ Version: 0.5.0b3
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
@@ -42,6 +42,7 @@ Requires-Dist: pyqt5; extra == 'dev'
42
42
  Requires-Dist: rich; extra == 'dev'
43
43
  Requires-Dist: ruff; extra == 'dev'
44
44
  Requires-Dist: scikit-image; extra == 'dev'
45
+ Requires-Dist: zarrs; extra == 'dev'
45
46
  Provides-Extra: docs
46
47
  Requires-Dist: griffe-typingdoc; extra == 'docs'
47
48
  Requires-Dist: markdown-exec[ansi]; extra == 'docs'
@@ -66,6 +66,7 @@ test = [
66
66
  ]
67
67
 
68
68
  dev = [
69
+ "zarrs",
69
70
  "Pympler",
70
71
  "napari",
71
72
  "pyqt5",
@@ -37,6 +37,7 @@ from ngio.ome_zarr_meta.ngio_specs import (
37
37
  NgffVersions,
38
38
  PixelSize,
39
39
  )
40
+ from ngio.utils import NgioSupportedStore, StoreOrGroup
40
41
 
41
42
  __all__ = [
42
43
  "AxesSetup",
@@ -47,12 +48,14 @@ __all__ = [
47
48
  "ImageInWellPath",
48
49
  "Label",
49
50
  "NgffVersions",
51
+ "NgioSupportedStore",
50
52
  "OmeZarrContainer",
51
53
  "OmeZarrPlate",
52
54
  "OmeZarrWell",
53
55
  "PixelSize",
54
56
  "Roi",
55
57
  "RoiSlice",
58
+ "StoreOrGroup",
56
59
  "create_empty_ome_zarr",
57
60
  "create_empty_plate",
58
61
  "create_empty_well",
@@ -273,6 +273,10 @@ class PyramidLevel(BaseModel):
273
273
  "Shards must have the same length as shape "
274
274
  f"({len(self.shape)}), got {len(self.shards)}"
275
275
  )
276
+ normalized_shards = []
277
+ for dim_size, shard_size in zip(self.shape, self.shards, strict=True):
278
+ normalized_shards.append(min(dim_size, shard_size))
279
+ self.shards = tuple(normalized_shards)
276
280
  return self
277
281
 
278
282
 
@@ -15,6 +15,7 @@ from ngio.images import (
15
15
  list_image_tables_async,
16
16
  )
17
17
  from ngio.ome_zarr_meta import (
18
+ DefaultNgffVersion,
18
19
  ImageInWellPath,
19
20
  NgffVersions,
20
21
  NgioPlateMeta,
@@ -778,7 +779,8 @@ class OmeZarrPlate:
778
779
  self,
779
780
  store: StoreOrGroup,
780
781
  plate_name: str | None = None,
781
- version: NgffVersions = "0.4",
782
+ version: NgffVersions | None = None,
783
+ ngff_version: NgffVersions = DefaultNgffVersion,
782
784
  keep_acquisitions: bool = False,
783
785
  cache: bool = False,
784
786
  overwrite: bool = False,
@@ -788,7 +790,8 @@ class OmeZarrPlate:
788
790
  Args:
789
791
  store (StoreOrGroup): The Zarr store or group that stores the plate.
790
792
  plate_name (str | None): The name of the new plate.
791
- version (NgffVersion): The version of the new plate.
793
+ version (NgffVersion | None): Deprecated. Please use 'ngff_version' instead.
794
+ ngff_version (NgffVersion): The NGFF version to use for the new plate.
792
795
  keep_acquisitions (bool): Whether to keep the acquisitions in the new plate.
793
796
  cache (bool): Whether to use a cache for the zarr group metadata.
794
797
  overwrite (bool): Whether to overwrite the existing plate.
@@ -797,6 +800,7 @@ class OmeZarrPlate:
797
800
  ome_zarr_plate=self,
798
801
  store=store,
799
802
  plate_name=plate_name,
803
+ ngff_version=ngff_version,
800
804
  version=version,
801
805
  keep_acquisitions=keep_acquisitions,
802
806
  cache=cache,
@@ -955,6 +959,25 @@ class OmeZarrPlate:
955
959
  name=name, table=table, backend=backend, overwrite=overwrite
956
960
  )
957
961
 
962
+ def delete_table(self, name: str, missing_ok: bool = False) -> None:
963
+ """Delete a table from the group.
964
+
965
+ Args:
966
+ name (str): The name of the table to delete.
967
+ missing_ok (bool): If True, do not raise an error if the table does not
968
+ exist.
969
+
970
+ """
971
+ table_container = self._get_tables_container(create_mode=False)
972
+ if table_container is None and missing_ok:
973
+ return
974
+ if table_container is None:
975
+ raise NgioValueError(
976
+ f"No tables found in the image, cannot delete {name}. "
977
+ "Set missing_ok=True to ignore this error."
978
+ )
979
+ table_container.delete(name=name, missing_ok=missing_ok)
980
+
958
981
  def list_image_tables(
959
982
  self,
960
983
  acquisition: int | None = None,
@@ -1157,7 +1180,6 @@ def open_ome_zarr_plate(
1157
1180
  def _create_empty_plate_from_meta(
1158
1181
  store: StoreOrGroup,
1159
1182
  meta: NgioPlateMeta,
1160
- version: NgffVersions = "0.4",
1161
1183
  overwrite: bool = False,
1162
1184
  ) -> ZarrGroupHandler:
1163
1185
  """Create an empty OME-Zarr plate from metadata."""
@@ -1171,7 +1193,8 @@ def create_empty_plate(
1171
1193
  store: StoreOrGroup,
1172
1194
  name: str,
1173
1195
  images: list[ImageInWellPath] | None = None,
1174
- version: NgffVersions = "0.4",
1196
+ version: NgffVersions | None = None,
1197
+ ngff_version: NgffVersions = DefaultNgffVersion,
1175
1198
  cache: bool = False,
1176
1199
  overwrite: bool = False,
1177
1200
  ) -> OmeZarrPlate:
@@ -1182,18 +1205,26 @@ def create_empty_plate(
1182
1205
  name (str): The name of the plate.
1183
1206
  images (list[ImageInWellPath] | None): A list of images to add to the plate.
1184
1207
  If None, no images are added. Defaults to None.
1185
- version (NgffVersion): The version of the new plate.
1208
+ version (NgffVersion | None): Deprecated. Please use 'ngff_version' instead.
1209
+ ngff_version (NgffVersion): The NGFF version to use for the new plate.
1186
1210
  cache (bool): Whether to use a cache for the zarr group metadata.
1187
1211
  overwrite (bool): Whether to overwrite the existing plate.
1188
1212
  """
1213
+ if version is not None:
1214
+ warnings.warn(
1215
+ "The 'version' argument is deprecated, and will be removed in ngio=0.3. "
1216
+ "Please use 'ngff_version' instead.",
1217
+ DeprecationWarning,
1218
+ stacklevel=2,
1219
+ )
1220
+ ngff_version = version
1189
1221
  plate_meta = NgioPlateMeta.default_init(
1190
1222
  name=name,
1191
- version=version,
1223
+ ngff_version=ngff_version,
1192
1224
  )
1193
1225
  group_handler = _create_empty_plate_from_meta(
1194
1226
  store=store,
1195
1227
  meta=plate_meta,
1196
- version=version,
1197
1228
  overwrite=overwrite,
1198
1229
  )
1199
1230
 
@@ -1218,7 +1249,8 @@ def derive_ome_zarr_plate(
1218
1249
  ome_zarr_plate: OmeZarrPlate,
1219
1250
  store: StoreOrGroup,
1220
1251
  plate_name: str | None = None,
1221
- version: NgffVersions = "0.4",
1252
+ version: NgffVersions | None = None,
1253
+ ngff_version: NgffVersions = DefaultNgffVersion,
1222
1254
  keep_acquisitions: bool = False,
1223
1255
  cache: bool = False,
1224
1256
  overwrite: bool = False,
@@ -1229,24 +1261,33 @@ def derive_ome_zarr_plate(
1229
1261
  ome_zarr_plate (OmeZarrPlate): The existing OME-Zarr plate.
1230
1262
  store (StoreOrGroup): The Zarr store or group that stores the plate.
1231
1263
  plate_name (str | None): The name of the new plate.
1232
- version (NgffVersion): The version of the new plate.
1264
+ version (NgffVersion | None): Deprecated. Please use 'ngff_version' instead.
1265
+ ngff_version (NgffVersion): The NGFF version to use for the new plate.
1233
1266
  keep_acquisitions (bool): Whether to keep the acquisitions in the new plate.
1234
1267
  cache (bool): Whether to use a cache for the zarr group metadata.
1235
1268
  overwrite (bool): Whether to overwrite the existing plate.
1236
1269
  """
1270
+ if version is not None:
1271
+ warnings.warn(
1272
+ "The 'version' argument is deprecated, and will be removed in ngio=0.3. "
1273
+ "Please use 'ngff_version' instead.",
1274
+ DeprecationWarning,
1275
+ stacklevel=2,
1276
+ )
1277
+ ngff_version = version
1278
+
1237
1279
  if plate_name is None:
1238
1280
  plate_name = ome_zarr_plate.meta.plate.name
1239
1281
 
1240
1282
  new_meta = ome_zarr_plate.meta.derive(
1241
1283
  name=plate_name,
1242
- version=version,
1284
+ ngff_version=ngff_version,
1243
1285
  keep_acquisitions=keep_acquisitions,
1244
1286
  )
1245
1287
  _ = _create_empty_plate_from_meta(
1246
1288
  store=store,
1247
1289
  meta=new_meta,
1248
1290
  overwrite=overwrite,
1249
- version=version,
1250
1291
  )
1251
1292
  return open_ome_zarr_plate(
1252
1293
  store=store,
@@ -1277,7 +1318,8 @@ def open_ome_zarr_well(
1277
1318
 
1278
1319
  def create_empty_well(
1279
1320
  store: StoreOrGroup,
1280
- version: NgffVersions = "0.4",
1321
+ version: NgffVersions | None = None,
1322
+ ngff_version: NgffVersions = DefaultNgffVersion,
1281
1323
  cache: bool = False,
1282
1324
  overwrite: bool = False,
1283
1325
  ) -> OmeZarrWell:
@@ -1285,14 +1327,25 @@ def create_empty_well(
1285
1327
 
1286
1328
  Args:
1287
1329
  store (StoreOrGroup): The Zarr store or group that stores the well.
1288
- version (NgffVersion): The version of the new well.
1330
+ version (NgffVersion | None): Deprecated. Please use 'ngff_version' instead.
1331
+ ngff_version (NgffVersion): The version of the new well.
1289
1332
  cache (bool): Whether to use a cache for the zarr group metadata.
1290
1333
  overwrite (bool): Whether to overwrite the existing well.
1291
1334
  """
1335
+ if version is not None:
1336
+ warnings.warn(
1337
+ "The 'version' argument is deprecated, and will be removed in ngio=0.3. "
1338
+ "Please use 'ngff_version' instead.",
1339
+ DeprecationWarning,
1340
+ stacklevel=2,
1341
+ )
1342
+ ngff_version = version
1292
1343
  group_handler = ZarrGroupHandler(
1293
1344
  store=store, cache=True, mode="w" if overwrite else "w-"
1294
1345
  )
1295
- update_ngio_well_meta(group_handler, NgioWellMeta.default_init())
1346
+ update_ngio_well_meta(
1347
+ group_handler, NgioWellMeta.default_init(ngff_version=ngff_version)
1348
+ )
1296
1349
 
1297
1350
  return open_ome_zarr_well(
1298
1351
  store=store,
@@ -800,7 +800,7 @@ def abstract_derive(
800
800
  channels_meta: Sequence[str | Channel] | None = None,
801
801
  ngff_version: NgffVersions | None = None,
802
802
  # Zarr Array parameters
803
- chunks: ChunksLike = "auto",
803
+ chunks: ChunksLike | None = None,
804
804
  shards: ShardsLike | None = None,
805
805
  dtype: str | None = None,
806
806
  dimension_separator: Literal[".", "/"] | None = None,
@@ -835,7 +835,7 @@ def abstract_derive(
835
835
  channels_meta (Sequence[str | Channel] | None): The channels metadata
836
836
  of the new image.
837
837
  ngff_version (NgffVersions | None): The NGFF version to use.
838
- chunks (Sequence[int] | None): The chunk shape of the new image.
838
+ chunks (ChunksLike | None): The chunk shape of the new image.
839
839
  shards (ShardsLike | None): The shard shape of the new image.
840
840
  dtype (str | None): The data type of the new image.
841
841
  dimension_separator (DIMENSION_SEPARATOR | None): The separator to use for
@@ -918,7 +918,7 @@ def abstract_derive(
918
918
 
919
919
  if chunks is None:
920
920
  chunks = ref_image.zarr_array.chunks
921
-
921
+ print(chunks)
922
922
  if shards is None:
923
923
  shards = ref_image.zarr_array.shards
924
924
 
@@ -613,9 +613,10 @@ class ImagesContainer:
613
613
  time_spacing: float | None = None,
614
614
  name: str | None = None,
615
615
  channels_meta: Sequence[str | Channel] | None = None,
616
+ channels_policy: Literal["same", "squeeze", "singleton"] | int = "same",
616
617
  ngff_version: NgffVersions | None = None,
617
618
  # Zarr Array parameters
618
- chunks: ChunksLike = "auto",
619
+ chunks: ChunksLike | None = None,
619
620
  shards: ShardsLike | None = None,
620
621
  dtype: str = "uint16",
621
622
  dimension_separator: Literal[".", "/"] = "/",
@@ -644,8 +645,15 @@ class ImagesContainer:
644
645
  name (str | None): The name of the new image.
645
646
  channels_meta (Sequence[str | Channel] | None): The channels metadata
646
647
  of the new image.
648
+ channels_policy (Literal["same", "squeeze", "singleton"] | int):
649
+ Possible policies:
650
+ - If "squeeze", the channels axis will be removed (no matter its size).
651
+ - If "same", the channels axis will be kept as is (if it exists).
652
+ - If "singleton", the channels axis will be set to size 1.
653
+ - If an integer is provided, the channels axis will be changed to have
654
+ that size.
647
655
  ngff_version (NgffVersions | None): The NGFF version to use.
648
- chunks (Sequence[int] | None): The chunk shape of the new image.
656
+ chunks (ChunksLike | None): The chunk shape of the new image.
649
657
  shards (ShardsLike | None): The shard shape of the new image.
650
658
  dtype (str | None): The data type of the new image.
651
659
  dimension_separator (DIMENSION_SEPARATOR | None): The separator to use for
@@ -674,6 +682,7 @@ class ImagesContainer:
674
682
  time_spacing=time_spacing,
675
683
  name=name,
676
684
  channels_meta=channels_meta,
685
+ channels_policy=channels_policy,
677
686
  ngff_version=ngff_version,
678
687
  chunks=chunks,
679
688
  shards=shards,
@@ -769,7 +778,7 @@ def derive_image_container(
769
778
  channels_meta: Sequence[str | Channel] | None = None,
770
779
  ngff_version: NgffVersions | None = None,
771
780
  # Zarr Array parameters
772
- chunks: ChunksLike = "auto",
781
+ chunks: ChunksLike | None = None,
773
782
  shards: ShardsLike | None = None,
774
783
  dtype: str | None = None,
775
784
  dimension_separator: Literal[".", "/"] | None = None,
@@ -804,7 +813,7 @@ def derive_image_container(
804
813
  channels_meta (Sequence[str | Channel] | None): The channels metadata
805
814
  of the new image.
806
815
  ngff_version (NgffVersions | None): The NGFF version to use.
807
- chunks (ChunksLike): The chunk shape of the new image. Defaults to "auto".
816
+ chunks (ChunksLike | None): The chunk shape of the new image.
808
817
  shards (ShardsLike | None): The shard shape of the new image.
809
818
  dtype (str | None): The data type of the new image.
810
819
  dimension_separator (Literal[".", "/"] | None): The separator to use for
@@ -182,6 +182,31 @@ class LabelsContainer:
182
182
  )
183
183
  return Label(group_handler, path, label_meta_handler)
184
184
 
185
+ def delete(self, name: str, missing_ok: bool = False) -> None:
186
+ """Delete a label from the group.
187
+
188
+ Args:
189
+ name (str): The name of the label to delete.
190
+ missing_ok (bool): If True, do not raise an error if the label does not
191
+ exist.
192
+
193
+ """
194
+ existing_labels = self.list()
195
+ if name not in existing_labels:
196
+ if missing_ok:
197
+ return
198
+ raise NgioValueError(
199
+ f"Label '{name}' not found in the Labels group. "
200
+ f"Available labels: {existing_labels}"
201
+ )
202
+
203
+ self._group_handler.delete_group(name)
204
+ existing_labels.remove(name)
205
+ update_meta = NgioLabelsGroupMeta(
206
+ labels=existing_labels, version=self.meta.version
207
+ )
208
+ self._meta_handler.update_meta(update_meta)
209
+
185
210
  def derive(
186
211
  self,
187
212
  name: str,
@@ -194,7 +219,7 @@ class LabelsContainer:
194
219
  channels_policy: Literal["same", "squeeze", "singleton"] | int = "squeeze",
195
220
  ngff_version: NgffVersions | None = None,
196
221
  # Zarr Array parameters
197
- chunks: ChunksLike = "auto",
222
+ chunks: ChunksLike | None = None,
198
223
  shards: ShardsLike | None = None,
199
224
  dtype: str | None = None,
200
225
  dimension_separator: Literal[".", "/"] | None = None,
@@ -231,7 +256,7 @@ class LabelsContainer:
231
256
  - If an integer is provided, the channels axis will be changed to have
232
257
  that size.
233
258
  ngff_version (NgffVersions | None): The NGFF version to use.
234
- chunks (Sequence[int] | None): The chunk shape of the new image.
259
+ chunks (ChunksLike | None): The chunk shape of the new image.
235
260
  shards (ShardsLike | None): The shard shape of the new image.
236
261
  dtype (str | None): The data type of the new image.
237
262
  dimension_separator (DIMENSION_SEPARATOR | None): The separator to use for
@@ -303,7 +328,7 @@ def derive_label(
303
328
  channels_policy: Literal["same", "squeeze", "singleton"] | int = "squeeze",
304
329
  ngff_version: NgffVersions | None = None,
305
330
  # Zarr Array parameters
306
- chunks: ChunksLike = "auto",
331
+ chunks: ChunksLike | None = None,
307
332
  shards: ShardsLike | None = None,
308
333
  dtype: str | None = None,
309
334
  dimension_separator: Literal[".", "/"] | None = None,
@@ -334,7 +359,7 @@ def derive_label(
334
359
  - If an integer is provided, the channels axis will be changed to have that
335
360
  size.
336
361
  ngff_version (NgffVersions | None): The NGFF version to use.
337
- chunks (ChunksLike): The chunk shape of the new label. Defaults to "auto".
362
+ chunks (ChunksLike | None): The chunk shape of the new label.
338
363
  shards (ShardsLike | None): The shard shape of the new label.
339
364
  dtype (str | None): The data type of the new label.
340
365
  dimension_separator (Literal[".", "/"] | None): The separator to use for
@@ -434,7 +434,7 @@ class OmeZarrContainer:
434
434
  channels_meta: Sequence[str | Channel] | None = None,
435
435
  ngff_version: NgffVersions | None = None,
436
436
  # Zarr Array parameters
437
- chunks: ChunksLike = "auto",
437
+ chunks: ChunksLike | None = None,
438
438
  shards: ShardsLike | None = None,
439
439
  dtype: str = "uint16",
440
440
  dimension_separator: Literal[".", "/"] = "/",
@@ -471,7 +471,7 @@ class OmeZarrContainer:
471
471
  channels_meta (Sequence[str | Channel] | None): The channels metadata
472
472
  of the new image.
473
473
  ngff_version (NgffVersions | None): The NGFF version to use.
474
- chunks (ChunksLike): The chunk shape of the new image. Defaults to "auto".
474
+ chunks (ChunksLike | None): The chunk shape of the new image.
475
475
  shards (ShardsLike | None): The shard shape of the new image.
476
476
  dtype (str): The data type of the new image. Defaults to "uint16".
477
477
  dimension_separator (Literal[".", "/"]): The separator to use for
@@ -503,6 +503,7 @@ class OmeZarrContainer:
503
503
  time_spacing=time_spacing,
504
504
  name=name,
505
505
  channels_meta=channels_meta,
506
+ channels_policy=channels_policy,
506
507
  ngff_version=ngff_version,
507
508
  chunks=chunks,
508
509
  shards=shards,
@@ -674,6 +675,25 @@ class OmeZarrContainer:
674
675
  name=name, table=table, backend=backend, overwrite=overwrite
675
676
  )
676
677
 
678
+ def delete_table(self, name: str, missing_ok: bool = False) -> None:
679
+ """Delete a table from the group.
680
+
681
+ Args:
682
+ name (str): The name of the table to delete.
683
+ missing_ok (bool): If True, do not raise an error if the table does not
684
+ exist.
685
+
686
+ """
687
+ table_container = self._get_tables_container(create_mode=False)
688
+ if table_container is None and missing_ok:
689
+ return
690
+ if table_container is None:
691
+ raise NgioValueError(
692
+ f"No tables found in the image, cannot delete {name}. "
693
+ "Set missing_ok=True to ignore this error."
694
+ )
695
+ table_container.delete(name=name, missing_ok=missing_ok)
696
+
677
697
  def list_labels(self) -> list[str]:
678
698
  """List all labels in the image."""
679
699
  label_container = self._get_labels_container(create_mode=False)
@@ -739,6 +759,25 @@ class OmeZarrContainer:
739
759
  masking_roi_table=masking_table,
740
760
  )
741
761
 
762
+ def delete_label(self, name: str, missing_ok: bool = False) -> None:
763
+ """Delete a label from the group.
764
+
765
+ Args:
766
+ name (str): The name of the label to delete.
767
+ missing_ok (bool): If True, do not raise an error if the label does not
768
+ exist.
769
+
770
+ """
771
+ label_container = self._get_labels_container(create_mode=False)
772
+ if label_container is None and missing_ok:
773
+ return
774
+ if label_container is None:
775
+ raise NgioValueError(
776
+ f"No labels found in the image, cannot delete {name}. "
777
+ "Set missing_ok=True to ignore this error."
778
+ )
779
+ label_container.delete(name=name, missing_ok=missing_ok)
780
+
742
781
  def derive_label(
743
782
  self,
744
783
  name: str,
@@ -751,7 +790,7 @@ class OmeZarrContainer:
751
790
  channels_policy: Literal["same", "squeeze", "singleton"] | int = "squeeze",
752
791
  ngff_version: NgffVersions | None = None,
753
792
  # Zarr Array parameters
754
- chunks: ChunksLike = "auto",
793
+ chunks: ChunksLike | None = None,
755
794
  shards: ShardsLike | None = None,
756
795
  dtype: str | None = None,
757
796
  dimension_separator: Literal[".", "/"] | None = None,
@@ -783,7 +822,7 @@ class OmeZarrContainer:
783
822
  that size.
784
823
  Defaults to "squeeze".
785
824
  ngff_version (NgffVersions | None): The NGFF version to use.
786
- chunks (ChunksLike): The chunk shape of the new label. Defaults to "auto".
825
+ chunks (ChunksLike | None): The chunk shape of the new label.
787
826
  shards (ShardsLike | None): The shard shape of the new label.
788
827
  dtype (str | None): The data type of the new label.
789
828
  dimension_separator (Literal[".", "/"] | None): The separator to use for
@@ -16,6 +16,7 @@ from ngio.ome_zarr_meta._meta_handlers import (
16
16
  from ngio.ome_zarr_meta.ngio_specs import (
17
17
  AxesHandler,
18
18
  Dataset,
19
+ DefaultNgffVersion,
19
20
  ImageInWellPath,
20
21
  NgffVersions,
21
22
  NgioImageMeta,
@@ -31,6 +32,7 @@ from ngio.ome_zarr_meta.ngio_specs import (
31
32
  __all__ = [
32
33
  "AxesHandler",
33
34
  "Dataset",
35
+ "DefaultNgffVersion",
34
36
  "ImageInWellPath",
35
37
  "ImageMetaHandler",
36
38
  "LabelMetaHandler",
@@ -62,9 +62,9 @@ class NgioWellMeta(BaseModel):
62
62
  @classmethod
63
63
  def default_init(
64
64
  cls,
65
- version: NgffVersions = DefaultNgffVersion,
65
+ ngff_version: NgffVersions = DefaultNgffVersion,
66
66
  ) -> "NgioWellMeta":
67
- well = cls(images=[], version=version)
67
+ well = cls(images=[], version=ngff_version)
68
68
  return well
69
69
 
70
70
  @property
@@ -217,7 +217,7 @@ class NgioPlateMeta(BaseModel):
217
217
  cls,
218
218
  images: list[ImageInWellPath] | None = None,
219
219
  name: str | None = None,
220
- version: NgffVersions = DefaultNgffVersion,
220
+ ngff_version: NgffVersions = DefaultNgffVersion,
221
221
  ) -> "NgioPlateMeta":
222
222
  plate = cls(
223
223
  plate=PlateWithVersion(
@@ -227,9 +227,9 @@ class NgioPlateMeta(BaseModel):
227
227
  wells=[],
228
228
  field_count=None,
229
229
  name=name,
230
- version=version,
230
+ version=ngff_version,
231
231
  ),
232
- version=version,
232
+ version=ngff_version,
233
233
  )
234
234
 
235
235
  if images is None:
@@ -503,14 +503,14 @@ class NgioPlateMeta(BaseModel):
503
503
  def derive(
504
504
  self,
505
505
  name: str | None = None,
506
- version: NgffVersions | None = None,
506
+ ngff_version: NgffVersions | None = None,
507
507
  keep_acquisitions: bool = False,
508
508
  ) -> "NgioPlateMeta":
509
509
  """Derive the plate metadata.
510
510
 
511
511
  Args:
512
512
  name (str): The name of the derived plate.
513
- version (NgffVersion | None): The version of the derived plate.
513
+ ngff_version (NgffVersion | None): The version of the derived plate.
514
514
  If None, use the version of the original plate.
515
515
  keep_acquisitions (bool): If True, keep the acquisitions in the plate.
516
516
  """
@@ -522,8 +522,8 @@ class NgioPlateMeta(BaseModel):
522
522
  else:
523
523
  acquisitions = None
524
524
 
525
- if version is None:
526
- version = self.version
525
+ if ngff_version is None:
526
+ ngff_version = self.version
527
527
 
528
528
  return NgioPlateMeta(
529
529
  plate=PlateWithVersion(
@@ -533,7 +533,7 @@ class NgioPlateMeta(BaseModel):
533
533
  wells=[],
534
534
  field_count=self.plate.field_count,
535
535
  name=name,
536
- version=version,
536
+ version=ngff_version,
537
537
  ),
538
- version=version,
538
+ version=ngff_version,
539
539
  )
@@ -311,6 +311,27 @@ class TablesContainer:
311
311
  backend=backend,
312
312
  ) # type: ignore[return-value]
313
313
 
314
+ def delete(self, name: str, missing_ok: bool = False) -> None:
315
+ """Delete a table from the group.
316
+
317
+ Args:
318
+ name (str): The name of the table to delete.
319
+ missing_ok (bool): If True, do not raise an error if
320
+ the table does not exist.
321
+ """
322
+ existing_tables = self._get_tables_list()
323
+ if name not in existing_tables:
324
+ if missing_ok:
325
+ return
326
+ raise NgioValueError(
327
+ f"Table '{name}' not found in the Tables group. "
328
+ f"Available tables: {existing_tables}"
329
+ )
330
+
331
+ self._group_handler.delete_group(name)
332
+ existing_tables.remove(name)
333
+ self._group_handler.write_attrs({"tables": existing_tables})
334
+
314
335
  def add(
315
336
  self,
316
337
  name: str,
@@ -17,6 +17,7 @@ from ngio.utils._fractal_fsspec_store import fractal_fsspec_store
17
17
  from ngio.utils._zarr_utils import (
18
18
  AccessModeLiteral,
19
19
  NgioCache,
20
+ NgioSupportedStore,
20
21
  StoreOrGroup,
21
22
  ZarrGroupHandler,
22
23
  copy_group,
@@ -29,6 +30,7 @@ __all__ = [
29
30
  "NgioError",
30
31
  "NgioFileExistsError",
31
32
  "NgioFileNotFoundError",
33
+ "NgioSupportedStore",
32
34
  "NgioTableValidationError",
33
35
  "NgioValidationError",
34
36
  "NgioValueError",