
    ,h[#                     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                  dk(  Z
d Z G d d      Zd Z G d d	ej                  j                        Z G d
 dej                  j                         Zej"                  j%                  d      rgddlZddlZddlZddlZej.                  Zej2                  j&                  j4                  ZddlmZmZmZ  G d de      Z  G d dejB                        Z"nej                  jF                  Z" G d dej                  jH                        Z$y)zasyncio library query support    Nwin32c                  r    	 t        j                         S # t        $ r t        j                         cY S w xY wN)asyncioget_running_loopAttributeErrorget_event_loop     V/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/dns/_asyncio_backend.py_get_running_loopr      s4    ('')) (%%''(s    66c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)_DatagramProtocolc                      d | _         d | _        y r   )	transportrecvfromselfs    r   __init__z_DatagramProtocol.__init__   s    r   c                     || _         y r   )r   )r   r   s     r   connection_madez!_DatagramProtocol.connection_made   s	    "r   c                     | j                   r9| j                   j                         s| j                   j                  ||f       y y y r   )r   done
set_result)r   dataaddrs      r   datagram_receivedz#_DatagramProtocol.datagram_received    s5    ==!3!3!5MM$$dD\2 "6=r   c                     | j                   r7| j                   j                         s| j                   j                  |       y y y r   )r   r   set_exception)r   excs     r   error_receivedz _DatagramProtocol.error_received$   s1    ==!3!3!5MM'', "6=r   c                    | j                   rE| j                   j                         s*|	 t        d      | j                   j                  |       y y y # t        $ r%}| j                   j                  |       Y d }~y d }~ww xY w)NEOF)r   r   EOFErrorr   )r   r    es      r   connection_lostz!_DatagramProtocol.connection_lost(   sn    ==!3!3!5{3"5/) ++C0 "6=
   3MM//223s   A 	BA<<Bc                 8    | j                   j                          y r   )r   closer   s    r   r(   z_DatagramProtocol.close3   s    r   N)	__name__
__module____qualname__r   r   r   r!   r&   r(   r
   r   r   r   r      s     #3-	1r   r   c                    K   |	 t        j                  | |       d {   S |  d {   S 7 # t         j                  $ r! t        j                  j                  |      w xY w7 =w)N)timeout)r   wait_forTimeoutErrordns	exceptionTimeout)	awaitabler-   s     r   _maybe_wait_forr4   7   sh     	9 )))W=== 	 >## 	9--'''88	9 s/   A)0 .0 A)A'A)0 4A$$A)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                 ^    t         |   |t        j                         || _        || _        y r   )superr   socket
SOCK_DGRAMr   protocol)r   familyr   r;   	__class__s       r   r   zDatagramSocket.__init__B   s&    !2!23" r   c                 X   K   | j                   j                  ||       t        |      S wr   )r   sendtolen)r   whatdestinationr-   s       r   r?   zDatagramSocket.sendtoG   s$     dK04ys   (*c                 (  K   t               j                         }	 | j                  j                  J || j                  _        t	        ||       d {    |j                         d | j                  _        S 7 %# d | j                  _        w xY wwr   )r   create_futurer;   r   r4   result)r   sizer-   r   s       r   r   zDatagramSocket.recvfromL   st      "002	*==))11%)DMM"!$000;;=%)DMM" 1 &*DMM"s.   B8A< A:A< (B:A< <BBc                 @   K   | j                   j                          y wr   )r;   r(   r   s    r   r(   zDatagramSocket.closeW   s        c                 @   K   | j                   j                  d      S wNpeernamer   get_extra_infor   s    r   getpeernamezDatagramSocket.getpeernameZ        ~~,,Z88rH   c                 @   K   | j                   j                  d      S wNsocknamerL   r   s    r   getsocknamezDatagramSocket.getsockname]   rO   rH   c                    K   t         wr   NotImplementedErrorr   r-   s     r   getpeercertzDatagramSocket.getpeercert`   s     !!   	)r)   r*   r+   r   r?   r   r(   rN   rS   rX   __classcell__r=   s   @r   r6   r6   A   s&    !

	*99"r   r6   c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )StreamSocketc                 ^    t         |   |t        j                         || _        || _        y r   )r8   r   r9   SOCK_STREAMreaderwriter)r   afr`   ra   r=   s       r   r   zStreamSocket.__init__e   s&    V//0r   c                    K   | j                   j                  |       t        | j                   j                         |       d {   S 7 wr   )ra   writer4   drain)r   rA   r-   s      r   sendallzStreamSocket.sendallj   s8     $$T[[%6%6%8'BBBBs   AAA
Ac                 h   K   t        | j                  j                  |      |       d {   S 7 wr   )r4   r`   read)r   rF   r-   s      r   recvzStreamSocket.recvn   s(     $T[[%5%5d%;WEEEEs   )202c                 @   K   | j                   j                          y wr   )ra   r(   r   s    r   r(   zStreamSocket.closeq   s     rH   c                 @   K   | j                   j                  d      S wrJ   ra   rM   r   s    r   rN   zStreamSocket.getpeernamet        {{))*55rH   c                 @   K   | j                   j                  d      S wrQ   rl   r   s    r   rS   zStreamSocket.getsocknamew   rm   rH   c                 @   K   | j                   j                  d      S w)Npeercertrl   rW   s     r   rX   zStreamSocket.getpeercertz   rm   rH   )r)   r*   r+   r   rf   ri   r(   rN   rS   rX   rZ   r[   s   @r   r]   r]   d   s(    
CF666r   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         |           || _        || _        || _        || _        |dk7  rt        d      y )Nr   z9the asyncio transport for HTTPX cannot set the local port)r8   r   _local_port	_resolver_bootstrap_address_familyrV   )r   resolver
local_portbootstrap_addressr<   r=   s        r   r   z_NetworkBackend.__init__   sH    G)D%DN&7D#!DLQ)O  r   c                   K   g }t        |      \  }}t        j                  j                  |      r|j	                  |       n| j
                  |j	                  | j
                         nnt        |      }| j                  }	|rt        j                  j                  |      }	| j                  j                  ||	|       d {   }
|
j                         }|D ]d  }	 t        d|      }t        |      }t        j                  |      5  t        j                  |||       d {   }d d d        t!              c S  t$        j&                  7 7 ,# 1 sw Y   +xY w# t"        $ r Y w xY ww)N)r<   lifetimeg       @)remote_hostremote_port
local_host)rr   r0   inet
is_addressappendrz   rt   r{   af_for_addressry   resolve_name	addressesrs   anyio
fail_afterconnect_tcp_CoreAnyIOStream	ExceptionhttpcoreConnectError)r   hostportr-   local_addresssocket_optionsr   _
expirationr<   answersaddressattempt_expirationstreams                 r   r   z_NetworkBackend.connect_tcp   s`     I*73MAzxx""4(  &((4  !8!89$Z0  XX44]CF $ ; ;' !< !  $--/	$ )Ec:)V&();<G))'2 ','8'8(/(,'4( " ,F33 '''#"  ! s`   CE2EE2 ,E#E(E)E-E#?E2EE 	E##	E/,E2.E//E2c                    K   t         wr   rU   )r   pathr-   r   s       r   connect_unix_socketz#_NetworkBackend.connect_unix_socket   s      &%rY   c                 J   K   t        j                  |       d {    y 7 wr   )r   sleep)r   secondss     r   r   z_NetworkBackend.sleep   s     ++g&&&   #!#r   )r)   r*   r+   r   r   r   r   rZ   r[   s   @r   rv   rv      s$    		 FJ	(D 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Resolverr8   r   rv   _pool_network_backend)	r   r}   r~   r|   r<   argskwargsr0   r=   s	           r   r   z_HTTPTransport.__init__   sU     $5$=(,,557Gd-f-*9*&7+DJJ'r   )r)   r*   r+   r9   	AF_UNSPECr   rZ   r[   s   @r   r   r      s!     "##	 	r   r   c                   >    e Zd Zd Z	 	 	 	 	 	 ddZd Zd Zd Zd Zy)	Backendc                      y)Nr   r
   r   s    r   namezBackend.name   s    r   Nc	                   K   t               }	|t        j                  k(  r[t        r#|!t        j
                  j                  |      df}|	j                  t        ||||       d {   \  }
}t        ||
|      S |t        j                  k(  rQ|t        d      t        t        j                  |d   |d   |||||      |       d {   \  }}t        |||      S t!        dd| z         7 7 'w)Nr   )r<   protoremote_addrz'destination required for stream sockets   )sslr<   r   
local_addrserver_hostnamezunsupported socket ztype )r   r9   r:   	_is_win32r0   r   
any_for_afcreate_datagram_endpointr   r6   r_   
ValueErrorr4   r   open_connectionr]   rV   )r   rb   socktyper   sourcerB   r-   ssl_contextr   loopr   r;   rws                 r   make_socketzBackend.make_socket   s     !"v(((V^ ((--b115(,(E(E!' )F ) #Ix ""i::+++" !!JKK*''NN#%$3  FQ  Aq))!!eH:$66
 	
5#s%   A$C4&C0'A#C4
C2&C42C4c                 J   K   t        j                  |       d {    y 7 wr   )r   r   )r   intervals     r   r   zBackend.sleep	  s     mmH%%%r   c                      y)NFr
   r   s    r   datagram_connection_requiredz$Backend.datagram_connection_required  s    r   c                     t         S r   )r   r   s    r   get_transport_classzBackend.get_transport_class  s    r   c                 6   K   t        ||       d {   S 7 wr   )r4   )r   r3   r-   s      r   r.   zBackend.wait_for  s     $Y8888s   )r   NNNNN)	r)   r*   r+   r   r   r   r   r   r.   r
   r   r   r   r      s5     -
^&9r   r   )%__doc__r   r9   sysdns._asyncbackendr0   dns._featuresdns.exceptiondns.inetplatformr   r   r   r4   _asyncbackendr6   r]   	_featureshaver   r   httpcore._backends.anyiohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backendsAnyIOStreamr   	dns.queryrr   rs   rt   rv   AsyncHTTPTransportr   NullTransportr   r
   r   r   <module>r      s   $   
    LLG#	( > "S&&55  "F63$$11 64 ==e#';;))//;;RR3'2 3'j11 * &&44N=9c'' =9r   