9. cpl.esorex EsoRex legacy support¶
EsoRex is a standard execution environment for CPL recipes provided by ESO.
9.1. Support for configuration and SOF files¶
-
cpl.esorex.init(source=None)¶ Set up the logging and the recipe search path from the
esorex.rcfile.Parameters: source ( strorfile) – Configuration file object, or string with file content. If not set, the esorex config file~/.esorex/esorex.rcis used.
-
cpl.esorex.load_rc(source=None)¶ Read an EsoRex configuration file.
Parameters: source ( strorfile) – Configuration file object, or string with file content. If not set, the EsoRex config file~/.esorex/esorex.rcis used.These files contain configuration parameters for EsoRex or recipes. The content of the file is returned as a map with the (full) parameter name as key and its setting as string value.
The result of this function may directly set as
cpl.Recipe.paramattribute:import cpl myrecipe = cpl.Recipe('muse_bias') myrecipe.param = cpl.esorex.load_rc('muse_bias.rc')
-
cpl.esorex.load_sof(source)¶ Read an EsoRex SOF file.
Parameters: source ( strorfile) – SOF (“Set Of Files”) file object or string with SOF file content.These files contain the raw and calibration files for a recipe. The content of the file is returned as a map with the tag as key and the list of file names as value.
The result of this function may directly set as
cpl.Recipe.calibattribute:import cpl myrecipe = cpl.Recipe('muse_bias') myrecipe.calib = cpl.esorex.read_sof(open('muse_bias.sof'))
Note
The raw data frame is silently ignored wenn setting
cpl.Recipe.calibfor MUSE recipes. Other recipes ignore the raw data frame only if it was set manually ascpl.Recipe.tagor incpl.Recipe.tagssince there is no way to automatically distinguish between them.
9.2. Convienence logging control¶
-
cpl.esorex.msg= <cpl.esorex.CplLogger object>¶ This variable is a
CplLoggerinstance that provides a convienience stream handler similar to the terminal logging functionality of the CPL. It basically does the same as:import logging log = logging.getLogger() log.setLevel(logging.INFO) ch = logging.StreamHandler() ch.setLevel(logging.OFF) ch.setFormatter(logging.Formatter('[%(levelname)7s] %(message)s')) log.addHandler(ch)
The following attributes control the format of the terminal messages:
-
CplLogger.level¶ Log level for output to the terminal. Any of [ DEBUG, INFO, WARN, ERROR, OFF ].
-
CplLogger.format¶ Output format.
-
-
cpl.esorex.log= <cpl.esorex.CplFileLogger object>¶ This variable is a
CplFileLoggerinstance that provides a convienience file handler similar to the file logging functionality of the CPL. It basically does the same as:import logging log = logging.getLogger() log.setLevel(logging.INFO) ch = logging.FileHandler(filename) ch.setLevel(logging.INFO) ch.setFormatter(logging.Formatter('%(asctime)s [%(levelname)7s] %(funcName)s: %(message)s')) log.addHandler(ch)
The following attributes control the format of the log file messages:
-
CplLogger.dir¶ Directory name that is prepended to the log file name.
-
CplLogger.level Log level for output to the terminal. Any of [ DEBUG, INFO, WARN, ERROR, OFF ].
-
CplLogger.format Output format.
-
CplLogger.time If
True, attach a time tag to output messages.
-
CplLogger.component If
True, attach the component name to output messages.
-
CplLogger.threadid If
True, attach a thread tag to output messages.
-