ngio 0.4.0b1__tar.gz → 0.4.1__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 (258) hide show
  1. {ngio-0.4.0b1 → ngio-0.4.1}/.github/workflows/build_docs.yml +1 -1
  2. {ngio-0.4.0b1 → ngio-0.4.1}/.github/workflows/ci.yml +2 -2
  3. {ngio-0.4.0b1 → ngio-0.4.1}/CHANGELOG.md +16 -10
  4. {ngio-0.4.0b1 → ngio-0.4.1}/PKG-INFO +14 -14
  5. {ngio-0.4.0b1 → ngio-0.4.1}/README.md +13 -12
  6. {ngio-0.4.0b1 → ngio-0.4.1}/docs/index.md +4 -3
  7. {ngio-0.4.0b1 → ngio-0.4.1}/pyproject.toml +1 -1
  8. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_zoom_transform.py +6 -1
  9. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/images/test_images.py +33 -0
  10. {ngio-0.4.0b1 → ngio-0.4.1}/.copier-answers.yml +0 -0
  11. {ngio-0.4.0b1 → ngio-0.4.1}/.gitattributes +0 -0
  12. {ngio-0.4.0b1 → ngio-0.4.1}/.github/ISSUE_TEMPLATE.md +0 -0
  13. {ngio-0.4.0b1 → ngio-0.4.1}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  14. {ngio-0.4.0b1 → ngio-0.4.1}/.github/dependabot.yml +0 -0
  15. {ngio-0.4.0b1 → ngio-0.4.1}/.github/pull_request_template.md +0 -0
  16. {ngio-0.4.0b1 → ngio-0.4.1}/.gitignore +0 -0
  17. {ngio-0.4.0b1 → ngio-0.4.1}/.pre-commit-config.yaml +0 -0
  18. {ngio-0.4.0b1 → ngio-0.4.1}/LICENSE +0 -0
  19. {ngio-0.4.0b1 → ngio-0.4.1}/_typos.toml +0 -0
  20. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/hcs.md +0 -0
  21. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/images.md +0 -0
  22. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/iterators.md +0 -0
  23. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/common.md +0 -0
  24. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/hcs.md +0 -0
  25. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/images.md +0 -0
  26. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/io_pipes.md +0 -0
  27. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/iterators.md +0 -0
  28. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/ngio.md +0 -0
  29. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/tables.md +0 -0
  30. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/transforms.md +0 -0
  31. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ngio/utils.md +0 -0
  32. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/ome_zarr_container.md +0 -0
  33. {ngio-0.4.0b1 → ngio-0.4.1}/docs/api/tables.md +0 -0
  34. {ngio-0.4.0b1 → ngio-0.4.1}/docs/changelog.md +0 -0
  35. {ngio-0.4.0b1 → ngio-0.4.1}/docs/code_of_conduct.md +0 -0
  36. {ngio-0.4.0b1 → ngio-0.4.1}/docs/contributing.md +0 -0
  37. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/0_quickstart.md +0 -0
  38. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/1_ome_zarr_containers.md +0 -0
  39. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/2_images.md +0 -0
  40. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/3_tables.md +0 -0
  41. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/4_masked_images.md +0 -0
  42. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/5_hcs.md +0 -0
  43. {ngio-0.4.0b1 → ngio-0.4.1}/docs/getting_started/6_iterators.md +0 -0
  44. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/backend.md +0 -0
  45. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/overview.md +0 -0
  46. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/condition_table.md +0 -0
  47. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/custom_table.md +0 -0
  48. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/feature_table.md +0 -0
  49. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/generic_table.md +0 -0
  50. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/masking_roi_table.md +0 -0
  51. {ngio-0.4.0b1 → ngio-0.4.1}/docs/table_specs/table_types/roi_table.md +0 -0
  52. {ngio-0.4.0b1 → ngio-0.4.1}/docs/tutorials/create_ome_zarr.ipynb +0 -0
  53. {ngio-0.4.0b1 → ngio-0.4.1}/docs/tutorials/feature_extraction.ipynb +0 -0
  54. {ngio-0.4.0b1 → ngio-0.4.1}/docs/tutorials/hcs_exploration.ipynb +0 -0
  55. {ngio-0.4.0b1 → ngio-0.4.1}/docs/tutorials/image_processing.ipynb +0 -0
  56. {ngio-0.4.0b1 → ngio-0.4.1}/docs/tutorials/image_segmentation.ipynb +0 -0
  57. {ngio-0.4.0b1 → ngio-0.4.1}/mkdocs.yml +0 -0
  58. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/__init__.py +0 -0
  59. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/__init__.py +0 -0
  60. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_dimensions.py +0 -0
  61. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_masking_roi.py +0 -0
  62. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_pyramid.py +0 -0
  63. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_roi.py +0 -0
  64. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_synt_images_utils.py +0 -0
  65. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/common/_zoom.py +0 -0
  66. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/__init__.py +0 -0
  67. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/__init__.py +0 -0
  68. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_abstract_iterator.py +0 -0
  69. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_feature.py +0 -0
  70. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_image_processing.py +0 -0
  71. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_mappers.py +0 -0
  72. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_rois_utils.py +0 -0
  73. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/experimental/iterators/_segmentation.py +0 -0
  74. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/hcs/__init__.py +0 -0
  75. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/hcs/_plate.py +0 -0
  76. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/__init__.py +0 -0
  77. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_abstract_image.py +0 -0
  78. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_create.py +0 -0
  79. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_create_synt_container.py +0 -0
  80. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_image.py +0 -0
  81. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_label.py +0 -0
  82. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_masked_image.py +0 -0
  83. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_ome_zarr_container.py +0 -0
  84. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/images/_table_ops.py +0 -0
  85. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/__init__.py +0 -0
  86. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_io_pipes.py +0 -0
  87. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_io_pipes_masked.py +0 -0
  88. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_io_pipes_roi.py +0 -0
  89. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_io_pipes_types.py +0 -0
  90. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_match_shape.py +0 -0
  91. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_ops_axes.py +0 -0
  92. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_ops_slices.py +0 -0
  93. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_ops_slices_utils.py +0 -0
  94. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/io_pipes/_ops_transforms.py +0 -0
  95. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/__init__.py +0 -0
  96. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/_meta_handlers.py +0 -0
  97. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +0 -0
  98. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +0 -0
  99. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +0 -0
  100. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
  101. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +0 -0
  102. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +0 -0
  103. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
  104. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
  105. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
  106. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/ome_zarr_meta/v04/_v04_spec_utils.py +0 -0
  107. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
  108. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
  109. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
  110. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/resources/__init__.py +0 -0
  111. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/resources/resource_model.py +0 -0
  112. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/__init__.py +0 -0
  113. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/_abstract_table.py +0 -0
  114. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/_tables_container.py +0 -0
  115. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/__init__.py +0 -0
  116. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_abstract_backend.py +0 -0
  117. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_anndata.py +0 -0
  118. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_anndata_utils.py +0 -0
  119. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_csv.py +0 -0
  120. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_json.py +0 -0
  121. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_non_zarr_backends.py +0 -0
  122. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_parquet.py +0 -0
  123. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_table_backends.py +0 -0
  124. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/backends/_utils.py +0 -0
  125. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/v1/__init__.py +0 -0
  126. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/v1/_condition_table.py +0 -0
  127. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/v1/_feature_table.py +0 -0
  128. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/v1/_generic_table.py +0 -0
  129. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/tables/v1/_roi_table.py +0 -0
  130. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/transforms/__init__.py +0 -0
  131. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/transforms/_zoom.py +0 -0
  132. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/__init__.py +0 -0
  133. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/_datasets.py +0 -0
  134. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/_errors.py +0 -0
  135. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
  136. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/_logger.py +0 -0
  137. {ngio-0.4.0b1 → ngio-0.4.1}/src/ngio/utils/_zarr_utils.py +0 -0
  138. {ngio-0.4.0b1 → ngio-0.4.1}/tests/conftest.py +0 -0
  139. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
  140. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
  141. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
  142. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
  143. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
  144. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
  145. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
  146. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
  147. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
  148. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
  149. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
  150. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
  151. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
  152. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
  153. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
  154. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
  155. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
  156. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
  157. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
  158. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
  159. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
  160. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
  161. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
  162. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
  163. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
  164. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
  165. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
  166. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
  167. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
  168. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
  169. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
  170. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
  171. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
  172. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
  173. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
  174. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
  175. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
  176. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
  177. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
  178. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
  179. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
  180. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
  181. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
  182. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
  183. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
  184. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
  185. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
  186. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
  187. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
  188. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
  189. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
  190. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
  191. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
  192. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
  193. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
  194. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
  195. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
  196. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
  197. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
  198. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
  199. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
  200. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
  201. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
  202. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
  203. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
  204. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
  205. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
  206. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
  207. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
  208. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
  209. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
  210. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
  211. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
  212. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
  213. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
  214. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
  215. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
  216. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
  217. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
  218. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
  219. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
  220. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
  221. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
  222. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
  223. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
  224. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
  225. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
  226. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
  227. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
  228. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
  229. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
  230. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
  231. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
  232. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
  233. {ngio-0.4.0b1 → ngio-0.4.1}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
  234. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/common/test_dimensions.py +0 -0
  235. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/common/test_pyramid.py +0 -0
  236. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/common/test_roi.py +0 -0
  237. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/common/test_transforms.py +0 -0
  238. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/hcs/test_plate.py +0 -0
  239. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/hcs/test_well.py +0 -0
  240. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/images/test_create.py +0 -0
  241. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/images/test_masked_images.py +0 -0
  242. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/images/test_omezarr_container.py +0 -0
  243. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/images/test_table_ops.py +0 -0
  244. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/io_pipes/test_axes_ops.py +0 -0
  245. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/io_pipes/test_slicing_ops.py +0 -0
  246. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/iterators/test_iterators.py +0 -0
  247. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
  248. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +0 -0
  249. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +0 -0
  250. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_backends.py +0 -0
  251. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_backends_utils.py +0 -0
  252. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_feature_table.py +0 -0
  253. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_generic_table.py +0 -0
  254. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
  255. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_roi_table_v1.py +0 -0
  256. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/tables/test_table_group.py +0 -0
  257. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/utils/test_download_datasets.py +0 -0
  258. {ngio-0.4.0b1 → ngio-0.4.1}/tests/unit/utils/test_zarr_utils.py +0 -0
@@ -22,7 +22,7 @@ jobs:
22
22
  with:
23
23
  fetch-depth: 0
24
24
  - name: 🐍 Set up Python
25
- uses: actions/setup-python@v5
25
+ uses: actions/setup-python@v6
26
26
  with:
27
27
  python-version: "3.13"
28
28
  cache-dependency-path: "pyproject.toml"
@@ -40,7 +40,7 @@ jobs:
40
40
  - uses: actions/checkout@v5
41
41
 
42
42
  - name: 🐍 Set up Python ${{ matrix.python-version }}
43
- uses: actions/setup-python@v5
43
+ uses: actions/setup-python@v6
44
44
  with:
45
45
  python-version: ${{ matrix.python-version }}
46
46
  cache-dependency-path: "pyproject.toml"
@@ -103,7 +103,7 @@ jobs:
103
103
  fetch-depth: 0
104
104
 
105
105
  - name: 🐍 Set up Python
106
- uses: actions/setup-python@v5
106
+ uses: actions/setup-python@v6
107
107
  with:
108
108
  python-version: "3.x"
109
109
 
@@ -1,13 +1,22 @@
1
1
  # Changelog
2
2
 
3
- ## [v0.4.0a1]
3
+ ## [v0.4.1]
4
+
5
+ ### Bug Fixes
6
+ - Fix bug in zoom transform when input axes contain unknown axes (e.g. virtual axes). Now unknown axes are treated as virtual axes and set to 1 in the target shape.
7
+
8
+ ## [v0.4.0]
4
9
 
5
10
  ### Features
6
11
 
7
- - add support for time in rois and roi-tables
12
+ - Add Iterators for image processing pipelines
13
+ - Add support for time in rois and roi-tables
8
14
  - Building masking roi tables expanded to time series data
9
- - add experimental support for Iterators
10
- - add support for rescaling on-the-fly masks for masked images
15
+ - Add zoom transformation
16
+ - Add support for rescaling on-the-fly masks for masked images
17
+ - Big refactor of the io pipeline to support iterators and lazy loading
18
+ - Add support for customize dimension separators and compression codecs
19
+ - Simplify AxesHandler and Dataset Classes
11
20
 
12
21
  ### API Changes
13
22
 
@@ -19,15 +28,12 @@
19
28
  - Image like objects now have a more clean API to load data. Instead of `get_array` and `set_array`, they now use `get_as_numpy`, and `get_as_dask` for delayed arrays.
20
29
  - Also for `get_roi` now specific methods are available. For ROI objects, the `get_roi_as_numpy`, and `get_roi_as_dask` methods.
21
30
  - Table ops moved to `ngio.images`
22
- - Make `label` an explicit attribute in `Roi` objects.
31
+ - int `label` as an explicit attribute in `Roi` objects (previously only in stored in name and relying on convention)
32
+ - Slight changes to `Image` and `Label` objects. Some minor attributes have been renamed for consistency.
23
33
 
24
34
  ### Table specs
25
35
 
26
- - add `t_second` and `len_t_second` to ROI tables and masking ROI tables
27
-
28
- ### Bug Fixes
29
-
30
- - improve type consistency and remove non-necessary "type: ignore"
36
+ - Add `t_second` and `len_t_second` to ROI tables and masking ROI tables
31
37
 
32
38
  ## [v0.3.5]
33
39
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngio
3
- Version: 0.4.0b1
3
+ Version: 0.4.1
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
@@ -28,7 +28,6 @@ Requires-Dist: pooch
28
28
  Requires-Dist: pyarrow
29
29
  Requires-Dist: pydantic
30
30
  Requires-Dist: requests
31
- Requires-Dist: xarray
32
31
  Requires-Dist: zarr<3
33
32
  Provides-Extra: dev
34
33
  Requires-Dist: devtools; extra == 'dev'
@@ -83,20 +82,22 @@ Ngio's mission is to streamline working with OME-Zarr files by providing a simpl
83
82
 
84
83
  ## Key Features
85
84
 
86
- ### 📊 Simple Object-Based API
85
+ ### 🔍 Simple Object-Based API
87
86
 
88
87
  - Easily open, explore, and manipulate OME-Zarr images and HCS plates
89
88
  - Create and derive new images and labels with minimal boilerplate code
90
89
 
91
- ### 🔍 Rich Tables and Regions of Interest (ROI) Support
90
+ ### 📊 Rich Tables and Regions of Interest (ROI) Support
92
91
 
92
+ - Tight integration with [tabular data](https://biovisioncenter.github.io/ngio/stable/table_specs/overview/)
93
93
  - Extract and analyze specific regions of interest
94
- - Tight integration with [Tabular Data](https://BioVisionCenter.github.io/ngio/stable/table_specs/overview/)
94
+ - Store measurements and other metadata in the OME-Zarr container
95
+ - Extensible & modular allowing users to define custom table schemas and on disk serialization
95
96
 
96
- ### 🔄 Scalable Data Processing (Coming Soon)
97
+ ### 🔄 Scalable Data Processing
97
98
 
98
- - Powerful iterators for processing data at scale
99
- - Efficient memory management for large datasets
99
+ - Powerful iterators for building scalable and generalizable image processing pipelines
100
+ - Extensible mapping mechanism for custom parallelization strategies
100
101
 
101
102
  ## Installation
102
103
 
@@ -114,23 +115,22 @@ Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher
114
115
 
115
116
  ## Development Status
116
117
 
117
- !!! warning
118
- Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
119
- We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
118
+ Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
119
+ We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
120
120
 
121
121
  ### Available Features
122
122
 
123
123
  - ✅ OME-Zarr metadata handling and validation
124
124
  - ✅ Image and label access across pyramid levels
125
125
  - ✅ ROI and table support
126
+ - ✅ Image processing iterators
126
127
  - ✅ Streaming from remote sources
127
128
  - ✅ Documentation and examples
128
129
 
129
130
  ### Upcoming Features
130
131
 
131
- - Advanced image processing iterators
132
- - Parallel processing capabilities
133
- - Support for OME-Zarr v0.5 and Zarr v3
132
+ - Support for OME-Zarr v0.5 and Zarr v3 (via `zarr-python` v3)
133
+ - Enhanced performance optimizations (parallel iterators, optimized io strategies)
134
134
 
135
135
  ## Contributors
136
136
 
@@ -16,20 +16,22 @@ Ngio's mission is to streamline working with OME-Zarr files by providing a simpl
16
16
 
17
17
  ## Key Features
18
18
 
19
- ### 📊 Simple Object-Based API
19
+ ### 🔍 Simple Object-Based API
20
20
 
21
21
  - Easily open, explore, and manipulate OME-Zarr images and HCS plates
22
22
  - Create and derive new images and labels with minimal boilerplate code
23
23
 
24
- ### 🔍 Rich Tables and Regions of Interest (ROI) Support
24
+ ### 📊 Rich Tables and Regions of Interest (ROI) Support
25
25
 
26
+ - Tight integration with [tabular data](https://biovisioncenter.github.io/ngio/stable/table_specs/overview/)
26
27
  - Extract and analyze specific regions of interest
27
- - Tight integration with [Tabular Data](https://BioVisionCenter.github.io/ngio/stable/table_specs/overview/)
28
+ - Store measurements and other metadata in the OME-Zarr container
29
+ - Extensible & modular allowing users to define custom table schemas and on disk serialization
28
30
 
29
- ### 🔄 Scalable Data Processing (Coming Soon)
31
+ ### 🔄 Scalable Data Processing
30
32
 
31
- - Powerful iterators for processing data at scale
32
- - Efficient memory management for large datasets
33
+ - Powerful iterators for building scalable and generalizable image processing pipelines
34
+ - Extensible mapping mechanism for custom parallelization strategies
33
35
 
34
36
  ## Installation
35
37
 
@@ -47,23 +49,22 @@ Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher
47
49
 
48
50
  ## Development Status
49
51
 
50
- !!! warning
51
- Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
52
- We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
52
+ Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
53
+ We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
53
54
 
54
55
  ### Available Features
55
56
 
56
57
  - ✅ OME-Zarr metadata handling and validation
57
58
  - ✅ Image and label access across pyramid levels
58
59
  - ✅ ROI and table support
60
+ - ✅ Image processing iterators
59
61
  - ✅ Streaming from remote sources
60
62
  - ✅ Documentation and examples
61
63
 
62
64
  ### Upcoming Features
63
65
 
64
- - Advanced image processing iterators
65
- - Parallel processing capabilities
66
- - Support for OME-Zarr v0.5 and Zarr v3
66
+ - Support for OME-Zarr v0.5 and Zarr v3 (via `zarr-python` v3)
67
+ - Enhanced performance optimizations (parallel iterators, optimized io strategies)
67
68
 
68
69
  ## Contributors
69
70
 
@@ -8,15 +8,16 @@ Ngio's mission is to streamline working with OME-Zarr files by providing a simpl
8
8
 
9
9
  ## Key Features
10
10
 
11
- ### 📊 Simple Object-Based API
11
+ ### 🔍 Simple Object-Based API
12
12
 
13
13
  - Easily open, explore, and manipulate OME-Zarr images and HCS plates
14
14
  - Create and derive new images and labels with minimal boilerplate code
15
15
 
16
- ### 🔍 Rich Tables and Regions of Interest (ROI) Support
16
+ ### 📊 Rich Tables and Regions of Interest (ROI) Support
17
17
 
18
+ - Tight integration with [tabular data](https://biovisioncenter.github.io/ngio/stable/table_specs/overview/)
18
19
  - Extract and analyze specific regions of interest
19
- - Tight integration with [Fractal's table framework](https://BioVisionCenter.github.io/fractal-tasks-core/tables/)
20
+ - Store measurements and other metadata in the OME-Zarr container
20
21
  - Extensible & modular allowing users to define custom table schemas and on disk serialization
21
22
 
22
23
  ### 🔄 Scalable Data Processing
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "aiohttp",
44
44
  "dask[array]",
45
45
  "dask[distributed]",
46
- "xarray",
46
+ # "xarray", still not used
47
47
  "ome-zarr-models",
48
48
  "pooch",
49
49
  "polars",
@@ -60,7 +60,12 @@ class BaseZoomTransform:
60
60
  target_shape = []
61
61
  for shape, ax_name in zip(array_shape, axes_ops.output_axes, strict=True):
62
62
  ax_type = self._input_dimensions.axes_handler.get_axis(ax_name)
63
- if ax_type is not None and ax_type.axis_type == "channel":
63
+ if ax_type is None:
64
+ # Unknown axis can only be a virtual axis
65
+ # So we set it to 1
66
+ target_shape.append(1)
67
+ continue
68
+ elif ax_type.axis_type == "channel":
64
69
  # Do not scale channel axis
65
70
  target_shape.append(shape)
66
71
  continue
@@ -187,3 +187,36 @@ def test_image_require_can_be_rescaled2(
187
187
  # Roi data should match exactly
188
188
  assert img1_data.shape == img2_roi_data.shape
189
189
  img2.set_roi(roi=roi, patch=img2_roi_data, transforms=[zoom])
190
+
191
+
192
+ def test_zoom_virtual_axes(
193
+ tmp_path: Path,
194
+ ):
195
+ path1 = tmp_path / "image1.zarr"
196
+ path2 = tmp_path / "image2.zarr"
197
+ create_empty_ome_zarr(
198
+ store=path1, shape=(3, 16, 16, 16), axes_names="czyx", xy_pixelsize=1.0
199
+ )
200
+ create_empty_ome_zarr(
201
+ store=path2, shape=(16, 32, 32), axes_names="zyx", xy_pixelsize=0.5
202
+ )
203
+ img1 = open_image(path1)
204
+ img2 = open_image(path2)
205
+
206
+ # Also test with transforms
207
+ zoom = ZoomTransform(
208
+ input_image=img2,
209
+ target_image=img1,
210
+ order="nearest",
211
+ )
212
+
213
+ img1_data = img1.get_as_numpy()
214
+ img2_data = img2.get_as_numpy(transforms=[zoom], axes_order="czyx")
215
+ img2.set_array(patch=img2_data, transforms=[zoom], axes_order="czyx")
216
+ assert img2_data.shape[0] == 1 # Virtual channel axis
217
+
218
+ roi = img1.build_image_roi_table().rois()[0]
219
+ img2_roi_data = img2.get_roi_as_numpy(roi, transforms=[zoom], axes_order="czyx")
220
+ # Roi data should match exactly except for virtual axis
221
+ assert img1_data.shape[1:] == img2_roi_data.shape[1:]
222
+ img2.set_roi(roi=roi, patch=img2_roi_data, transforms=[zoom], axes_order="czyx")
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
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