Source code for qibocal.cli.fit

import shutil
from pathlib import Path
from typing import Optional

from ..auto.mode import ExecutionMode
from ..auto.operation import RESULTSFILE
from ..auto.output import Output
from ..config import log, raise_error


[docs]def mkoutput(input: Path, output: Optional[Path], force: bool): if output is not None: if output.exists(): if not force: raise_error(RuntimeError, f"Directory {output} already exists.") # overwrite output_path log.warning(f"Deleting previous directory {output}.") shutil.rmtree(output) return shutil.copytree(input, output) if len(list(input.glob(f"**/{RESULTSFILE}.json"))) > 0: if force: log.warning(f"Overwriting fit in {input}.") else: raise_error(RuntimeError, f"Directory {input} contains fitting results.") return input
[docs]def fit(input_path: Path, update: bool, output_path: Optional[Path], force: bool): """Post-processing analysis. Arguments: - input_path: input folder. - update: perform platform update - output_path: new folder with data and fit """ path = mkoutput(input_path, output_path, force) if input_path.absolute() != path.absolute(): force = True output = Output.load(path) # run output.process(output=path, mode=ExecutionMode.FIT, update=update, force=force) # update time in meta output.dump(path)