Metadata-Version: 2.4
Name: ngio
Version: 0.2.10
Summary: Next Generation file format IO
Project-URL: homepage, https://github.com/lorenzocerrone/ngio
Project-URL: repository, https://github.com/lorenzocerrone/ngio
Author-email: Lorenzo Cerrone <lorenzo.cerrone@uzh.ch>
License: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.11
Requires-Dist: aiohttp
Requires-Dist: anndata>=0.8.0
Requires-Dist: dask[array]
Requires-Dist: dask[distributed]
Requires-Dist: filelock
Requires-Dist: numpy
Requires-Dist: ome-zarr-models
Requires-Dist: pandas>=1.2.0
Requires-Dist: polars
Requires-Dist: pooch
Requires-Dist: pyarrow
Requires-Dist: pydantic
Requires-Dist: requests
Requires-Dist: xarray
Requires-Dist: zarr<3
Provides-Extra: dev
Requires-Dist: devtools; extra == 'dev'
Requires-Dist: matplotlib; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: napari; extra == 'dev'
Requires-Dist: notebook; extra == 'dev'
Requires-Dist: pdbpp; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pyqt5; extra == 'dev'
Requires-Dist: rich; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: scikit-image; extra == 'dev'
Provides-Extra: docs
Requires-Dist: markdown-exec[ansi]; extra == 'docs'
Requires-Dist: matplotlib; extra == 'docs'
Requires-Dist: mike; extra == 'docs'
Requires-Dist: mkdocs; extra == 'docs'
Requires-Dist: mkdocs-autorefs; extra == 'docs'
Requires-Dist: mkdocs-git-committers-plugin-2; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == 'docs'
Requires-Dist: mkdocs-jupyter; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Requires-Dist: rich; extra == 'docs'
Requires-Dist: scikit-image; extra == 'docs'
Requires-Dist: tabulate; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: scikit-image; extra == 'test'
Description-Content-Type: text/markdown

# NGIO - Next Generation file format IO

[![License](https://img.shields.io/pypi/l/ngio.svg?color=green)](https://github.com/lorenzocerrone/ngio/raw/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/ngio.svg?color=green)](https://pypi.org/project/ngio)
[![Python Version](https://img.shields.io/pypi/pyversions/ngio.svg?color=green)](https://python.org)
[![CI](https://github.com/fractal-analytics-platform/ngio/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/ngio/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/fractal-analytics-platform/ngio/graph/badge.svg?token=FkmF26FZki)](https://codecov.io/gh/fractal-analytics-platform/ngio)

NGIO is a Python library to streamline OME-Zarr image analysis workflows.

**Main Goals:**

- Abstract object base API for handling OME-Zarr files
- Powerful iterators for processing data using common access patterns
- Tight integration with [Fractal's Table Fractal](https://fractal-analytics-platform.github.io/fractal-tasks-core/tables/)
- Validation of OME-Zarr files

To get started, check out the [Getting Started](https://fractal-analytics-platform.github.io/ngio/getting-started/) guide. Or checkout our [Documentation](https://fractal-analytics-platform.github.io/ngio/)

## 🚧 Ngio is Under active Development 🚧

### Roadmap

| Feature | Status | ETA | Description |
|---------|--------|-----|-------------|
| Metadata Handling | ✅ | | Read, Write, Validate OME-Zarr Metadata (0.4 supported, 0.5 ready) |
| OME-Zarr Validation | ✅ | | Validate OME-Zarr files for compliance with the OME-Zarr Specification + Compliance between Metadata and Data |
| Base Image Handling | ✅ | | Load data from OME-Zarr files, retrieve basic metadata, and write data |
| ROI Handling | ✅ | | Common ROI models |
| Label Handling | ✅ | Mid-September | Based on Image Handling |
| Table Validation | ✅ | Mid-September | Validate Table fractal V1 + Compliance between Metadata and Data |
| Table Handling | ✅ | Mid-September | Read, Write ROI, Features, and Masked Tables |
| Basic Iterators | Ongoing | End-September | Read and Write Iterators for common access patterns |
| Base Documentation | ✅ | End-September | API Documentation and Examples |
| Beta Ready Testing | ✅ | End-September | Beta Testing; Library is ready for testing, but the API is not stable |
| Streaming from Fractal | Ongoing | December | Ngio can stream OME-Zarr from fractal |
| Mask Iterators | Ongoing | Early 2025 | Iterators over Masked Tables |
| Advanced Iterators | Not started | mid-2025 | Iterators for advanced access patterns |
| Parallel Iterators | Not started | mid-2025 | Concurrent Iterators for parallel read and write |
| Full Documentation | Not started | 2025 | Complete Documentation |
| Release 1.0 (Commitment to API) | Not started | 2025 | API is stable; breaking changes will be avoided |
