'Helper function to fetch values from owning section.
Returns a 2-tuple: the value, and the section where it was found.'

def _fetch(self, key):

    save_interp = self.section.main.interpolation
    self.section.main.interpolation = False
    current_section = self.section
    while True:
        val = current_section.get(key)
        if (val is not None):
            break
        val = current_section.get('DEFAULT', {}).get(key)
        if (val is not None):
            break
        if (current_section.parent is current_section):
            break
        current_section = current_section.parent
    self.section.main.interpolation = save_interp
    if (val is None):
        raise MissingInterpolationOption(key)
    return (val, current_section)
