from marshmallow import fields, ValidationError from marshmallow import validate class EmailOrEmailsListField(fields.List): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._email_validator = validate.Email( error="Not a valid email address: {input}" ) def _deserialize(self, value, attr, data, **kwargs): if isinstance(value, str): if not value: ValidationError("Field should not be empty") self._email_validator(value) return value elif isinstance(value, list): if not value: ValidationError("Field should not be empty") for item in value: self._email_validator(item) return value else: raise ValidationError("Field should be email or list of emails")