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

Class MemoryCachedArray

xarray/core/indexing.py:963–1002  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

961
962
963class MemoryCachedArray(ExplicitlyIndexedNDArrayMixin):
964 __slots__ = ("array",)
965
966 def __init__(self, array):
967 self.array = _wrap_numpy_scalars(as_indexable(array))
968
969 def get_duck_array(self):
970 duck_array = self.array.get_duck_array()
971 # ensure the array object is cached in-memory
972 self.array = as_indexable(duck_array)
973 return duck_array
974
975 async def async_get_duck_array(self):
976 duck_array = await self.array.async_get_duck_array()
977 # ensure the array object is cached in-memory
978 self.array = as_indexable(duck_array)
979 return duck_array
980
981 def _oindex_get(self, indexer: OuterIndexer):
982 return type(self)(_wrap_numpy_scalars(self.array.oindex[indexer]))
983
984 def _vindex_get(self, indexer: VectorizedIndexer):
985 return type(self)(_wrap_numpy_scalars(self.array.vindex[indexer]))
986
987 def __getitem__(self, indexer: ExplicitIndexer):
988 self._check_and_raise_if_non_basic_indexer(indexer)
989 return type(self)(_wrap_numpy_scalars(self.array[indexer]))
990
991 def transpose(self, order):
992 return self.array.transpose(order)
993
994 def _vindex_set(self, indexer: VectorizedIndexer, value: Any) -> None:
995 self.array.vindex[indexer] = value
996
997 def _oindex_set(self, indexer: OuterIndexer, value: Any) -> None:
998 self.array.oindex[indexer] = value
999
1000 def __setitem__(self, indexer: ExplicitIndexer, value: Any) -> None:
1001 self._check_and_raise_if_non_basic_indexer(indexer)
1002 self.array[indexer] = value
1003
1004
1005def as_indexable(array):

Callers 1

Calls

no outgoing calls

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…