Source code for petab.v2.conditions

"""Functions operating on the PEtab condition table"""

from __future__ import annotations

from pathlib import Path

import pandas as pd

from ..v1.lint import assert_no_leading_trailing_whitespace

__all__ = [
    "get_condition_df",
    "write_condition_df",
]


[docs] def get_condition_df( condition_file: str | pd.DataFrame | Path | None, ) -> pd.DataFrame | None: """Read the provided condition file into a ``pandas.Dataframe``. Arguments: condition_file: File name of PEtab condition file or pandas.Dataframe """ if condition_file is None: return condition_file if isinstance(condition_file, str | Path): condition_file = pd.read_csv( condition_file, sep="\t", float_precision="round_trip" ) assert_no_leading_trailing_whitespace( condition_file.columns.values, "condition" ) return condition_file
[docs] def write_condition_df(df: pd.DataFrame, filename: str | Path) -> None: """Write PEtab condition table Arguments: df: PEtab condition table filename: Destination file name """ df = get_condition_df(df) df.to_csv(filename, sep="\t", index=False)