From cb0d78ff10831d4d1511eee2a5beb87338fc647e Mon Sep 17 00:00:00 2001 From: Martin Durant Date: Tue, 3 Nov 2020 12:19:06 -0500 Subject: [PATCH] Allow engine='zarr' and passing args for new xarray API --- intake_xarray/tests/conftest.py | 2 +- intake_xarray/tests/test_remote.py | 3 +++ intake_xarray/xzarr.py | 8 +++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/intake_xarray/tests/conftest.py b/intake_xarray/tests/conftest.py index 63b59b9..5dc8a84 100644 --- a/intake_xarray/tests/conftest.py +++ b/intake_xarray/tests/conftest.py @@ -33,7 +33,7 @@ def zarr_source(): tdir = tempfile.mkdtemp() data = xr.open_dataset(TEST_URLPATH) data.to_zarr(tdir) - yield ZarrSource(tdir) + yield ZarrSource(tdir, chunks={"level": 4}) finally: shutil.rmtree(tdir) diff --git a/intake_xarray/tests/test_remote.py b/intake_xarray/tests/test_remote.py index a337535..a6b2ced 100644 --- a/intake_xarray/tests/test_remote.py +++ b/intake_xarray/tests/test_remote.py @@ -6,11 +6,13 @@ import time import xarray as xr import fsspec +import pytest PORT = 8425 # for intake-server tests here = os.path.abspath(os.path.dirname(__file__)) cat_file = os.path.join(here, 'data', 'catalog.yaml') DIRECTORY = os.path.join(here, 'data') +pytest.importorskip("RangeHTTPServer") @pytest.fixture(scope='module') @@ -45,6 +47,7 @@ def test_list(data_server): def test_open_rasterio(data_server): + pytest.importorskip("resterio") url = f'{data_server}/RGB.byte.tif' source = intake.open_rasterio(url, chunks={}) da = source.to_dask() diff --git a/intake_xarray/xzarr.py b/intake_xarray/xzarr.py index 861d44b..1924dd7 100644 --- a/intake_xarray/xzarr.py +++ b/intake_xarray/xzarr.py @@ -25,12 +25,10 @@ def __init__(self, urlpath, storage_options=None, metadata=None, **kwargs): def _open_dataset(self): import xarray as xr - from fsspec import get_mapper - - self._mapper = get_mapper(self.urlpath, **self.storage_options) - self._ds = xr.open_zarr(self._mapper, **self.kwargs) + self._ds = xr.open_dataset(self.urlpath, engine='zarr', + backend_kwargs={"storage_options": self.storage_options}, + **self.kwargs) def close(self): super(ZarrSource, self).close() self._fs = None - self._mapper = None