Input/output (ome_zarr.io)

Reading logic for ome-zarr.

Primary entry point is the parse_url() method.

class ome_zarr.io.ZarrLocation(path: Path | str | FSStore, mode: str = 'r', fmt: Format = FormatV04)

IO primitive for reading and writing Zarr data. Uses FSStore for all data access.

No assumptions about the existence of the given path string are made. Attempts are made to load various metadata files and cache them internally.

basename() str

Return the last element of the underlying location.

>>> ZarrLocation("/tmp/foo").basename()
'foo'
>>> ZarrLocation("https://example.com/bar").basename()
'bar'
>>> ZarrLocation("https://example.com/baz/").basename()
'baz'
create(path: str) ZarrLocation

Create a new Zarr location for the given path.

exists() bool

Return true if either zgroup or zarray metadata exists.

get_json(subpath: str) Dict[str, Any]

Load and return a given subpath of store as JSON.

HTTP 403 and 404 responses are treated as if the file does not exist. Exceptions during the remote connection are logged at the WARN level. All other exceptions log at the ERROR level.

load(subpath: str = '') Array

Use dask.array.from_zarr to load the subpath.

property root_attrs: Dict[str, Any]

Return the contents of the zattrs file.

property store: FSStore

Return the initialized store for this location

ome_zarr.io.parse_url(path: Path | str, mode: str = 'r', fmt: Format = FormatV04) ZarrLocation | None

Convert a path string or URL to a ZarrLocation subclass.

>>> parse_url('does-not-exist')