import validators from jsonmodels.errors import ValidationError class ForEach(object): def __init__(self, validator): self.validator = validator def validate(self, values): for value in values: self.validator.validate(value) def modify_schema(self, field_schema): return self.validator.modify_schema(field_schema) class Hostname(object): def validate(self, value): if validators.domain(value) is not True: raise ValidationError(f"Value '{value}' is not a valid hostname") def modify_schema(self, field_schema): field_schema["format"] = "hostname" class Email(object): def validate(self, value): if validators.email(value) is not True: raise ValidationError(f"Value '{value}' is not a valid email address") def modify_schema(self, field_schema): field_schema["format"] = "email"