o
    ˷e                     @   sH   d dl Z ddlmZ e de jZe de jZdgZed	ddZdS )
    N   )	validatorz(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*$|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"$)z(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?$)|^\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$	localhostc                 C   s   |du rt }| rd| vrdS | dd\}}t|sdS t|ddkr(dS ||vrJt|sJz|dd}t|W S  tyI   Y dS w d	S )
a  
    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
    N@Fr   zutf-8@   idnaasciiT)	domain_whitelistrsplit
user_regexmatchlenencodedomain_regexdecodeUnicodeError)value	whitelist	user_partdomain_part r   G/var/www/ideatree/venv/lib/python3.10/site-packages/validators/email.pyemail   s"   
r   )N)	reutilsr   compile
IGNORECASEr   r   r	   r   r   r   r   r   <module>   s    	