2121from anndata import AnnData
2222from anndata ._io .h5ad import _read_raw
2323from anndata ._io .h5ad import read_dataframe as read_h5ad_dataframe
24- from anndata ._io .zarr import _read_legacy_raw
2524from anndata ._io .zarr import read_dataframe as read_zarr_dataframe
26- from anndata ._io .zarr import write_zarr as anndata_write_zarr
2725from anndata .compat import _read_attr
2826from anndata .io import read_elem , write_elem
27+ from anndata .io import read_zarr as anndata_read_zarr
28+ from anndata .io import write_zarr as anndata_write_zarr
2929from scipy import sparse
3030
3131from .config import OPTIONS
@@ -197,7 +197,7 @@ def write_zarr(
197197 if adata .raw is not None :
198198 adata .strings_to_categoricals (adata .raw .var )
199199
200- if write_data or not adata . isbacked :
200+ if write_data :
201201 if chunks is not None and not isinstance (adata .X , sparse .spmatrix ):
202202 write_elem (group , "X" , adata .X , dataset_kwargs = dict (chunks = chunks , ** kwargs ))
203203 else :
@@ -479,23 +479,19 @@ def read_zarr(store: str | PathLike | MutableMapping | zarr.Group | zarr.abc.sto
479479 """
480480 import zarr
481481
482- if isinstance (store , Path ):
483- store = str (store )
484-
485482 f = zarr .open (store , mode = "r" )
486483 d = {}
487484 if "mod" not in f .keys ():
488485 return ad .read_zarr (store )
489486
490- manager = MuDataFileManager ()
491487 for k in f .keys ():
492488 if k in {"obs" , "var" }:
493489 d [k ] = read_zarr_dataframe (f [k ])
494490 if k == "mod" :
495491 mods = {}
496492 gmods = f [k ]
497493 for m in gmods .keys ():
498- mods [m ] = _read_zarr_mod (gmods [m ], manager )
494+ mods [m ] = anndata_read_zarr (gmods [m ])
499495
500496 mod_order = None
501497 if "mod-order" in gmods .attrs :
@@ -508,35 +504,11 @@ def read_zarr(store: str | PathLike | MutableMapping | zarr.Group | zarr.abc.sto
508504 d [k ] = read_elem (f [k ])
509505
510506 mu = MuData ._init_from_dict_ (** d )
511- mu .file = manager
507+ mu .file = MuDataFileManager ()
512508
513509 return mu
514510
515511
516- def _read_zarr_mod (g : zarr .Group , manager : MuDataFileManager = None , backed : bool = False ) -> dict :
517- d = {}
518-
519- for k in g .keys ():
520- if k in ("obs" , "var" ):
521- d [k ] = read_zarr_dataframe (g [k ])
522- elif k == "X" :
523- X = g ["X" ]
524- if not backed :
525- d ["X" ] = read_elem (X )
526- elif k != "raw" :
527- d [k ] = read_elem (g [k ])
528- ad = AnnData (** d )
529- if manager is not None :
530- ad .file = AnnDataFileManager (ad , Path (g .name ).name , manager )
531-
532- raw = _read_legacy_raw (
533- g , d .get ("raw" ), read_zarr_dataframe , read_elem , attrs = ("var" , "varm" ) if backed else ("var" , "varm" , "X" )
534- )
535- if raw :
536- ad ._raw = ad .Raw (ad , ** raw )
537- return ad
538-
539-
540512def _read_h5mu_mod (g : h5py .Group , manager : MuDataFileManager = None , backed : bool = False ) -> dict :
541513 d = {}
542514
0 commit comments