MCPcopy Index your code
hub / github.com/pydata/xarray / AccessibleAsDuckArrayDataStore

Class AccessibleAsDuckArrayDataStore

xarray/tests/test_dataset.py:254–277  ·  view source on GitHub ↗

Store that returns a duck array, not convertible to numpy array, on read. Modeled after nVIDIA's kvikio.

Source from the content-addressed store, hash-verified

252
253
254class AccessibleAsDuckArrayDataStore(backends.InMemoryDataStore):
255 """
256 Store that returns a duck array, not convertible to numpy array,
257 on read. Modeled after nVIDIA's kvikio.
258 """
259
260 def __init__(self):
261 super().__init__()
262 self._indexvars = set()
263
264 def store(self, variables, *args, **kwargs) -> None:
265 super().store(variables, *args, **kwargs)
266 for k, v in variables.items():
267 if isinstance(v, IndexVariable):
268 self._indexvars.add(k)
269
270 def get_variables(self) -> dict[Any, xr.Variable]:
271 def lazy_accessible(k, v) -> xr.Variable:
272 if k in self._indexvars:
273 return v
274 data = indexing.LazilyIndexedArray(DuckBackendArrayWrapper(v.values))
275 return Variable(v.dims, data, v.attrs)
276
277 return {k: lazy_accessible(k, v) for k, v in self._variables.items()}
278
279
280class TestDataset:

Callers 1

Calls

no outgoing calls

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…