
    3hM#                         d dl mZmZ ddlmZmZ ddlmZmZm	Z	m
Z
 ddlmZmZmZ dddddddddd	d	eeef   d
ee   dedee   dee   dee   dee   dee   dee   dee   defdZy)    )OptionalUnion   )EmailSyntaxErrorValidatedEmail)validate_email_local_partvalidate_email_domain_namevalidate_email_domain_literalget_length_reason)EMAIL_MAX_LENGTHQUOTED_LOCAL_PART_ADDRCASE_INSENSITIVE_MAILBOX_NAMESNF)	allow_smtputf8allow_empty_localallow_quoted_localallow_domain_literalcheck_deliverabilitytest_environmentglobally_deliverabletimeoutdns_resolveremailr   r   r   r   r   r   r   r   r   returnc       	            ddl m}
m}m}m}m}m}m} ||
}||}||}||}||}||}||}t        | t              s	 | j                  d      } d}t        j                  |       }|r-d}|j                         \  }}ddl}|j#                  d	d
|      }n/| j%                  d      }t'        |      dk7  rt        d      |\  }}t)               }| |_        t-        ||||      }|r|st        d      |d   |_        |d   |_        |d   |_        |j0                  j|j0                  j5                         t6        v rJ|j.                  >|j0                  j5                         |_        |j.                  j5                         |_        d}t'        |      dk(  rt        d      |j9                  d      rB|j;                  d      r1t=        |dd |      }|d   |_        |d   |_         |d   |_!        d}n"tE        |||      }|d   |_        |d   |_         |j.                  dz   |j>                  z   |_#        |j2                  s=|j@                  stI        d      |j0                  xs ddz   |j@                  z   |_%        nd|_%        |jJ                  rt'        |jJ                        tL        kD  rt|jJ                  |jF                  k(  rtO        |jJ                        }n6t'        |jF                        tL        kD  rtO        |jF                  d      }nd}t        d | d!      t'        |jF                  jQ                  d"            tL        kD  rEt'        |jF                        tL        kD  rtO        |jF                  d      }nd#}t        d | d!      |rP|sN|r|S dd$l)m*}  ||j@                  |j>                  ||	      }|jW                         D ]  \  }}tY        |||        |S # t        $ r t        d      w xY w)%a'  
    Validates an email address, raising an EmailNotValidError if the address is not valid or returning a dict of
    information when the address is valid. The email argument can be a str or a bytes instance,
    but if bytes it must be ASCII-only. This is the main method of this library.
    r   )ALLOW_SMTPUTF8ALLOW_QUOTED_LOCALALLOW_DOMAIN_LITERALGLOBALLY_DELIVERABLECHECK_DELIVERABILITYTEST_ENVIRONMENTDEFAULT_TIMEOUTNasciiz%The email address is not valid ASCII.FTr   z\\(.)z\1@   z@The email address is not valid. It must have exactly one @-sign.)r   r   quoted_local_partz7Quoting the part before the @-sign is not allowed here.
local_partascii_local_partsmtputf8z)There must be something after the @-sign.[])r   domaindomain_address)r   r   ascii_domainzMissing ASCII domain. )utf8z(when converted to IDNA ASCII)zThe email address is too long .r0   z(when encoded in bytes))validate_email_deliverability)-r/   r   r   r   r   r   r    r!   
isinstancestrdecode
ValueErrorr   r   matchgroupsresubsplitlenr   originalr   r&   r'   r(   lowerr   
startswithendswithr
   r,   r.   r-   r	   
normalized	Exceptionascii_emailr   r   encodedeliverabilityr2   itemssetattr) r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r%   mr&   domain_partr9   partsretlocal_part_infois_domain_literaldomain_part_inforeasonr2   deliverability_infokeyvalues                                    Q/var/www/html/venv/lib/python3.12/site-packages/email_validator/validate_email.pyvalidate_emailrT      s%   *V V V'!/#3#3+#3!
 eS!	LLL)E $$U+A "#((*
K 	VVHeZ8
 C u:?"#eff"'
K 
CCL 0
?MBSBSUO !3XYY$\2CN*+=>C":.CL
 '%%'+II>>%"3399;--/ 
;1JKK				$)=)=c)B8Qr9Jauv%h/
+H5-.>? 
 6kTd  |P  Q%h/
+N; ^^c)CJJ6CN <<344//52<s?O?OO, 3s/2BB??cnn,&s7F #33 's~~DAF5F!?xqIJJ
3>>  (),<<s~~!11 's~~DAF.F!?xqIJJ$4 J 	B;cjj'<
 .335 	%JCCe$	% JU  	L"#JKK	Ls    O* *O?)typingr   r   exceptions_typesr   r   syntaxr   r	   r
   r   rfc_constantsr   r   r   r4   bytesboolintobjectrT        rS   <module>r_      s    " > { { c c &*#)-+/+/'++/!%)vev TN	v
 v !v #4.v #4.v tnv #4.v c]v 6"v vr^   