

def __call__(self, value):
    value = force_text(value)
    if ((not value) or ('@' not in value)):
        raise ValidationError(self.message, code=self.code)
    (user_part, domain_part) = value.rsplit('@', 1)
    if (not self.user_regex.match(user_part)):
        raise ValidationError(self.message, code=self.code)
    if ((not (domain_part in self.domain_whitelist)) and (not self.domain_regex.match(domain_part))):
        try:
            domain_part = domain_part.encode('idna').decode('ascii')
            if (not self.domain_regex.match(domain_part)):
                raise ValidationError(self.message, code=self.code)
            else:
                return
        except UnicodeError:
            pass
        raise ValidationError(self.message, code=self.code)

dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/Django-1.6.10/django/core/validators.py EmailValidator.__call__/original