'Get an option value for a given section.
If `vars\' is provided, it must be a dictionary. The option is looked up
in `vars\' (if provided), `section\', and in `defaults\' in that order.
All % interpolations are expanded in the return values, unless the
optional argument `raw\' is true. Values for interpolation keys are
looked up in the same manner as the option.
The section DEFAULT is special.'

def get(self, section, option, raw=False, vars=None):

    sectiondict = {}
    try:
        sectiondict = self._sections[section]
    except KeyError:
        if (section != DEFAULTSECT):
            raise NoSectionError(section)
    vardict = {}
    if vars:
        for (key, value) in vars.items():
            vardict[self.optionxform(key)] = value
    d = _Chainmap(vardict, sectiondict, self._defaults)
    option = self.optionxform(option)
    try:
        value = d[option]
    except KeyError:
        raise NoOptionError(option, section)
    if (raw or (value is None)):
        return value
    else:
        return self._interpolate(section, option, value, d)
        return
