import fire import json import os from readers.topreader import TopReader from plotters.histoplotter import HistoPlotter from entrypoints.fixed_order_1d import plot_fo_1d from entrypoints.fixed_order_2d import plot_fo_2d from entrypoints.nlops_1_fiducial import plot_nlops_1_fiducial_1d from entrypoints.nlops_2_fiducial import plot_nlops_2_fiducial_1d class CLI: """ Command-line interface for the script. """ def __init__(self): # Allow for additional arguments in the future self.default_config = "mapping.json" def plot_fixed_order_1d(self, key_to_plot, mapping_path, x_min, x_max, data_abs_path, save_path, setup="STXS", reference_list_path=None, label_mapping_path=None, color_mapping_path=None, settings_path=None, denormalise_flag=None, separated_subplots_flag=None): reference_list = None label_mapping = None color_mapping = None settings = None denormalise = None separated_subplots = None with open(mapping_path, "r") as f: provbf_mapping = json.load(f) if reference_list_path: with open(reference_list_path, "r") as f: reference_list = json.load(f) if label_mapping_path: with open(label_mapping_path, "r") as f: label_mapping = json.load(f) if color_mapping_path: with open(color_mapping_path, "r") as f: color_mapping = json.load(f) if settings_path: with open(settings_path, "r") as f: settings = json.load(f) if str(denormalise_flag): denormalise = denormalise_flag if str(separated_subplots_flag): separated_subplots = separated_subplots_flag plot_fo_1d( key_to_plot=key_to_plot, setup=setup, x_min=x_min, x_max=x_max, provbf_mapping=provbf_mapping, data_abs_path=data_abs_path, save_path=save_path, **({"reference_list": reference_list} if reference_list is not None else {}), **({"label_mapping": label_mapping} if label_mapping is not None else {}), **({"color_mapping": color_mapping} if color_mapping is not None else {}), **({"settings": settings} if settings is not None else {}), **({"denormalise_flag": denormalise} if denormalise is not None else {}), **({"separated_subplots_flag": separated_subplots} if separated_subplots is not None else {}), ) def plot_fixed_order_2d(self, mapping_path, data_abs_path, save_path, reference_list_path=None, label_mapping_path=None, color_mapping_path=None, settings_path=None, denormalise_flag=None, separated_subplots_flag=None): # Fixed order 2d entrypoint is still under construction reference_list = None label_mapping = None color_mapping = None settings = None denormalise = None separated_subplots = None with open(mapping_path, "r") as f: provbf_mapping = json.load(f) if reference_list_path: with open(reference_list_path, "r") as f: reference_list = json.load(f) if label_mapping_path: with open(label_mapping_path, "r") as f: label_mapping = json.load(f) if color_mapping_path: with open(color_mapping_path, "r") as f: color_mapping = json.load(f) if settings_path: with open(settings_path, "r") as f: settings = json.load(f) if str(denormalise_flag): denormalise = denormalise_flag if str(separated_subplots_flag): separated_subplots = separated_subplots_flag plot_fo_2d( provbf_mapping=provbf_mapping, data_abs_path=data_abs_path, save_path=save_path, **({"reference_list": reference_list} if reference_list is not None else {}), **({"label_mapping": label_mapping} if label_mapping is not None else {}), **({"color_mapping": color_mapping} if color_mapping is not None else {}), **({"settings": settings} if settings is not None else {}), **({"denormalise_flag": denormalise} if denormalise is not None else {}), **({"separated_subplots_flag": separated_subplots} if separated_subplots is not None else {}), ) def plot_nlops_1_fiducial(self, yoda_mapping_path, top_mapping_path, save_directory, reference_list_path=None, label_mapping_path=None, color_mapping_path=None, settings_path=None, separated_subplots_flag=None): reference_list = None label_mapping = None color_mapping = None settings = None separated_subplots = None with open(top_mapping_path, "r") as f: provbf_mapping = json.load(f) with open(yoda_mapping_path, "r") as f: yoda_mapping = json.load(f) if reference_list_path: with open(reference_list_path, "r") as f: reference_list = json.load(f) if label_mapping_path: with open(label_mapping_path, "r") as f: label_mapping = json.load(f) if color_mapping_path: with open(color_mapping_path, "r") as f: color_mapping = json.load(f) if settings_path: with open(settings_path, "r") as f: settings = json.load(f) if str(separated_subplots_flag): separated_subplots = separated_subplots_flag if not os.path.exists(save_directory): os.makedirs(save_directory) if save_directory[-1] != '/': save_directory += '/' plot_nlops_1_fiducial_1d( yoda_mapping=yoda_mapping, provbf_mapping=provbf_mapping, save_path=save_directory, **({"reference_list": reference_list} if reference_list is not None else {}), **({"label_mapping": label_mapping} if label_mapping is not None else {}), **({"color_mapping": color_mapping} if color_mapping is not None else {}), **({"settings": settings} if settings is not None else {}), **({"separated_subplots_flag": separated_subplots} if separated_subplots is not None else {}), ) def plot_nlops_2_fiducial(self, yoda_mapping_path, yoda_mapping_full_path, top_mapping_path, save_directory, reference_list_path=None, label_mapping_path=None, color_mapping_path=None, settings_path=None, separated_subplots_flag=None): reference_list = None label_mapping = None color_mapping = None settings = None separated_subplots = None with open(top_mapping_path, "r") as f: provbf_mapping = json.load(f) with open(yoda_mapping_path, "r") as f: yoda_mapping = json.load(f) with open(yoda_mapping_full_path, "r") as f: yoda_mapping_full = json.load(f) if reference_list_path: with open(reference_list_path, "r") as f: reference_list = json.load(f) if label_mapping_path: with open(label_mapping_path, "r") as f: label_mapping = json.load(f) if color_mapping_path: with open(color_mapping_path, "r") as f: color_mapping = json.load(f) if settings_path: with open(settings_path, "r") as f: settings = json.load(f) if str(separated_subplots_flag): separated_subplots = separated_subplots_flag if not os.path.exists(save_directory): os.makedirs(save_directory) if save_directory[-1] != '/': save_directory += '/' plot_nlops_2_fiducial_1d( yoda_mapping=yoda_mapping, provbf_mapping=provbf_mapping, yoda_mapping_full=yoda_mapping_full, save_path=save_directory, **({"reference_list": reference_list} if reference_list is not None else {}), **({"label_mapping": label_mapping} if label_mapping is not None else {}), **({"color_mapping": color_mapping} if color_mapping is not None else {}), **({"settings": settings} if settings is not None else {}), **({"separated_subplots_flag": separated_subplots} if separated_subplots is not None else {}), ) if __name__ == "__main__": fire.Fire(CLI)