def extract_value(proxy):
    """Given a value proxy type, Retrieve a value from a namespace, raising
    exception if no value is found, or the value does not validate.
    """
    value = proxy.namespace.get(proxy.config_key, proxy.default)
    if value is UndefToken:
        raise errors.ConfigurationError("%s is missing value for: %s" %
            (proxy.namespace, proxy.config_key))

    try:
        return proxy.validator(value)
    except errors.ValidationError as e:
        raise errors.ConfigurationError("%s failed to validate %s: %s" %
            (proxy.namespace, proxy.config_key, e))
Given a value proxy type, Retrieve a value from a namespace, raising
    exception if no value is found, or the value does not validate.