Metadata-Version: 2.1
Name: shadows
Version: 0.1a0
Summary: Low-memory data interfaces for scverse
Author: Danila Bredikhin
Maintainer-email: Danila Bredikhin <danila.bredikhin@scverse.org>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pyarrow
Requires-Dist: scipy ; extra == "all"
Requires-Dist: anndata >= 0.8 ; extra == "all"
Requires-Dist: mudata >= 0.2 ; extra == "all"
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: myst-parser ; extra == "doc"
Requires-Dist: sphinx-book-theme ; extra == "doc"
Requires-Dist: readthedocs-sphinx-search ; extra == "doc"
Requires-Dist: nbsphinx ; extra == "doc"
Requires-Dist: sphinx-automodapi ; extra == "doc"
Requires-Dist: sphinxcontrib-bibtex ; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints ; extra == "doc"
Requires-Dist: scipy ; extra == "test"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Project-URL: Documentation, https://scverse.github.io/shadows
Project-URL: Home-page, https://github.com/scverse/shadows
Project-URL: Source, https://github.com/scverse/shadows
Provides-Extra: all
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test

<import img src="./docs/img/shadows_header.jpg" data-canonical-src="./docs/img/shadows_header.svg" width="700"/>

# Shadows

Shadows are on-disk interfaces for scverse data standards such as [AnnData](https://github.com/scverse/anndata) and [MuData](https://github.com/scverse/mudata).

It is an experimental project.

## Installation

```
pip install shadows
# or
pip install git+https://github.com/scverse/shadows
```

## Features

The shadows library aims to implement the following features:

- [x] **Shadow objects**: Read-only AnnDataShadow and MuDataShadow for HDF5 files.

- [x] AnnDataShadow and MuDataShadow for Zarr files.

- [ ] AnnDataShadow and MuDataShadow for Parquet-based serialization.

- [ ] Data shadows for Laminate files on S3 storage.


### Shadow objects

[Example notebook](/docs/examples/shadow-objects.ipynb) | [More features](/docs/examples/shadow-objects-features.ipynb)

Briefly, it simply works like this:

```py
from shadows import *
ash = AnnDataShadow("pbmc3k.h5ad")
msh = MuDataShadow("pbmc5k_citeseq.h5mu")
```


