Source code for autosweep.sweep.io

from autosweep.data_types import metadata as md
from autosweep.sweep import sweep_parser
from autosweep.utils import io, typing_ext


[docs]def read_json(path: typing_ext.PathLike): """ With raw data saved in JSON form, this function parses the data :param path: The path to the JSON file which contains the data :type path: str or pathlib.Path :return: Three items are returned. 1) A dictionary of the Sweep objects contained in the file. 2) A dictionary of the global metadata. 3) The DUTInfo instance contained in the the file """ data = io.read_json(path=path) dut = md.DUTInfo.from_dict(data=data["dut_info"]) sweeps = { n: sweep_parser.Sweep.from_dict(data=d) for n, d in data["sweeps"].items() } return sweeps, data["metadata"], dut
[docs]def to_json( sweeps: dict, path: typing_ext.PathLike, metadata: dict | None = None, dut_info: md.DUTInfo | None = None, ) -> None: """ Converts a set of raw data to JSON format. Useful for saving raw data to file used in scripting but also as part of the TestExec tests. :param sweeps: a collection of sweeps to write to a JSON file :type sweeps: dict[str, Sweep] :param path: The filename and path to write to :type path: str or pathlib.Path :param metadata: Any additional file-wide metadata you want to include :type metadata: dict, optional :param dut_info: The DUT info for this dataset :type dut_info: autosweep.data_types.metadata.DUTInfo, optional :return: None """ out = { "dut_info": dut_info if dut_info else {}, "metadata": metadata if metadata else {}, "sweeps": {name: sweep.to_dict() for name, sweep in sweeps.items()}, } io.write_json(data=out, path=path)