
    g!                        S r SSKrSSKrSSKrSSKrSSKrSSKrSSKr\R                  R                  S5      (       d  \" S5      eS r\R                  R                  r " S S\R                   R"                  5      r " S S	\R                   R$                  5      r\R                  R                  S
5      (       ac  SSKrSSKrSSKr\R,                  r\R0                  R                  R2                  rSSKJrJrJr   " S S\5      r " S S\R@                  5      r!O\R                   RD                  r! " S S\R                   RF                  5      r#g)z$trio async I/O library query support    Ntrioztrio not found or too oldc                 p    U b  [         R                  " U 5      $ [        R                  R	                  5       $ N)r   move_on_afterdns_asyncbackendNullContexttimeouts    J/home/matz/Project1/venv/lib/python3.13/site-packages/dns/_trio_backend.py_maybe_timeoutr      s.    !!'**  ,,..    c                   L   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	rU =r$ )
DatagramSocket    c                 b   > [         TU ]  UR                  [        R                  5        Xl        g r   )super__init__familysocket
SOCK_DGRAM)selfsock	__class__s     r   r   DatagramSocket.__init__!   s!    f&7&78r   c                 <  #    [        U5         Uc,  U R                  R                  U5      I S h  vN sS S S 5        $ U R                  R                  X5      I S h  vN sS S S 5        $  N9 N! , (       d  f       O= f[        R
                  R                  US9e7fNr
   )r   r   sendsendtor   	exceptionTimeout)r   whatdestinationr   s       r   r   DatagramSocket.sendto%   s     G$"![[--d33 %$ "[[//BB	 %$3B	 %$
 mm## $ 
 	
sH   B"A.A*A.
BA.A,A. 
B*A.,A..
A<8$Bc                    #    [        U5         U R                  R                  U5      I S h  vN sS S S 5        $  N! , (       d  f       O= f[        R                  R                  US9e7fr   )r   r   recvfromr   r    r!   r   sizer   s      r   r&   DatagramSocket.recvfrom/   N     G$--d33 %$3 %$mm##G#44%   A+=;=
A+=
A$A+c                 @   #    U R                   R                  5         g 7fr   )r   closer   s    r   r-   DatagramSocket.close4   s     s   c                 >   #    U R                   R                  5       $ 7fr   )r   getpeernamer.   s    r   r1   DatagramSocket.getpeername7        {{&&((   c                 >   #    U R                   R                  5       $ 7fr   )r   getsocknamer.   s    r   r6   DatagramSocket.getsockname:   r3   r4   c                    #    [         e7fr   NotImplementedErrorr   r   s     r   getpeercertDatagramSocket.getpeercert=   s     !!   	)r   )__name__
__module____qualname____firstlineno__r   r   r&   r-   r1   r6   r<   __static_attributes____classcell__r   s   @r   r   r       s+    
5
))" "r   r   c                   P   ^  \ rS rSrS
U 4S jjrS rS rS rS rS r	S r
S	rU =r$ )StreamSocketA   c                 Z   > [         TU ]  U[        R                  5        X l        X0l        g r   )r   r   r   SOCK_STREAMstreamtls)r   r   rK   rL   r   s       r   r   StreamSocket.__init__B   s"    !3!34r   c                    #    [        U5         U R                  R                  U5      I S h  vN sS S S 5        $  N! , (       d  f       O= f[        R                  R                  US9e7fr   )r   rK   send_allr   r    r!   )r   r"   r   s      r   sendallStreamSocket.sendallG   r*   r+   c                    #    [        U5         U R                  R                  U5      I S h  vN sS S S 5        $  N! , (       d  f       O= f[        R                  R                  US9e7fr   )r   rK   receive_somer   r    r!   r'   s      r   recvStreamSocket.recvL   sN     G$11$77 %$7 %$mm##G#44r+   c                 T   #    U R                   R                  5       I S h  vN   g  N7fr   )rK   acloser.   s    r   r-   StreamSocket.closeQ   s     kk  """s   (&(c                    #    U R                   (       a.  U R                  R                  R                  R	                  5       $ U R                  R                  R	                  5       $ 7fr   )rL   rK   transport_streamr   r1   r.   s    r   r1   StreamSocket.getpeernameT   D     88;;//66BBDD;;%%1133   A$A&c                    #    U R                   (       a.  U R                  R                  R                  R	                  5       $ U R                  R                  R	                  5       $ 7fr   )rL   rK   rZ   r   r6   r.   s    r   r6   StreamSocket.getsocknameZ   r\   r]   c                    #    U R                   (       aP  [        U5         U R                  R                  5       I S h  vN   S S S 5        U R                  R	                  5       $ [
        e N,! , (       d  f       N0= f7fr   )rL   r   rK   do_handshaker<   r:   r;   s     r   r<   StreamSocket.getpeercert`   sU     88(kk..000 );;**,,%% 1 )(s,   A=A,A*A,(A=*A,,
A:6A=)rK   rL   )F)r?   r@   rA   rB   r   rP   rT   r-   r1   r6   r<   rC   rD   rE   s   @r   rG   rG   A   s+    
5
5
#44& &r   rG   doh)_compute_times_expiration_for_this_attempt
_remainingc                   F   ^  \ rS rSrU 4S jr SS jr SS jrS rSrU =r	$ )_NetworkBackends   c                 R   > [         TU ]  5         X l        Xl        X0l        X@l        g r   )r   r   _local_port	_resolver_bootstrap_address_family)r   resolver
local_portbootstrap_addressr   r   s        r   r   _NetworkBackend.__init__t   s$    G)%N&7#!Lr   c           	      j  #    / n[        U5      u  px[        R                  R                  U5      (       a  UR	                  U5        OU R
                  b  UR	                  U R
                  5        Oo[        U5      nU R                  n	U(       a  [        R                  R                  U5      n	U R                  R                  XUS9I S h  vN n
U
R                  5       nU H  n [        R                  R                  U5      nUc  U R                  S:w  a  X@R                  4nOS nX4n[        SU5      n[        U5      n[        5       R                  U[         R"                  SXU5      I S h  vN n[%        UR&                  5      s  $    [*        R,                  e N N/! [(         a     M  f = f7f)N)r   lifetimer   g       @)rd   r   inet
is_addressappendrm   rf   rn   af_for_addressrl   resolve_name	addressesrk   re   Backendmake_socketr   rJ   _CoreTrioStreamrK   	ExceptionhttpcoreConnectError)r   hostportr   local_addresssocket_optionsrz   _
expirationr   answersaddressafsourcer#   attempt_expirationr   s                    r   connect_tcp_NetworkBackend.connect_tcp{   s     I*73MAxx""4((  &((4  !8!89$Z0  XX44]CF $ ; ;' !< !  $--/	$009B$0D4D4D4I"/1A1A!B!%#*/K)Ec:)V&();<G!(!6!6F..6" D +4;;77 %  ''') ! sI   C	F3FF3&B
F"0F 1F"	F3 F""
F0,F3/F00F3c                    #    [         e7fr   r9   )r   pathr   r   s       r   connect_unix_socket#_NetworkBackend.connect_unix_socket   s      &%r>   c                 L   #    [         R                  " U5      I S h  vN   g  N7fr   r   sleep)r   secondss     r   r   _NetworkBackend.sleep   s     **W%%%   $"$)rm   rn   rk   rl   r   )
r?   r@   rA   rB   r   r   r   r   rC   rD   rE   s   @r   rh   rh   s   s)    	" FJ"	(J 15	&
	& 	&r   rh   c                   J   ^  \ rS rSrSSS\R
                  S.U 4S jjrSrU =r$ )_HTTPTransport   r   N)rp   rq   ro   r   c                   > Uc!  Uc  SS K nUR                  R                  5       n[        TU ]  " U0 UD6  [        X1X$5      U R                  l        g )Nr   )dns.asyncresolverasyncresolverResolverr   r   rh   _pool_network_backend)	r   rp   rq   ro   r   argskwargsr   r   s	           r   r   _HTTPTransport.__init__   sQ     $5$=(,,557Gd-f-*9&7+DJJ'r    )	r?   r@   rA   rB   r   	AF_UNSPECr   rC   rD   rE   s   @r   r   r      s!     "##	 	r   r   c                   B    \ rS rSrS r      S	S jrS rS rS rSr	g)
r{      c                     g)Nr   r   r.   s    r   nameBackend.name   s    r   Nc	                 T  #    [         R                  R                  XU5      n	S n
 U(       a"  U	R                  [        XA5      5      I S h  vN   U[        R                  :X  d  Ub^  Sn[        U5         U	R                  [        XQ5      5      I S h  vN   SnS S S 5        U(       d  [        R                  R                  US9eU[        R                  :X  a  [        U	5      $ U[        R                  :X  aC  [         R                  " U	5      n
SnU(       a  Sn [         R                  " XUS9n
[#        XU5      $ [%        SSU 3-   5      e GN N! , (       d  f       N= f! [         a    U	R                  5         e f = f! [         a    U
R!                  5       I S h  vN    e f = f7f)NFTr
   )server_hostnamezunsupported socket ztype )r   r   bind_lltuplerJ   r   connectr   r    r!   r~   r-   r   r   SocketStream	SSLStreamrW   rG   r:   )r   r   socktypeprotor   r#   r   ssl_contextr   srK   	connectedrL   s                r   r|   Backend.make_socket   s     KKrU3	ffXf12226---1H!	#G,))H[$=>>> $I - !--// ' 0   v(((!!$$+++&&q)FC!^^_F  C00!!eH:$66
 	
9 3 ? -,  	GGI	 !  --/))s}   #F($E! 
E(E! 3EEE,E! AF(F  .F(E! E
EE! !E==F( F%F F%%F(c                 L   #    [         R                  " U5      I S h  vN   g  N7fr   r   )r   intervals     r   r   Backend.sleep   s     jj"""r   c                     [         $ r   )r   r.   s    r   get_transport_classBackend.get_transport_class   s    r   c                    #    [        U5         UI S h  vN sS S S 5        $  N! , (       d  f       O= f[        R                  R                  US9e7fr   )r   r   r    r!   )r   	awaitabler   s      r   wait_forBackend.wait_for   sE     G$"? %$" %$mm## $ 
 	
s#   A$"$
A$
2$Ar   )r   NNNNN)
r?   r@   rA   rB   r   r|   r   r   r   rC   r   r   r   r{   r{      s0     -
^#
r   r{   )$__doc__r   r   trio.socketdns._asyncbackendr   dns._featuresdns.exceptiondns.inet	_featureshaveImportErrorr   ru   low_level_address_tupler   r   r   rG   r   httpcore._backends.triohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backends
TrioStreamr}   	dns.queryrd   re   rf   rh   AsyncHTTPTransportr   NullTransportr{   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   