File: C:/Users/fred/anaconda3/Lib/site-packages/astropy/table/mixins/dask.py
import dask.array as da
from astropy.utils.data_info import ParentDtypeInfo
__all__ = ["as_dask_column"]
class DaskInfo(ParentDtypeInfo):
@staticmethod
def default_format(val):
return f"{val.compute()}"
class DaskColumn(da.Array):
info = DaskInfo()
def copy(self):
# Array hard-codes the resulting copied array as Array, so need to
# overload this since Table tries to copy the array.
return as_dask_column(self, info=self.info)
def __getitem__(self, item):
result = super().__getitem__(item)
if isinstance(item, int):
return result
else:
return as_dask_column(result, info=self.info)
def insert(self, obj, values, axis=0):
return as_dask_column(da.insert(self, obj, values, axis=axis), info=self.info)
def as_dask_column(array, info=None):
result = DaskColumn(array.dask, array.name, array.chunks, meta=array)
if info is not None:
result.info = info
return result