<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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))