<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_reader(validator, reader_namespace=config.DEFAULT):
 """A factory method for creating a custom config reader from a validation function. :param validator: a validation function which acceptance one argument (the configuration value), and returns that value casted to the appropriate type. :param reader_namespace: the default namespace to use. Defaults to `DEFAULT`. """

    def reader(config_key, default=UndefToken, namespace=None):
        config_namespace = config.get_namespace(namespace or reader_namespace)
        return validator(_read_config(config_key, config_namespace, default))
    return reader