'Return the value for this configuration variable from the
currently loaded configuration.
@throws KeyError if it is required but not set.
@throws ValueError if it does not validate correctly.'

def get_value(self, val, present, prefix=None, coerce_type=True):

    if (self.required and (not present)):
        raise KeyError(('Configuration    key    %s    not    in    configuration!' % self.key))
    if present:
        raw_val = val
    else:
        raw_val = self.default
    if coerce_type:
        return self._coerce_type(raw_val, prefix)
    else:
        return raw_val
