saba9's picture
saba9 HF Staff
Upload folder using huggingface_hub
27d8dd9 verified
from typing import Any, Literal, Optional, Union
from pandas import DataFrame
class Table:
"""
Initializes a Table object.
Args:
columns (`list[str]`, *optional*, defaults to `None`):
Names of the columns in the table. Optional if `data` is provided. Not
expected if `dataframe` is provided. Currently ignored.
data (`list[list[Any]]`, *optional*, defaults to `None`):
2D row-oriented array of values.
dataframe (`pandas.`DataFrame``, *optional*, defaults to `None`):
DataFrame object used to create the table. When set, `data` and `columns`
arguments are ignored.
rows (`list[list[any]]`, *optional*, defaults to `None`):
Currently ignored.
optional (`bool` or `list[bool]`, *optional*, defaults to `True`):
Currently ignored.
allow_mixed_types (`bool`, *optional*, defaults to `False`):
Currently ignored.
log_mode: (`Literal["IMMUTABLE", "MUTABLE", "INCREMENTAL"]` or `None`, *optional*, defaults to `"IMMUTABLE"`):
Currently ignored.
"""
TYPE = "trackio.table"
def __init__(
self,
columns: Optional[list[str]] = None,
data: Optional[list[list[Any]]] = None,
dataframe: Optional[DataFrame] = None,
rows: Optional[list[list[Any]]] = None,
optional: Union[bool, list[bool]] = True,
allow_mixed_types: bool = False,
log_mode: Optional[
Literal["IMMUTABLE", "MUTABLE", "INCREMENTAL"]
] = "IMMUTABLE",
):
# TODO: implement support for columns, dtype, optional, allow_mixed_types, and log_mode.
# for now (like `rows`) they are included for API compat but don't do anything.
if dataframe is None:
self.data = data
else:
self.data = dataframe.to_dict(orient="records")
def _to_dict(self):
return {
"_type": self.TYPE,
"_value": self.data,
}