#! /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()