hyrax.datasets.nested_pandas_dataset
====================================

.. py:module:: hyrax.datasets.nested_pandas_dataset


Classes
-------

.. autoapisummary::

   hyrax.datasets.nested_pandas_dataset.NestedPandasDataset


Module Contents
---------------

.. py:class:: NestedPandasDataset(config: dict, data_location: pathlib.Path | str | None = None)

   Bases: :py:obj:`hyrax.datasets.dataset_registry.HyraxDataset`


   A minimal Hyrax wrapper around ``nested_pandas.read_parquet``.

   .. py:method:: __init__

   Overall initialization for all Datasets which saves the config

   Subclasses of HyraxDataset ought call this at the end of their __init__ like:

   .. code-block:: python

       from hyrax.datasets import HyraxDataset

       class MyDataset(HyraxDataset):
           def __init__(config):
               <your code>
               super().__init__(config)

   If per tensor metadata is available, it is recommended that dataset authors create an
   astropy Table of that data, in the same order as their data and pass that `metadata_table`
   as shown below:

   .. code-block:: python

       from hyrax.datasets import HyraxDataset
       from astropy.table import Table

       class MyDataset(HyraxDataset):
           def __init__(config):
               <your code>
               metadata_table = Table(<Your catalog data goes here>)
               super().__init__(config, metadata_table)

   :param config: The runtime configuration for hyrax
   :type config: dict, Optional
   :param metadata_table: An Astropy Table with
                          1. the metadata columns desired for visualization AND
                          2. in the order your data will be enumerated.
   :type metadata_table: Optional[Table], optional
   :param object_id_column_name: The name of the column containing object IDs. If None, uses the default
                                 from config or creates one from the ids() method.
   :type object_id_column_name: Optional[str], optional


   .. py:attribute:: data_location
      :value: ''



   .. py:attribute:: read_kwargs


   .. py:attribute:: nested_frame


   .. py:method:: _load_nested_frame(read_kwargs: dict)


   .. py:method:: _all_available_fields() -> list[str]


   .. py:method:: _register_getters() -> None


   .. py:method:: __len__() -> int


