Source code for cdm_reader_mapper.core.writer
"""Common Data Model (CDM) DataBundle class."""
from __future__ import annotations
from typing import Iterable, get_args
import pandas as pd
from cdm_reader_mapper.cdm_mapper.writer import write_tables
from cdm_reader_mapper.mdf_reader.writer import write_data
from ..properties import SupportedWriteModes
supported_write_modes = get_args(SupportedWriteModes)
WRITERS = {
"data": write_data,
"tables": write_tables,
}
[docs]
def write(
data: pd.DataFrame | Iterable[pd.DataFrame],
mode: SupportedWriteModes = "data",
**kwargs,
) -> None:
"""Write either MDF data or CDM tables on disk.
Parameters
----------
data: pandas.DataFrame or Iterable[pd.DataFrame]
Data to export.
mode: str, {data, tables}
Write data mode:
* "data" to write MDF data to disk
* "tables" to write CDM tables to disk. Map MDF data to CDM tables with :py:func:`DataBundle.map_model`.
Default: data
See Also
--------
write_data : Write MDF data and validation mask to disk.
write_tables: Write CDM tables to disk.
read: Read either original marine-meteorological data or MDF data or CDM tables from disk.
read_mdf : Read original marine-meteorological data from disk.
read_data : Read MDF data and validation mask from disk.
read_tables : Read CDM tables from disk.
Note
----
`kwargs` are the keyword arguments for the specific `mode` reader.
"""
if mode not in supported_write_modes:
raise ValueError(
f"No valid mode: {mode}. Choose one of {supported_write_modes}."
)
return WRITERS[mode](data, **kwargs)