
    RPf'                     l    d dl mZmZmZ ddlmZ d dlZd dlZdddddee	   fdZ
dded	edee	   fd
Zy)    )OptionalAnyDict   )EmailUndeliverableErrorN)timeoutcachedns_resolverr   c                     | ddl m} |} |xs t        j                  j	                         }|xs t        j                  j                         |_        | |_        |S )Nr   DEFAULT_TIMEOUT) r   dnsresolverResolverLRUCacher	   lifetime)r   r	   r
   r   r   s        X/var/www/fastapitest/venv/lib/python3.12/site-packages/email_validator/deliverability.pycaching_resolverr   	   sL    %!6s||446H5cll335HNHO    domaindomain_i18nc           	      <   |0ddl m} ||}t        j                  j	                         }||_        n|t        d      i }	 	 |j                  | d      }t        |D cg c]2  }|j                  t        |j                        j                  d      f4 c}      }|D 	
cg c]  \  }	}
|
dk7  r|	|
f }}	}
t        |      dk(  rt        d| d	      ||d
<   d |d<   |S c c}w c c}
}	w # t        j                  j                  $ rk 	 |j                  | d      }|D cg c]  }dt        |      f nc c}w c}|d
<   d|d<   n# t        j                  j                  $ ru 	 |j                  | d      }|D cg c]  }dt        |      f nc c}w c}|d
<   d|d<   n5# t        j                  j                  $ r}t        d| d	      |d }~ww xY wY nw xY w	 |j                  | d      }|D ]Y  }dj!                  |j"                        }|j%                  d      s0|j'                  dd      |d<   |dk(  sLt        d| d       n## t        j                  j                  $ r Y nw xY wY |S w xY w# t        j                  j(                  $ r}t        d| d      |d }~wt        j                  j*                  $ r ddicY S t        j,                  j.                  $ r ddicY S t        $ r  t0        $ r}t        dt        |      z         |d }~ww xY w)Nr   r   z5It's not valid to pass both timeout and dns_resolver.MX.r   r   zThe domain name z does not accept email.mxmx_fallback_typeAAAAATXTr   s   v=spf1 asciireplace)errorsspfs   v=spf1 -allz does not send email.z does not exist.zunknown-deliverabilityno_nameserversr   zZThere was an error while checking if the domain name in the email address is deliverable: )r   r   r   r   get_default_resolverr   
ValueErrorresolvesorted
preferencestrexchangerstriplenr   NoAnswerjoinstrings
startswithdecodeNXDOMAINNoNameservers	exceptionTimeout	Exception)r   r   r   r
   r   deliverability_inforesponsermtasr*   r,   erecvalues                 r   validate_email_deliverabilityr@      sq    %?%G||88: '		PQQ*,V9	#++FD9H PXY1ALL#ajj/*@*@*EFYZD HL '/Cz82~  * 'D '4yA~-0@Md.eff(,%6: 23L e Z' ||$$ &	r'//<BJ,KQaQ[,K,K#D):=#$67<<(( r
r+33FFCHFN0O!SV0O0O'->D'(:;||,, r
 24D[MQh2ijpqqr <r*
'//># qCHHS[[1E''
35:\\'R[\5\+E2 N2"9<L[MYn:o"ppq <<(( @ I&	P <<   _ &(8EU&VW]^^<<%% 
 %&6
 	
 ==   
 %i
 	
 #  %hknopkqq
	s   C, 7C!C, "C&5*C, !C, ,I5E!D65EI5G%F!;FF! G!G>GGGI5GI5AI!I=II5I.+I5-I..I51I8 4I55I8 8LJ%%$L L-L>LL)NN)typingr   r   r   exceptions_typesr   dns.resolverr   dns.exceptionintr   r+   r@    r   r   <module>rG      sQ    & & 5   26TPT # l# lC l(SV- lr   