Source code for tables_io.table_dict

"""Functions to store analysis results as astropy data tables  """

from collections import OrderedDict
from deprecated.sphinx import deprecated

from .io_utils import write, read
from .conv.conv_tabledict import convert
from .types import table_type


@deprecated(
    reason="This class is deprecated as it is not currently being used by tables_io.",
    version="1.0.0",
)
[docs] class TableDict(OrderedDict): """Warning: This class is being deprecated as of version 1.0.0. Object to collect various types of table-like objects This class is a dictionary mapping name to table-like and a few helper functions, e.g., to add new tables to the dictionary and to read and write files, either as FITS or HDF5 files. """
[docs] def __setitem__(self, key, value): try: _ = table_type(value) except TypeError as msg: raise TypeError(f"item {value} was not recognized as a table.") from msg return OrderedDict.__setitem__(self, key, value)
[docs] def write(self, basepath, fmt=None): """Write tables to the corresponding file type Parameters ---------- basepath : `str` base path for output files. Suffix will be added based on type fmt : `str` or `None` The output file format, If `None` this will use `write_native` """ return write.write(self, basepath, fmt)
[docs] def convert(self, tType): """Build a new TableDict by converting all the table in the object to a different type Parameters ---------- tType : `int` The type to convert to Returns ------- td : `TableDict` The new TableDict """ return TableDict(convert(self, tType))
@classmethod
[docs] def read(cls, filepath, tType=None, fmt=None, keys=None): """Read a file to the corresponding table type Parameters ---------- filepath : `str` File to load tType : `int` or `None` Table type, if `None` this will use `readNative` fmt : `str` or `None` File format, if `None` it will be taken from the file extension keys : `list` or `None` Keys to read for parquet files Returns ------- tableDict : `TableDict` The data """ return cls(read.read(filepath, tType, fmt, keys))