Source code for ecpi.scripts.ecpi_run

#! /usr/bin/env python3
"""
ecpi script : run ecpi pipeline
"""
import logging
import argparse
import sys
import ecpi.logger_ecpi as log_ecpi
from ecpi.pipeline.io.params import SpreadSheetToEcpiUserParams
from ecpi.pipeline.lib.ecpi_pipeline import EclairsPipelineLocal


[docs]def main(): # argument definition parser = argparse.ArgumentParser( description='ecpi script: run ecpi pipeline') parser.add_argument('pars_file', help='path and name of parameters file', type=argparse.FileType('r')) # retrieve argument args = parser.parse_args() # ============== read file parameters if ".xlsx" in args.pars_file.name: xlsx_pars = SpreadSheetToEcpiUserParams(args.pars_file.name) info_pars = xlsx_pars.get_params_str() level_log = "info" if "general" in info_pars: if "logger_level" in info_pars["general"]: level_log = info_pars["general"]["logger_level"] level_log = level_log.replace(' ', '') else: # file with format ini ? info_pars = args.pars_file.name level_log = log_ecpi.return_level(info_pars) # define logger log = log_ecpi.ECPILogger(level_log) log_ecpi.ECPILogger(level_log, root='ecpi_garage') log_ecpi.ECPILogger(level_log, root='fits_product_builder') crt_path = log_ecpi.get_logger_path(__file__) s_logger = logging.getLogger(crt_path) # ============== begin log.message_start() # ============== run ecpi ecpi = EclairsPipelineLocal(info_pars) ecpi.run() # ============== end log.message_end() s_logger.info(f'Status: {ecpi.status}') s_logger.info(f'Message status: {ecpi.status_msg}') sys.exit(ecpi.status)
if __name__ == '__main__': main()