def read_config_file(self, config_file=None, verbose=None):
helplevel = <NUM_LIT:1><EOL>while helplevel <= self._maxlevel:<EOL><INDENT>opt = "<STR_LIT:->".join(["<STR_LIT>"] * helplevel) + "<STR_LIT>"<EOL>if opt in self._all_options:<EOL><INDENT>break  <EOL><DEDENT>def helpfunc(option, opt, val, p, level=helplevel):<EOL><INDENT>print(self.help(level))<EOL>sys.exit(<NUM_LIT:0>)<EOL><DEDENT>helpmsg = "<STR_LIT>" % "<STR_LIT:U+0020>".join(["<STR_LIT>"] * helplevel)<EOL>optdict = {"<STR_LIT:action>": "<STR_LIT>", "<STR_LIT>": helpfunc, "<STR_LIT>": helpmsg}<EOL>provider = self.options_providers[<NUM_LIT:0>]<EOL>self.add_optik_option(provider, self.cmdline_parser, opt, optdict)<EOL>provider.options += ((opt, optdict),)<EOL>helplevel += <NUM_LIT:1><EOL><DEDENT>if config_file is None:<EOL><INDENT>config_file = self.config_file<EOL><DEDENT>if config_file is not None:<EOL><INDENT>config_file = os.path.expanduser(config_file)<EOL>if not os.path.exists(config_file):<EOL><INDENT>raise IOError("<STR_LIT>".format(config_file))<EOL><DEDENT><DEDENT>use_config_file = config_file and os.path.exists(config_file)<EOL>if use_config_file:<EOL><INDENT>parser = self.cfgfile_parser<EOL>with io.open(config_file, "<STR_LIT:r>", encoding="<STR_LIT>") as fp:<EOL><INDENT>parser.read_file(fp)<EOL><DEDENT>for sect, values in list(parser._sections.items()):<EOL><INDENT>if not sect.isupper() and values:<EOL><INDENT>parser._sections[sect.upper()] = values<EOL><DEDENT><DEDENT><DEDENT>if not verbose:<EOL><INDENT>return<EOL><DEDENT>if use_config_file:<EOL><INDENT>msg = "<STR_LIT>".format(os.path.abspath(config_file))<EOL><DEDENT>else:<EOL><INDENT>msg = "<STR_LIT>"<EOL><DEDENT>print(msg, file=sys.stderr)<EOL>
read the configuration file but do not load it (i.e. dispatching
        values to each options provider)