Source code for yodapy.datasources.ooi.CAVA

import logging
import os
import threading

import pandas as pd

from yodapy.datasources.datasource import DataSource


logging.basicConfig(
    level=logging.INFO, format="(%(threadName)-10s) %(message)s"
)

logger = logging.getLogger(__name__)

META_PATH = os.path.join(os.path.dirname(__file__), "infrastructure")


[docs]class CAVA(DataSource): def __init__(self): super().__init__() self._cava_arrays = None self._cava_sites = None self._cava_infrastructures = None self._cava_instruments = None self._cava_parameters = None self._source_name = "Cabled Array Value Add Metadata" self._cava_setup() @property def cava_arrays(self): """ Cabled array team Arrays vocab table. """ return self._cava_arrays @property def cava_sites(self): """ Cabled array team Sites vocab table. """ return self._cava_sites @property def cava_infrastructures(self): """ Cabled array team Infrastructures vocab table. """ return self._cava_infrastructures @property def cava_instruments(self): """ Cabled array team Instruments vocab table. """ return self._cava_instruments @property def cava_parameters(self): """ Cabled array team Parameters vocab table. """ return self._cava_parameters def _retrieve_meta(self): self._cava_arrays = self._get_df_from_metacsv( META_PATH, "cava_arrays.csv" ) self._cava_sites = self._get_df_from_metacsv( META_PATH, "cava_sites.csv" ) self._cava_infrastructures = self._get_df_from_metacsv( META_PATH, "cava_infrastructures.csv" ) self._cava_instruments = self._get_df_from_metacsv( META_PATH, "cava_instruments.csv" ) self._cava_parameters = self._get_df_from_metacsv( META_PATH, "cava_parameters.csv" ) def _cava_setup(self): gthread = threading.Thread( name="retrieve-gsheet", target=self._retrieve_meta ) gthread.setDaemon(True) gthread.start() def _get_df_from_metacsv(self, path, csv): return pd.read_csv(os.path.join(path, csv))