Source code for ray.data.row

from collections.abc import Mapping
from typing import Any

from ray.util.annotations import PublicAPI


[docs]@PublicAPI class TableRow(Mapping): """ A dict-like row of a tabular ``Dataset``. This implements the dictionary mapping interface, but provides more efficient access with less data copying than converting Arrow Tables or Pandas DataFrames into per-row dicts. This class must be subclassed, with subclasses implementing ``__getitem__``, ``__iter__``, and ``__len__``. Concrete subclasses include ``ray.data._internal.arrow_block.ArrowRow`` and ``ray.data._internal.pandas_block.PandasRow``. """ def __init__(self, row: Any): """ Construct a ``TableRow`` (internal API). Args: row: The tabular row that backs this row mapping. """ self._row = row
[docs] def as_pydict(self) -> dict: """ Convert to a normal Python dict. This will create a new copy of the row.""" return dict(self.items())
def __str__(self): return str(self.as_pydict()) def __repr__(self): return str(self) def _repr_pretty_(self, p, cycle): from IPython.lib.pretty import _dict_pprinter_factory pprinter = _dict_pprinter_factory("{", "}") return pprinter(self, p, cycle)