-
-
Notifications
You must be signed in to change notification settings - Fork 379
Open
Description
I am trying to open a local .icechunk via:
import xarray as xr
import logging
from pathlib import Path
logger = logging.getLogger(__name__)
import icechunk
import zarr
def open_icechunk_dataset(file_path: Path, **kwargs) -> xr.Dataset:
"""
Load an Icechunk dataset using the Icechunk Python API,
which returns a Zarr v3-compatible store for xarray.
Args:
file_path: Path to .icechunk directory
**kwargs: Additional kwargs for xr.open_zarr (e.g. consolidated=False)
Returns:
xarray.Dataset
"""
storage = icechunk.local_filesystem_storage(str(file_path))
# Icechunk API (as per https://icechunk.io/en/latest/overview/#icechunk-overview)
repo = icechunk.Repository.open(storage)
print("repo:", dir(repo))
session = repo.readonly_session("main")
print("session: ", dir(session))
ds = xr.open_zarr(
session.store,
zarr_format=3,
consolidated=False,
**kwargs,
)
print(f"DS: {ds}")
return ds
Within a flask context I get the following:
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/pygeoapi/icechunk/icechunk_engine.py", line 33, in open_icechunk_dataset
ds = xr.open_zarr(
^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/xarray/backends/zarr.py", line 1436, in open_zarr
ds = open_dataset(
^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/xarray/backends/api.py", line 670, in open_dataset
backend_ds = backend.open_dataset(
^^^^^^^^^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/xarray/backends/zarr.py", line 1508, in open_dataset
store = ZarrStore.open_group(
^^^^^^^^^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/xarray/backends/zarr.py", line 693, in open_group
) = _get_open_params(
^^^^^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/xarray/backends/zarr.py", line 1735, in _get_open_params
zarr_group = zarr.open_group(store, **open_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/zarr/api/synchronous.py", line 531, in open_group
sync(
File "/apps/msc-ip-api-nightly/venv/lib/python3.11/site-packages/zarr/core/sync.py", line 150, in sync
raise SyncError("Calling sync() from within a running loop")
zarr.core.sync.SyncError: Calling sync() from within a running loop
I can confirm that the code being called (open_icechunk_dataset) works as expected in an isolated environment, not sure what is going on in this case?
Using the following: "zarr!=3.0.3,>=3"
Metadata
Metadata
Assignees
Labels
No labels