def __call__(self, value):
        try:
            super(EmailValidator, self).__call__(value)
        except __HOLE__ as e:
            # Trivial case failed. Try for possible IDN domain-part
            if value and '@' in value:
                parts = value.split('@')
                try:
                    parts[-1] = parts[-1].encode('idna').decode('ascii')
                except UnicodeError:
                    raise e
                super(EmailValidator, self).__call__('@'.join(parts))
            else:
                raise
dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.5/django/core/validators.py/EmailValidator.__call__