/
opt
/
alt
/
python311
/
lib
/
python3.11
/
site-packages
/
validators
/
__pycache__
/
Upload File
HOME
� d�g� � �h � d Z ddlZddlmZ ddlmZ edddddd�ded ed ededed efd�� � ZdS )zeMail.� N� )�hostname)� validatorF)�ipv6_address�ipv4_address�simple_host�rfc_1034�rfc_2782�valuer r r r r c � � | r| � d� � dk rdS | � dd� � \ }}t |� � dk st |� � dk rdS |s|rU|� d� � r>|� d� � r)|� d� � � d� � }ndS t j d|t j � � r%t t || | d|||� � � � � ndS ) a� Validate an email address. This was inspired from [Django's email validator][1]. Also ref: [RFC 1034][2], [RFC 5321][3] and [RFC 5322][4]. [1]: https://github.com/django/django/blob/main/django/core/validators.py#L174 [2]: https://www.rfc-editor.org/rfc/rfc1034 [3]: https://www.rfc-editor.org/rfc/rfc5321 [4]: https://www.rfc-editor.org/rfc/rfc5322 Examples: >>> email('someone@example.com') # Output: True >>> email('bogus@@') # Output: ValidationError(email=email, args={'value': 'bogus@@'}) Args: value: eMail string to validate. ipv6_address: When the domain part is an IPv6 address. ipv4_address: When the domain part is an IPv4 address. simple_host: When the domain part is a simple hostname. rfc_1034: Allow trailing dot in domain name. Ref: [RFC 1034](https://www.rfc-editor.org/rfc/rfc1034). rfc_2782: Domain name is of type service record. Ref: [RFC 2782](https://www.rfc-editor.org/rfc/rfc2782). Returns: (Literal[True]): If `value` is a valid eMail. (ValidationError): If `value` is an invalid eMail. �@r F�@ � �[�]z�(^[\u0100-\u017F\u0180-\u024F]|[-!#$%&'*+/=?^_`{}|~0-9a-z]+(\.[-!#$%&'*+/=?^_`{}|~0-9a-z]+)*$|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\011.])*"$))�skip_ipv6_addr�skip_ipv4_addr� may_have_port�maybe_simpler r )�count�rsplit�len� startswith�endswith�lstrip�rstrip�re�match� IGNORECASE�boolr )r r r r r r � username_part�domain_parts �C/opt/alt/python311/lib/python3.11/site-packages/validators/email.py�emailr$ s: � �^ � �E�K�K��$�$��)�)��u�!&���c�1�!5�!5��M�;� �=���B���#�k�"2�"2�S�"8�"8��u�� �|� ��!�!�#�&�&� �;�+?�+?��+D�+D� �%�,�,�S�1�1�8�8��=�=�K�K��5� �8� M� ��M� � � ����#/�/�#/�/�#�(�!�!� � � � � � �* �-� )�__doc__r r �utilsr �strr r$ � r% r# �<module>r* s� �� �� � � � � � � � � � � � � � � � � � �����U� U� U��U� � U� �U� � U� �U� �U� U� U� ��U� U� Ur%