U
    ^                     @   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}\]$Z	localhostc                 C   s   |dkrt }| rd| krdS | dd\}}t|s:dS t|ddkrPdS ||krt|sz|dd}t|W S  tk
r   Y dS X 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@   ZidnaasciiT)	domain_whitelistrsplit
user_regexmatchlenencodedomain_regexdecodeUnicodeError)valueZ	whitelistZ	user_partZdomain_part r   [/var/www/html/media_planning/my_env_project/lib/python3.8/site-packages/validators/email.pyemail   s     
r   )N)	reutilsr   compile
IGNORECASEr	   r   r   r   r   r   r   r   <module>   s   	