
    ,h!                        d Z ddlZddlZddlZddlZddlZddlZddlZej                  j                  d      s ed      d Zej                  j                  Z G d dej                   j"                        Z G d d	ej                   j$                        Zej                  j                  d
      rcddlZddlZddlZej,                  Zej0                  j                  j2                  ZddlmZmZmZ  G d de      Z G d dej@                        Z!nej                   jD                  Z! G d dej                   jF                        Z#y)z$trio async I/O library query support    Ntrioztrio not found or too oldc                 l    | t        j                  |       S t        j                  j	                         S N)r   move_on_afterdns_asyncbackendNullContexttimeouts    S/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/dns/_trio_backend.py_maybe_timeoutr      s.    !!'**  ,,..    c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )DatagramSocketc                 d    t         |   |j                  t        j                         || _        y r   )super__init__familysocket
SOCK_DGRAM)selfsock	__class__s     r   r   zDatagramSocket.__init__!   s#    f&7&78r   c                 8  K   t        |      5  |,| j                  j                  |       d {   cd d d        S | j                  j                  ||       d {   cd d d        S 7 :7 # 1 sw Y   nxY wt        j
                  j                  |      wNr
   )r   r   sendsendtor   	exceptionTimeout)r   whatdestinationr   s       r   r   zDatagramSocket.sendto%   s     G$ 	C"![[--d33	C 	C "[[//kBB		C 	C3B		C 	C
 mm## $ 
 	
sH   B!A.A*A.
BA.A,A. 
B*A.,A..A73'Bc                    K   t        |      5  | j                  j                  |       d {   cd d d        S 7 # 1 sw Y   nxY wt        j                  j                  |      wr   )r   r   recvfromr   r   r   r   sizer   s      r   r#   zDatagramSocket.recvfrom/   Y     G$ 	4--d33	4 	43	4 	4mm##G#44%   A)=;=
A)=A'A)c                 @   K   | j                   j                          y wr   )r   closer   s    r   r)   zDatagramSocket.close4   s     s   c                 >   K   | j                   j                         S wr   )r   getpeernamer*   s    r   r,   zDatagramSocket.getpeername7        {{&&((   c                 >   K   | j                   j                         S wr   )r   getsocknamer*   s    r   r0   zDatagramSocket.getsockname:   r-   r.   c                    K   t         wr   NotImplementedErrorr   r   s     r   getpeercertzDatagramSocket.getpeercert=   s     !!   	)__name__
__module____qualname__r   r   r#   r)   r,   r0   r5   __classcell__r   s   @r   r   r       s&    
5
))"r   r   c                   D     e Zd Zd fd	Zd Zd Zd Zd Zd Zd Z	 xZ
S )	StreamSocketc                 ^    t         |   |t        j                         || _        || _        y r   )r   r   r   SOCK_STREAMstreamtls)r   r   r@   rA   r   s       r   r   zStreamSocket.__init__B   s&    !3!34r   c                    K   t        |      5  | j                  j                  |       d {   cd d d        S 7 # 1 sw Y   nxY wt        j                  j                  |      wr   )r   r@   send_allr   r   r   )r   r    r   s      r   sendallzStreamSocket.sendallG   r&   r'   c                    K   t        |      5  | j                  j                  |       d {   cd d d        S 7 # 1 sw Y   nxY wt        j                  j                  |      wr   )r   r@   receive_somer   r   r   r$   s      r   recvzStreamSocket.recvL   sY     G$ 	811$77	8 	87	8 	8mm##G#44r'   c                 T   K   | j                   j                          d {    y 7 wr   )r@   acloser*   s    r   r)   zStreamSocket.closeQ   s     kk  """s   (&(c                    K   | j                   r.| j                  j                  j                  j	                         S | j                  j                  j	                         S wr   )rA   r@   transport_streamr   r,   r*   s    r   r,   zStreamSocket.getpeernameT   E     88;;//66BBDD;;%%1133   AA!c                    K   | j                   r.| j                  j                  j                  j	                         S | j                  j                  j	                         S wr   )rA   r@   rK   r   r0   r*   s    r   r0   zStreamSocket.getsocknameZ   rL   rM   c                    K   | j                   rPt        |      5  | j                  j                          d {    d d d        | j                  j	                         S t
        7 ,# 1 sw Y   +xY wwr   )rA   r   r@   do_handshaker5   r3   r4   s     r   r5   zStreamSocket.getpeercert`   s^     88( 1kk..0001;;**,,%% 11 1s+   A3A'A%A'(A3%A''A0,A3)F)r7   r8   r9   r   rD   rG   r)   r,   r0   r5   r:   r;   s   @r   r=   r=   A   s&    
5
5
#44&r   r=   doh)_compute_times_expiration_for_this_attempt
_remainingc                   8     e Zd Z fdZ	 ddZ	 ddZd Z xZS )_NetworkBackendc                 Z    t         |           || _        || _        || _        || _        y r   )r   r   _local_port	_resolver_bootstrap_address_family)r   resolver
local_portbootstrap_addressr   r   s        r   r   z_NetworkBackend.__init__t   s,    G)D%DN&7D#!DLr   c           	      Z  K   g }t        |      \  }}t        j                  j                  |      r|j	                  |       n| j
                  |j	                  | j
                         nnt        |      }| j                  }	|rt        j                  j                  |      }	| j                  j                  ||	|       d {   }
|
j                         }|D ]  }	 t        j                  j                  |      }|| j                  dk7  r|| j                  f}nd }||f}t        d|      }t        |      }t               j                  |t         j"                  d|||       d {   }t%        |j&                        c S  t*        j,                  7 7 .# t(        $ r Y w xY ww)N)r   lifetimer   g       @)rR   r   inet
is_addressappendrZ   rT   r[   af_for_addressrY   resolve_name	addressesrX   rS   Backendmake_socketr   r?   _CoreTrioStreamr@   	ExceptionhttpcoreConnectError)r   hostportr   local_addresssocket_optionsrf   _
expirationr   answersaddressafsourcer!   attempt_expirationr   s                    r   connect_tcpz_NetworkBackend.connect_tcp{   s     I*73MAzxx""4(  &((4  !8!89$Z0  XX44]CF $ ; ;' !< !  $--/	$ 009B$0D4D4D4I"/1A1A!B!%#*D/K)Ec:)V&();<G!(!6!6F..6;" D +4;;77  ''') ! sI   CF+FF+ BF+F,FF+F	F(%F+'F((F+c                    K   t         wr   r2   )r   pathr   rp   s       r   connect_unix_socketz#_NetworkBackend.connect_unix_socket   s      &%r6   c                 J   K   t        j                  |       d {    y 7 wr   r   sleep)r   secondss     r   r~   z_NetworkBackend.sleep   s     **W%%%   #!#r   )r7   r8   r9   r   rx   r{   r~   r:   r;   s   @r   rV   rV   s   s$    	" FJ"	(J 15	&
	&r   rV   c                   >     e Zd Zdddej                  d fd
Z xZS )_HTTPTransportr   N)r]   r^   r\   r   c                    | |dd l }|j                  j                         }t        |   |i | t        ||||      | j                  _        y )Nr   )dns.asyncresolverasyncresolverResolverr   r   rV   _pool_network_backend)	r   r]   r^   r\   r   argskwargsr   r   s	           r   r   z_HTTPTransport.__init__   sU     $5$=(,,557Gd-f-*9*&7+DJJ'r   )r7   r8   r9   r   	AF_UNSPECr   r:   r;   s   @r   r   r      s!     "##	 	r   r   c                   8    e Zd Zd Z	 	 	 	 	 	 ddZd Zd Zd Zy)rg   c                      y)Nr    r*   s    r   namezBackend.name   s    r   Nc	                 0  K   t         j                  j                  |||      }	d }
	 |r#|	j                  t        ||             d {    |t        j                  k(  s|]d}t        |      5  |	j                  t        ||             d {    d}d d d        |s t        j                  j                  |      |t        j                  k(  rt        |	      S |t        j                  k(  rAt        j                  |	      }
d}|rd}	 t        j                  |
||      }
t#        ||
|      S t%        dd| z         7 7 # 1 sw Y   xY w# t        $ r |	j                           w xY w# t        $ r |
j!                          d {  7    w xY ww)NFTr
   )server_hostnamezunsupported socket ztype )r   r   bind_lltupler?   r   connectr   r   r   rj   r)   r   r   SocketStream	SSLStreamrI   r=   r3   )r   ru   socktypeprotorv   r!   r   ssl_contextr   sr@   	connectedrA   s                r   rh   zBackend.make_socket   s     KKr8U3	ffXfb12226---1H!	#G, %))H["$=>>> $I% !--// ' 0   v(((!!$$+++&&q)FC!^^_F  FC00!!eH:$66
 	
9 3 ?% %  	GGI	 !  --/))s}   $F E E&E .EEE*E >AFE/ #FE EE
E E,,F/FFFFc                 J   K   t        j                  |       d {    y 7 wr   r}   )r   intervals     r   r~   zBackend.sleep   s     jj"""r   c                     t         S r   )r   r*   s    r   get_transport_classzBackend.get_transport_class   s    r   c                    K   t        |      5  | d {   cd d d        S 7 # 1 sw Y   nxY wt        j                  j                  |      wr   )r   r   r   r   )r   	awaitabler   s      r   wait_forzBackend.wait_for   sP     G$ 	#"?	# 	#"	# 	#mm## $ 
 	
s#   A$"$
A$-'A)r   NNNNN)r7   r8   r9   r   rh   r~   r   r   r   r   r   rg   rg      s0     -
^#
r   rg   )$__doc__r   r   trio.socketdns._asyncbackendr   dns._featuresdns.exceptiondns.inet	_featureshaveImportErrorr   ra   low_level_address_tupler   r   r   r=   rk   httpcore._backends.triohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backends
TrioStreamri   	dns.queryrR   rS   rT   rV   AsyncHTTPTransportr   NullTransportrg   r   r   r   <module>r      s   +       
}}&!
1
22/ 88++
"S&&55 "B%&3$$11 %&P ==e"';;((--88ORR2&2 2&h11 * &&44N>
c'' >
r   