ngio 0.4.2__tar.gz → 0.4.4__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.
- {ngio-0.4.2 → ngio-0.4.4}/CHANGELOG.md +15 -0
- {ngio-0.4.2 → ngio-0.4.4}/PKG-INFO +2 -1
- {ngio-0.4.2 → ngio-0.4.4}/pyproject.toml +2 -1
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_image.py +1 -1
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_label.py +1 -1
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +16 -18
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/images/test_images.py +21 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/images/test_omezarr_container.py +15 -0
- {ngio-0.4.2 → ngio-0.4.4}/.copier-answers.yml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.gitattributes +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/ISSUE_TEMPLATE.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/TEST_FAIL_TEMPLATE.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/dependabot.yml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/pull_request_template.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/workflows/build_docs.yml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.github/workflows/ci.yml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.gitignore +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/.pre-commit-config.yaml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/LICENSE +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/README.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/_typos.toml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/hcs.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/images.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/iterators.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/common.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/hcs.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/images.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/io_pipes.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/iterators.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/ngio.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/tables.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/transforms.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ngio/utils.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/ome_zarr_container.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/api/tables.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/changelog.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/code_of_conduct.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/contributing.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/0_quickstart.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/1_ome_zarr_containers.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/2_images.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/3_tables.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/4_masked_images.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/5_hcs.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/getting_started/6_iterators.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/index.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/backend.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/overview.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/condition_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/custom_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/feature_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/generic_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/masking_roi_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/table_specs/table_types/roi_table.md +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/tutorials/create_ome_zarr.ipynb +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/tutorials/feature_extraction.ipynb +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/tutorials/hcs_exploration.ipynb +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/tutorials/image_processing.ipynb +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/docs/tutorials/image_segmentation.ipynb +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/mkdocs.yml +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_dimensions.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_masking_roi.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_pyramid.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_roi.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_synt_images_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/common/_zoom.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_abstract_iterator.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_feature.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_image_processing.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_mappers.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_rois_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/experimental/iterators/_segmentation.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/hcs/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/hcs/_plate.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_abstract_image.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_create.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_create_synt_container.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_masked_image.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_ome_zarr_container.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/images/_table_ops.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_io_pipes.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_io_pipes_masked.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_io_pipes_roi.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_io_pipes_types.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_match_shape.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_ops_axes.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_ops_slices.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_ops_slices_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_ops_transforms.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/io_pipes/_zoom_transform.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/_meta_handlers.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/v04/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/v04/_custom_models.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/ome_zarr_meta/v04/_v04_spec_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/resources/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/resources/resource_model.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/_abstract_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/_tables_container.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_abstract_backend.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_anndata.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_anndata_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_csv.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_json.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_non_zarr_backends.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_parquet.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_table_backends.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/backends/_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/v1/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/v1/_condition_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/v1/_feature_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/v1/_generic_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/tables/v1/_roi_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/transforms/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/transforms/_zoom.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/__init__.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/_datasets.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/_errors.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/_fractal_fsspec_store.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/_logger.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/src/ngio/utils/_zarr_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/conftest.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/meta/base_ome_zarr_image_meta.json +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/meta/base_ome_zarr_label_meta.json +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/meta/base_ome_zarr_well_meta.json +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/common/test_dimensions.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/common/test_pyramid.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/common/test_roi.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/common/test_transforms.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/hcs/test_plate.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/hcs/test_well.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/images/test_create.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/images/test_masked_images.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/images/test_table_ops.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/io_pipes/test_axes_ops.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/io_pipes/test_slicing_ops.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/iterators/test_iterators.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/ome_zarr_meta/test_image_handler.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_backends.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_backends_utils.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_feature_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_generic_table.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_masking_roi_table_v1.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_roi_table_v1.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/tables/test_table_group.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/utils/test_download_datasets.py +0 -0
- {ngio-0.4.2 → ngio-0.4.4}/tests/unit/utils/test_zarr_utils.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v0.4.4]
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Fix bug in channel visualization when using hex colors with leading '#'.
|
|
8
|
+
- Remove strict range check in channel window.
|
|
9
|
+
|
|
10
|
+
## [v0.4.3]
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- Fix bug in deriving labels and image from OME-Zarr with non standard path names.
|
|
15
|
+
- Add missing pillow dependency.
|
|
16
|
+
- Update pixi workspace config.
|
|
17
|
+
|
|
3
18
|
## [v0.4.2]
|
|
4
19
|
|
|
5
20
|
### API Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ngio
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
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
|
|
@@ -23,6 +23,7 @@ Requires-Dist: filelock
|
|
|
23
23
|
Requires-Dist: numpy
|
|
24
24
|
Requires-Dist: ome-zarr-models
|
|
25
25
|
Requires-Dist: pandas>=1.2.0
|
|
26
|
+
Requires-Dist: pillow
|
|
26
27
|
Requires-Dist: polars
|
|
27
28
|
Requires-Dist: pooch
|
|
28
29
|
Requires-Dist: pyarrow
|
|
@@ -48,6 +48,7 @@ dependencies = [
|
|
|
48
48
|
"pooch",
|
|
49
49
|
"polars",
|
|
50
50
|
"pyarrow",
|
|
51
|
+
"pillow",
|
|
51
52
|
]
|
|
52
53
|
|
|
53
54
|
# https://peps.python.org/pep-0621/#dependencies-optional-dependencies
|
|
@@ -186,7 +187,7 @@ source = ["ngio"]
|
|
|
186
187
|
[tool.check-manifest]
|
|
187
188
|
ignore = [".pre-commit-config.yaml", ".ruff_cache/**/*", "tests/**/*"]
|
|
188
189
|
|
|
189
|
-
[tool.pixi.
|
|
190
|
+
[tool.pixi.workspace]
|
|
190
191
|
channels = ["conda-forge"]
|
|
191
192
|
platforms = ["osx-arm64", "linux-64", "win-64"]
|
|
192
193
|
|
|
@@ -801,7 +801,7 @@ def derive_image_container(
|
|
|
801
801
|
pixelsize=pixel_size.x,
|
|
802
802
|
z_spacing=pixel_size.z,
|
|
803
803
|
time_spacing=pixel_size.t,
|
|
804
|
-
levels=ref_meta.
|
|
804
|
+
levels=ref_meta.paths,
|
|
805
805
|
yx_scaling_factor=ref_meta.yx_scaling(),
|
|
806
806
|
z_scaling_factor=ref_meta.z_scaling(),
|
|
807
807
|
time_unit=pixel_size.time_unit,
|
|
@@ -318,7 +318,7 @@ def derive_label(
|
|
|
318
318
|
pixelsize=ref_image.pixel_size.x,
|
|
319
319
|
z_spacing=ref_image.pixel_size.z,
|
|
320
320
|
time_spacing=ref_image.pixel_size.t,
|
|
321
|
-
levels=ref_meta.
|
|
321
|
+
levels=ref_meta.paths,
|
|
322
322
|
yx_scaling_factor=ref_meta.yx_scaling(),
|
|
323
323
|
z_scaling_factor=ref_meta.z_scaling(),
|
|
324
324
|
time_unit=ref_image.pixel_size.time_unit,
|
|
@@ -102,6 +102,20 @@ def valid_hex_color(v: str) -> bool:
|
|
|
102
102
|
return True
|
|
103
103
|
|
|
104
104
|
|
|
105
|
+
def into_valid_hex_color(v: str) -> str:
|
|
106
|
+
"""Convert a string into a valid hexadecimal color.
|
|
107
|
+
|
|
108
|
+
If the string is already a valid hexadecimal color, return it.
|
|
109
|
+
Otherwise, return a hexadecimal color based on the hash of the string.
|
|
110
|
+
"""
|
|
111
|
+
# strip leading '#' if present
|
|
112
|
+
v = v.lstrip("#")
|
|
113
|
+
if valid_hex_color(v):
|
|
114
|
+
return v
|
|
115
|
+
|
|
116
|
+
return NgioColors.semi_random_pick(v.lower()).value
|
|
117
|
+
|
|
118
|
+
|
|
105
119
|
class ChannelVisualisation(BaseModel):
|
|
106
120
|
"""Channel visualisation model.
|
|
107
121
|
|
|
@@ -135,13 +149,10 @@ class ChannelVisualisation(BaseModel):
|
|
|
135
149
|
"""
|
|
136
150
|
if value is None:
|
|
137
151
|
return NgioColors.semi_random_pick().value
|
|
138
|
-
if isinstance(value, str)
|
|
139
|
-
return value
|
|
152
|
+
if isinstance(value, str):
|
|
153
|
+
return into_valid_hex_color(value)
|
|
140
154
|
elif isinstance(value, NgioColors):
|
|
141
155
|
return value.value
|
|
142
|
-
elif isinstance(value, str):
|
|
143
|
-
value_lower = value.lower()
|
|
144
|
-
return NgioColors.semi_random_pick(value_lower).value
|
|
145
156
|
else:
|
|
146
157
|
raise NgioValueError(f"Invalid color {value}.")
|
|
147
158
|
|
|
@@ -159,19 +170,6 @@ class ChannelVisualisation(BaseModel):
|
|
|
159
170
|
data["end"] = start + 1
|
|
160
171
|
return data
|
|
161
172
|
|
|
162
|
-
@model_validator(mode="after")
|
|
163
|
-
def check_model(self) -> "ChannelVisualisation":
|
|
164
|
-
"""Check that the start and end values are within the min and max values."""
|
|
165
|
-
if self.start < self.min or self.start > self.max:
|
|
166
|
-
raise NgioValidationError(
|
|
167
|
-
f"Start value {self.start} is out of range [{self.min}, {self.max}]"
|
|
168
|
-
)
|
|
169
|
-
if self.end < self.min or self.end > self.max:
|
|
170
|
-
raise NgioValidationError(
|
|
171
|
-
f"End value {self.end} is out of range [{self.min}, {self.max}]"
|
|
172
|
-
)
|
|
173
|
-
return self
|
|
174
|
-
|
|
175
173
|
@classmethod
|
|
176
174
|
def default_init(
|
|
177
175
|
cls,
|
|
@@ -220,3 +220,24 @@ def test_zoom_virtual_axes(
|
|
|
220
220
|
# Roi data should match exactly except for virtual axis
|
|
221
221
|
assert img1_data.shape[1:] == img2_roi_data.shape[1:]
|
|
222
222
|
img2.set_roi(roi=roi, patch=img2_roi_data, transforms=[zoom], axes_order="czyx")
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def test_derive_image_consistency(
|
|
226
|
+
tmp_path: Path,
|
|
227
|
+
):
|
|
228
|
+
path1 = tmp_path / "image1.zarr"
|
|
229
|
+
ome_zarr = create_empty_ome_zarr(
|
|
230
|
+
store=path1,
|
|
231
|
+
shape=(3, 16, 16, 16),
|
|
232
|
+
axes_names="czyx",
|
|
233
|
+
xy_pixelsize=1.0,
|
|
234
|
+
levels=["s0", "s1", "s2"],
|
|
235
|
+
)
|
|
236
|
+
ome_zarr_der = ome_zarr.derive_image(tmp_path / "derived_image.zarr")
|
|
237
|
+
assert ome_zarr.channel_labels == ome_zarr_der.channel_labels
|
|
238
|
+
assert ome_zarr.levels_paths == ome_zarr_der.levels_paths
|
|
239
|
+
assert ome_zarr.space_unit == ome_zarr_der.space_unit
|
|
240
|
+
assert ome_zarr.time_unit == ome_zarr_der.time_unit
|
|
241
|
+
|
|
242
|
+
label = ome_zarr.derive_label("derived_label")
|
|
243
|
+
assert label.path == "s0"
|
|
@@ -296,3 +296,18 @@ def test_get_and_squeeze(tmp_path: Path):
|
|
|
296
296
|
image.get_as_dask(
|
|
297
297
|
channel_selection=ChannelSelectionModel(identifier="0", mode="index")
|
|
298
298
|
)
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
def test_derive_image_and_labels(tmp_path: Path):
|
|
302
|
+
# Testing for #116
|
|
303
|
+
store = tmp_path / "ome_zarr.zarr"
|
|
304
|
+
ome_zarr = create_empty_ome_zarr(
|
|
305
|
+
store,
|
|
306
|
+
shape=(3, 20, 30),
|
|
307
|
+
xy_pixelsize=0.5,
|
|
308
|
+
levels=1,
|
|
309
|
+
axes_names=["c", "y", "x"],
|
|
310
|
+
dtype="uint8",
|
|
311
|
+
)
|
|
312
|
+
derived_ome_zarr = ome_zarr.derive_image(tmp_path / "derived.zarr")
|
|
313
|
+
_ = derived_ome_zarr.derive_label("derived_label")
|
|
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
|
|
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
|
|
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
|
|
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
|