Source code for fv3config.config._serialization

from copy import deepcopy
import yaml
from typing import TextIO

from .types import Config
from .diag_table import DiagTable


[docs]def load(f: TextIO) -> Config: """Load a configuration from a file-like object f""" config = yaml.safe_load(f) if isinstance(config["diag_table"], dict): config["diag_table"] = DiagTable.from_dict(config["diag_table"]) return config
[docs]def dump(config: Config, f: TextIO): """Serialize config to a file-like object using yaml encoding Args: config: an fv3config object f: the file like object to write to """ config_copy = deepcopy(config) if isinstance(config["diag_table"], DiagTable): config_copy["diag_table"] = config["diag_table"].asdict() yaml.safe_dump(config_copy, f)