def init(config): """ This function initializes global variables. It gets values from the configuration file, evaluates and processes the values. If mandatory file or directory is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids extensions : list a list containing extensions of files to be monitored read from the configuration file report_type : int report type; currently supporting 'none', 'error', and 'full' """ conf = utils.get_config(config) logger = utils.get_logger(__name__, conf) limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) report_file = utils.get_file(conf, 'report_file', logger) try: extensions = conf['extensions'] except KeyError: logger.warning('no file extension specified. Monitoring for all files.') extensions = [''] qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL return logger, limits, quality_checks, extensions, report_type
def init(config): """ This function initializes variables according to configuration. It gets values from the configuration file, evaluates and processes the values. If mandatory file or directory is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance data_tags : dict a dictionary od data_type/hdf tag limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids extensions : list a list containing extensions of files to be monitored read from the configuration file file_type : int data file type; currently supporting FILE_TYPE_HDF and FILE_TYPE_GE report_type : int report type; currently supporting 'none', 'error', and 'full' report_dir : str a directory where report files will be located consumers : dict a dictionary containing consumer processes to run, and their parameters """ conf = utils.get_config(config) if conf is None: print('configuration file is missing') exit(0) logger = utils.get_logger(__name__, conf) try: file_type = conf['file_type'] except KeyError: print('file type is not configured') exit(0) if file_type == const.FILE_TYPE_HDF: tagsfile = utils.get_file(conf, 'data_tags', logger) if tagsfile is None: sys.exit(0) with open(tagsfile) as tags_file: data_tags = json.loads(tags_file.read()) else: data_tags = None limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(0) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) try: extensions = conf['extensions'] except KeyError: logger.warning( 'no file extension specified. Monitoring for all files.') extensions = [''] qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(0) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL try: report_dir = conf['report_dir'] if not os.path.isdir(report_dir): report_dir = None except KeyError: report_dir = None try: feedback = conf['feedback_type'] except KeyError: feedback = [] return logger, data_tags, limits, quality_checks, extensions, file_type, report_type, report_dir, feedback
def init(config): """ This function initializes variables according to configuration. It gets values from the configuration file, evaluates and processes the values. If mandatory file or directory is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance data_tags : dict a dictionary od data_type/hdf tag limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids extensions : list a list containing extensions of files to be monitored read from the configuration file file_type : int data file type; currently supporting FILE_TYPE_HDF and FILE_TYPE_GE report_type : int report type; currently supporting 'none', 'error', and 'full' report_dir : str a directory where report files will be located consumers : dict a dictionary containing consumer processes to run, and their parameters """ conf = utils.get_config(config) if conf is None: print ('configuration file is missing') exit(-1) logger = utils.get_logger(__name__, conf) try: file_type = conf['file_type'] except KeyError: file_type = const.FILE_TYPE_HDF if file_type == const.FILE_TYPE_HDF: tagsfile = utils.get_file(conf, 'data_tags', logger) if tagsfile is None: sys.exit(-1) with open(tagsfile) as tags_file: data_tags = json.loads(tags_file.read()) else: data_tags = None limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) try: extensions = conf['extensions'] except KeyError: logger.warning('no file extension specified. Monitoring for all files.') extensions = [''] qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL try: report_dir = conf['report_dir'] if not os.path.isdir(report_dir): report_dir = None except KeyError: report_dir = None consumersfile = utils.get_file(conf, 'consumers', logger, False) if consumersfile is None: consumers = None else: with open(consumersfile) as consumers_file: consumers = json.loads(consumers_file.read()) return logger, data_tags, limits, quality_checks, extensions, file_type, report_type, report_dir, consumers
def init(config): """ This function initializes global variables. It gets values from the configuration file, evaluates and processes the values. If mandatory parameter is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids feedback : list a list of strings defining real time feedback of quality checks errors. Currently supporting 'PV', 'log', and 'console' feedback_pv : str a name of process variable that is used for quality feedback report_type : int report type; currently supporting 'none', 'error', and 'full' """ conf = utils.get_config(config) logger = utils.get_logger(__name__, conf) limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) feedback_pv = None try: feedback = conf['feedback_type'] if 'pv' in feedback: try: feedback_pv = conf['feedback_pv'] except KeyError: feedback.remove('pv') except KeyError: feedback = None try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL return logger, limits, quality_checks, feedback, feedback_pv, report_type
def init(config): """ This function initializes variables according to configuration. It gets values from the configuration file, evaluates and processes the values. If mandatory parameter is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids feedback : list a list of strings defining real time feedback of quality checks errors. Currently supporting 'PV', 'log', and 'console' report_type : int report type; currently supporting 'none', 'error', and 'full' consumers : dict a dictionary parsed from json file representing consumers """ conf = utils.get_config(config) if conf is None: print ('configuration file is missing') exit(-1) logger = utils.get_logger(__name__, conf) limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: feedback = conf['feedback_type'] except KeyError: feedback = None try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL consumersfile = utils.get_file(conf, 'consumers', logger, False) if consumersfile is None: consumers = None else: with open(consumersfile) as consumers_file: consumers = json.loads(consumers_file.read()) return logger, limits, quality_checks, feedback, report_type, consumers
def init(config): """ This function initializes global variables. It gets values from the configuration file, evaluates and processes the values. If mandatory file or directory is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance data_tags : dict a dictionary od data_type/hdf tag limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids file_type : int data file type; currently supporting FILE_TYPE_HDF and FILE_TYPE_GE report_type : int report type; currently supporting 'none', 'error', and 'full' report_dir : str a directory where report files will be located """ conf = utils.get_config(config) logger = utils.get_logger(__name__, conf) try: file_type = conf['file_type'] except KeyError: file_type = const.FILE_TYPE_HDF if file_type == const.FILE_TYPE_HDF: tagsfile = utils.get_file(conf, 'data_tags', logger) if tagsfile is None: sys.exit(-1) with open(tagsfile) as tags_file: data_tags = json.loads(tags_file.read()) else: data_tags = None limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL try: report_dir = conf['report_dir'] if not os.path.isdir(report_dir): report_dir = None except KeyError: report_dir = None return logger, data_tags, limits, quality_checks, file_type, report_type, report_dir
def init(config): """ This function initializes variables according to configuration. It gets values from the configuration file, evaluates and processes the values. If mandatory file or directory is missing, the script logs an error and exits. Parameters ---------- config : str configuration file name, including path Returns ------- logger : Logger logger instance limits : dictionary a dictionary containing limit values read from the configured 'limit' file quality_checks : dict a dictionary containing quality check functions ids extensions : list a list containing extensions of files to be monitored read from the configuration file report_type : int report type; currently supporting 'none', 'error', and 'full' consumers : dict a dictionary containing consumer processes to run, and their parameters """ conf = utils.get_config(config) if conf is None: print('configuration file is missing') exit(-1) logger = utils.get_logger(__name__, conf) limitsfile = utils.get_file(conf, 'limits', logger) if limitsfile is None: sys.exit(-1) with open(limitsfile) as limits_file: limits = json.loads(limits_file.read()) try: extensions = conf['extensions'] except KeyError: logger.warning( 'no file extension specified. Monitoring for all files.') extensions = [''] qcfile = utils.get_file(conf, 'quality_checks', logger) if qcfile is None: sys.exit(-1) with open(qcfile) as qc_file: dict = json.loads(qc_file.read()) quality_checks = utils.get_quality_checks(dict) try: report_type = conf['report_type'] except KeyError: report_type = const.REPORT_FULL consumersfile = utils.get_file(conf, 'consumers', logger, False) if consumersfile is None: consumers = None else: with open(consumersfile) as consumers_file: consumers = json.loads(consumers_file.read()) return logger, limits, quality_checks, extensions, report_type, consumers