'Ensure that the value follows at least one template.'

def convert(self, value, view):

    is_mapping = isinstance(self.template, MappingTemplate)
    for candidate in self.allowed:
        try:
            if is_mapping:
                if (isinstance(candidate, Filename) and candidate.relative_to):
                    next_template = candidate.template_with_relatives(view, self.template)
                    next_template.subtemplates[view.key] = as_template(candidate)
                else:
                    next_template = MappingTemplate({view.key: candidate})
                return view.parent.get(next_template)[view.key]
            else:
                return view.get(candidate)
        except ConfigTemplateError:
            raise
        except ConfigError:
            pass
        except ValueError as exc:
            raise ConfigTemplateError(exc)
    self.fail(u'must    be    one    of    {0},    not    {1}'.format(repr(self.allowed), repr(value)), view)
