ngio 0.2.6__tar.gz → 0.2.8__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 (206) hide show
  1. {ngio-0.2.6 → ngio-0.2.8}/PKG-INFO +1 -1
  2. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/hcs/plate.py +9 -19
  3. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +28 -2
  4. {ngio-0.2.6 → ngio-0.2.8}/.copier-answers.yml +0 -0
  5. {ngio-0.2.6 → ngio-0.2.8}/.gitattributes +0 -0
  6. {ngio-0.2.6 → ngio-0.2.8}/.github/ISSUE_TEMPLATE.md +0 -0
  7. {ngio-0.2.6 → ngio-0.2.8}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  8. {ngio-0.2.6 → ngio-0.2.8}/.github/dependabot.yml +0 -0
  9. {ngio-0.2.6 → ngio-0.2.8}/.github/scripts/download_data.sh +0 -0
  10. {ngio-0.2.6 → ngio-0.2.8}/.github/workflows/build_docs.yml +0 -0
  11. {ngio-0.2.6 → ngio-0.2.8}/.github/workflows/ci.yml +0 -0
  12. {ngio-0.2.6 → ngio-0.2.8}/.gitignore +0 -0
  13. {ngio-0.2.6 → ngio-0.2.8}/.pre-commit-config.yaml +0 -0
  14. {ngio-0.2.6 → ngio-0.2.8}/LICENSE +0 -0
  15. {ngio-0.2.6 → ngio-0.2.8}/README.md +0 -0
  16. {ngio-0.2.6 → ngio-0.2.8}/_typos.toml +0 -0
  17. {ngio-0.2.6 → ngio-0.2.8}/docs/api/common.md +0 -0
  18. {ngio-0.2.6 → ngio-0.2.8}/docs/api/hcs.md +0 -0
  19. {ngio-0.2.6 → ngio-0.2.8}/docs/api/images.md +0 -0
  20. {ngio-0.2.6 → ngio-0.2.8}/docs/api/ngio.md +0 -0
  21. {ngio-0.2.6 → ngio-0.2.8}/docs/api/tables.md +0 -0
  22. {ngio-0.2.6 → ngio-0.2.8}/docs/api/utils.md +0 -0
  23. {ngio-0.2.6 → ngio-0.2.8}/docs/code_of_conduct.md +0 -0
  24. {ngio-0.2.6 → ngio-0.2.8}/docs/contributing.md +0 -0
  25. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/0_quickstart.md +0 -0
  26. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/1_ome_zarr_containers.md +0 -0
  27. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/2_images.md +0 -0
  28. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/3_tables.md +0 -0
  29. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/4_masked_images.md +0 -0
  30. {ngio-0.2.6 → ngio-0.2.8}/docs/getting_started/5_hcs.md +0 -0
  31. {ngio-0.2.6 → ngio-0.2.8}/docs/index.md +0 -0
  32. {ngio-0.2.6 → ngio-0.2.8}/docs/tutorials/feature_extraction.ipynb +0 -0
  33. {ngio-0.2.6 → ngio-0.2.8}/docs/tutorials/hcs_processing.ipynb +0 -0
  34. {ngio-0.2.6 → ngio-0.2.8}/docs/tutorials/image_processing.ipynb +0 -0
  35. {ngio-0.2.6 → ngio-0.2.8}/docs/tutorials/image_segmentation.ipynb +0 -0
  36. {ngio-0.2.6 → ngio-0.2.8}/mkdocs.yml +0 -0
  37. {ngio-0.2.6 → ngio-0.2.8}/pyproject.toml +0 -0
  38. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/__init__.py +0 -0
  39. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/__init__.py +0 -0
  40. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_array_pipe.py +0 -0
  41. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_axes_transforms.py +0 -0
  42. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_common_types.py +0 -0
  43. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_dimensions.py +0 -0
  44. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_masking_roi.py +0 -0
  45. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_pyramid.py +0 -0
  46. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_roi.py +0 -0
  47. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_slicer.py +0 -0
  48. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/common/_zoom.py +0 -0
  49. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/hcs/__init__.py +0 -0
  50. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/__init__.py +0 -0
  51. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/abstract_image.py +0 -0
  52. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/create.py +0 -0
  53. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/image.py +0 -0
  54. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/label.py +0 -0
  55. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/masked_image.py +0 -0
  56. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/images/ome_zarr_container.py +0 -0
  57. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/__init__.py +0 -0
  58. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/_meta_handlers.py +0 -0
  59. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +0 -0
  60. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +0 -0
  61. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
  62. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +0 -0
  63. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +0 -0
  64. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
  65. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
  66. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
  67. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/ome_zarr_meta/v04/_v04_spec_utils.py +0 -0
  68. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/__init__.py +0 -0
  69. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/_validators.py +0 -0
  70. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/__init__.py +0 -0
  71. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_abstract_backend.py +0 -0
  72. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_anndata_utils.py +0 -0
  73. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_anndata_v1.py +0 -0
  74. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_csv_v1.py +0 -0
  75. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_json_v1.py +0 -0
  76. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_table_backends.py +0 -0
  77. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/backends/_utils.py +0 -0
  78. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/tables_container.py +0 -0
  79. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/v1/__init__.py +0 -0
  80. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/v1/_feature_table.py +0 -0
  81. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/v1/_generic_table.py +0 -0
  82. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/tables/v1/_roi_table.py +0 -0
  83. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/__init__.py +0 -0
  84. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/_datasets.py +0 -0
  85. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/_errors.py +0 -0
  86. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
  87. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/_logger.py +0 -0
  88. {ngio-0.2.6 → ngio-0.2.8}/src/ngio/utils/_zarr_utils.py +0 -0
  89. {ngio-0.2.6 → ngio-0.2.8}/tests/conftest.py +0 -0
  90. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
  91. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
  92. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
  93. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
  94. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
  95. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
  96. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
  97. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
  98. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
  99. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
  100. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
  101. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
  102. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
  103. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
  104. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
  105. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
  106. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
  107. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
  108. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
  109. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
  110. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
  111. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
  112. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
  113. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
  114. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
  115. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
  116. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
  117. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
  118. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
  119. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
  120. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
  121. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
  122. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
  123. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
  124. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
  125. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
  126. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
  127. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
  128. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
  129. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
  130. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
  131. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
  132. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
  133. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
  134. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
  135. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
  136. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
  137. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
  138. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
  139. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
  140. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
  141. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
  142. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
  143. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
  144. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
  145. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
  146. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
  147. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
  148. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
  149. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
  150. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
  151. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
  152. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
  153. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
  154. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
  155. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
  156. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
  157. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
  158. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
  159. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
  160. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
  161. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
  162. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
  163. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
  164. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
  165. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
  166. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
  167. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
  168. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
  169. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
  170. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
  171. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
  172. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
  173. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
  174. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
  175. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
  176. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
  177. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
  178. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
  179. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
  180. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
  181. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
  182. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
  183. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
  184. {ngio-0.2.6 → ngio-0.2.8}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
  185. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/common/test_dimensions.py +0 -0
  186. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/common/test_pyramid.py +0 -0
  187. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/common/test_roi.py +0 -0
  188. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/hcs/test_plate.py +0 -0
  189. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/hcs/test_well.py +0 -0
  190. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/images/test_create.py +0 -0
  191. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/images/test_images.py +0 -0
  192. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/images/test_masked_images.py +0 -0
  193. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/images/test_omezarr_container.py +0 -0
  194. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
  195. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +0 -0
  196. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +0 -0
  197. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_backends.py +0 -0
  198. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_backends_utils.py +0 -0
  199. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_feature_table.py +0 -0
  200. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_generic_table.py +0 -0
  201. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
  202. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_roi_table_v1.py +0 -0
  203. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_table_group.py +0 -0
  204. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/tables/test_validators.py +0 -0
  205. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/utils/test_download_datasets.py +0 -0
  206. {ngio-0.2.6 → ngio-0.2.8}/tests/unit/utils/test_zarr_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngio
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: Next Generation file format IO
5
5
  Project-URL: homepage, https://github.com/lorenzocerrone/ngio
6
6
  Project-URL: repository, https://github.com/lorenzocerrone/ngio
@@ -399,7 +399,7 @@ class OmeZarrPlate:
399
399
  acquisition_id: int | None = None,
400
400
  acquisition_name: str | None = None,
401
401
  atomic: bool = False,
402
- ) -> StoreOrGroup | None:
402
+ ) -> str:
403
403
  """Add an image to an ome-zarr plate."""
404
404
  if image_path is not None:
405
405
  image_path = path_in_well_validation(path=image_path)
@@ -450,8 +450,8 @@ class OmeZarrPlate:
450
450
  meta_handler._group_handler.clean_cache()
451
451
 
452
452
  if image_path is not None:
453
- return group_handler.get_group(image_path, create_mode=True)
454
- return None
453
+ return f"{well_path}/{image_path}"
454
+ return well_path
455
455
 
456
456
  def atomic_add_image(
457
457
  self,
@@ -460,14 +460,14 @@ class OmeZarrPlate:
460
460
  image_path: str,
461
461
  acquisition_id: int | None = None,
462
462
  acquisition_name: str | None = None,
463
- ) -> StoreOrGroup:
463
+ ) -> str:
464
464
  """Parallel safe version of add_image."""
465
465
  if image_path is None:
466
466
  raise ValueError(
467
467
  "Image path cannot be None for atomic add_image. "
468
468
  "If your intent is to add a well, use add_well instead."
469
469
  )
470
- group = self._add_image(
470
+ path = self._add_image(
471
471
  row=row,
472
472
  column=column,
473
473
  image_path=image_path,
@@ -475,12 +475,7 @@ class OmeZarrPlate:
475
475
  acquisition_name=acquisition_name,
476
476
  atomic=True,
477
477
  )
478
- if group is None:
479
- raise ValueError(
480
- f"Some error occurred while adding image {image_path} "
481
- f"to well {row}{column}."
482
- )
483
- return group
478
+ return path
484
479
 
485
480
  def add_image(
486
481
  self,
@@ -489,14 +484,14 @@ class OmeZarrPlate:
489
484
  image_path: str,
490
485
  acquisition_id: int | None = None,
491
486
  acquisition_name: str | None = None,
492
- ) -> StoreOrGroup:
487
+ ) -> str:
493
488
  """Add an image to an ome-zarr plate."""
494
489
  if image_path is None:
495
490
  raise ValueError(
496
491
  "Image path cannot be None for atomic add_image. "
497
492
  "If your intent is to add a well, use add_well instead."
498
493
  )
499
- group = self._add_image(
494
+ path = self._add_image(
500
495
  row=row,
501
496
  column=column,
502
497
  image_path=image_path,
@@ -504,12 +499,7 @@ class OmeZarrPlate:
504
499
  acquisition_name=acquisition_name,
505
500
  atomic=False,
506
501
  )
507
- if group is None:
508
- raise ValueError(
509
- f"Some error occurred while adding image {image_path} "
510
- f"to well {row}{column}."
511
- )
512
- return group
502
+ return path
513
503
 
514
504
  def add_well(
515
505
  self,
@@ -9,7 +9,7 @@ from enum import Enum
9
9
  from typing import Any, TypeVar
10
10
 
11
11
  import numpy as np
12
- from pydantic import BaseModel, ConfigDict, Field, field_validator
12
+ from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
13
13
 
14
14
  from ngio.utils import NgioValidationError, NgioValueError
15
15
 
@@ -124,7 +124,6 @@ class ChannelVisualisation(BaseModel):
124
124
  model_config = ConfigDict(extra="allow", frozen=True)
125
125
 
126
126
  @field_validator("color", mode="after")
127
- @classmethod
128
127
  def validate_color(cls, value: str | NgioColors) -> str:
129
128
  """Color validator.
130
129
 
@@ -145,6 +144,33 @@ class ChannelVisualisation(BaseModel):
145
144
  else:
146
145
  raise NgioValueError(f"Invalid color {value}.")
147
146
 
147
+ @model_validator(mode="before")
148
+ def check_start_end(cls, data):
149
+ """Check that the start and end values are valid.
150
+
151
+ If the start and end values are equal, set the end value to start + 1
152
+ """
153
+ start = data.get("start", None)
154
+ end = data.get("end", None)
155
+ if start is None or end is None:
156
+ return data
157
+ if abs(end - start) < 1e-6:
158
+ data["end"] = start + 1
159
+ return data
160
+
161
+ @model_validator(mode="after")
162
+ def check_model(self) -> "ChannelVisualisation":
163
+ """Check that the start and end values are within the min and max values."""
164
+ if self.start < self.min or self.start > self.max:
165
+ raise NgioValidationError(
166
+ f"Start value {self.start} is out of range [{self.min}, {self.max}]"
167
+ )
168
+ if self.end < self.min or self.end > self.max:
169
+ raise NgioValidationError(
170
+ f"End value {self.end} is out of range [{self.min}, {self.max}]"
171
+ )
172
+ return self
173
+
148
174
  @classmethod
149
175
  def default_init(
150
176
  cls,
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
File without changes
File without changes
File without changes