def parse_run_step_section(config_obj, section):
kill_after_seconds = None<EOL>try:<EOL><INDENT>run_cmd = config_obj.get(section, '<STR_LIT>')<EOL>run_rank = int(config_obj.get(section, '<STR_LIT>'))<EOL><DEDENT>except ConfigParser.NoOptionError:<EOL><INDENT>logger.exception("<STR_LIT>" + section)<EOL>sys.exit()<EOL><DEDENT>except ValueError:<EOL><INDENT>logger.error("<STR_LIT>", config_obj.get(section, '<STR_LIT>'), section)<EOL>sys.exit()<EOL><DEDENT>if config_obj.has_option(section, '<STR_LIT>'):<EOL><INDENT>run_type = config_obj.get(section, '<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>run_type = CONSTANTS.RUN_TYPE_WORKLOAD<EOL><DEDENT>if config_obj.has_option(section, '<STR_LIT>'):<EOL><INDENT>run_order = config_obj.get(section, '<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>run_order = CONSTANTS.PRE_ANALYSIS_RUN<EOL><DEDENT>if config_obj.has_option(section, '<STR_LIT>'):<EOL><INDENT>call_type = config_obj.get(section, '<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>call_type = '<STR_LIT>'<EOL><DEDENT>if config_obj.has_option(section, '<STR_LIT>'):<EOL><INDENT>try:<EOL><INDENT>kill_after_seconds = int(config_obj.get(section, '<STR_LIT>'))<EOL><DEDENT>except ValueError:<EOL><INDENT>logger.error("<STR_LIT>", config_obj.get(section, '<STR_LIT>'), section)<EOL><DEDENT><DEDENT>if call_type == '<STR_LIT>':<EOL><INDENT>run_step_obj = Local_Cmd(run_type, run_cmd, call_type, run_order, run_rank, kill_after_seconds=kill_after_seconds)<EOL><DEDENT>else:<EOL><INDENT>logger.error('<STR_LIT>')<EOL>run_step_obj = None<EOL><DEDENT>return run_step_obj<EOL>
Parse a RUN-STEP section in the config to return a Run_Step object
:param config_obj: ConfigParser objection
:param section: Section name
:return: an initialized Run_Step object