docs: def email(value, whitelist=None):
      """
      Validate an email address.
  
      This validator is based on `Django's email validator`_. Returns
      ``True`` on success and :class:`~validators.utils.ValidationFailure`
      when validation fails.
  
      Examples::
  
          >>> email('someone@example.com')
          True
  
          >>> email('bogus@@')
          ValidationFailure(func=email, ...)
  
      .. _Django's email validator:
         https://github.com/django/django/blob/master/django/core/validators.py
  
      .. versionadded:: 0.1
  
      :param value: value to validate
      :param whitelist: domain names to whitelist
  
      :copyright: (c) Django Software Foundation and individual contributors.
      :license: BSD
      """
  
      if whitelist is None:
          whitelist = domain_whitelist
  
      if not value or '@' not in value:
          return False
  
      user_part, domain_part = value.rsplit('@', 1)
  
      if not user_regex.match(user_part):
          return False
  
      if domain_part not in whitelist and not domain_regex.match(domain_part):
          # Try for possible IDN domain-part
          try:
              domain_part = domain_part.encode('idna').decode('ascii')
              return domain_regex.match(domain_part)
          except UnicodeError:
              return False
      return True