
    ՟f                         d dl Z d dlZd dlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZ  G d de      Z G d	 d
e      Zy)    N   )ConnectErrorConnectTimeout	ReadErrorReadTimeout
WriteErrorWriteTimeoutmap_exceptions)is_socket_readable   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc            	       :   e Zd Zdej                  j
                  ddfdZ	 ddedej                  e
   defdZ	 ddedej                  e
   ddfd	Zdd
Z	 	 ddej                   dej                  e   dej                  e
   defdZdedej(                  fdZy)AnyIOStreamstreamreturnNc                     || _         y N)_stream)selfr   s     S/var/www/cvtools/html/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py__init__zAnyIOStream.__init__   s	        	max_bytestimeoutc                   K   t         t        t        j                  t        t        j
                  t        t        j                  t        i}t        |      5  t        j                  |      5  	 | j                  j                  |       d {   cd d d        cd d d        S 7 # t        j                  $ r Y d d d        d d d        yw xY w# 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY ww)N)r   r   )TimeoutErrorr   anyioBrokenResourceErrorr   ClosedResourceErrorEndOfStreamr
   
fail_afterr   receive)r   r   r   exc_maps       r   readzAnyIOStream.read   s      +%%y%%yy	
 G$ 	!!'* !%!5!5	!5!JJ 	 	 K(( 		 	  	 	 	sx   AC1C%,C.B&B$B&	C%
C1$B&&C9C:C%	C1CCC	C%	C1%C.*C1bufferc                 Z  K   |sy t         t        t        j                  t        t        j
                  t        i}t        |      5  t        j                  |      5  | j                  j                  |       d {    d d d        d d d        y 7 # 1 sw Y   xY w# 1 sw Y   y xY ww)N)item)
r   r	   r   r    r   r!   r
   r#   r   send)r   r'   r   r%   s       r   writezAnyIOStream.write'   s       ,%%z%%z

 G$ 	5!!'* 5ll''V'4445	5 	545 5	5 	5sH   AB+B B;B<B B	B+BB	BB($B+c                 T   K   | j                   j                          d {    y 7 wr   )r   aclose)r   s    r   r-   zAnyIOStream.aclose6   s     ll!!###s   (&(ssl_contextserver_hostnamec           	      "  K   t         t        t        j                  t        t        j
                  t        i}t        |      5  	 t        j                  |      5  t        j                  j                  j                  j                  | j                  ||dd       d {   }d d d        d d d        t              S 7 # 1 sw Y   xY w# t        $ r }| j                          d {  7   |d }~ww xY w# 1 sw Y   t              S xY ww)NF)r.   hostnamestandard_compatibleserver_side)r   r   r   r    r   r"   r
   r#   streamstls	TLSStreamwrapr   	Exceptionr-   r   )r   r.   r/   r   r%   
ssl_streamexcs          r   	start_tlszAnyIOStream.start_tls9   s      .%%||

 G$ 	%%g. ',}}'8'8'B'B'G'G$/!0,1$) (H ( "J	 :&&"   kkm##		 :&&ss   A DC9CACB? C$C,D?CC
	C	C6C1)C,*C11C66C99D>Dinfoc                    |dk(  rH| j                   j                  t        j                  j                  j
                  j                  d       S |dk(  r>| j                   j                  t        j                  j                  j                  d       S |dk(  r>| j                   j                  t        j                  j                  j                  d       S |dk(  r>| j                   j                  t        j                  j                  j                  d       S |dk(  rI| j                   j                  t        j                  j                  j                  d       }t        |      S y )N
ssl_objectclient_addrserver_addrsocketis_readable)r   extrar   r4   r5   TLSAttributer>   abcSocketAttributelocal_addressremote_address
raw_socketr   )r   r<   socks      r   get_extra_infozAnyIOStream.get_extra_infoS   s   <<<%%emm&7&7&D&D&O&OQUVV= <<%%eii&?&?&M&MtTT= <<%%eii&?&?&N&NPTUU8<<%%eii&?&?&J&JDQQ= <<%%eii&?&?&J&JDQD%d++r   r   )r   NNN)__name__
__module____qualname__r   rE   
ByteStreamr   inttypingOptionalfloatbytesr&   r+   r-   ssl
SSLContextstrr   r;   AnyrK    r   r   r   r      s    uyy33   AE'-u'=	" @D55&,ooe&<5	5$ 15*.	'^^'  -' '	'
 
'43 6:: r   r   c                      e Zd Z	 	 	 ddededej                  e   dej                  e   dej                  ej                  e	      de
fdZ	 	 dd	edej                  e   dej                  ej                  e	      de
fd
ZdeddfdZy)AnyIOBackendNhostportr   rG   socket_optionsr   c                   K   |g }t         t        t        t        t        j
                  t        i}t        |      5  t	        j                  |      5  t	        j                  |||       d {   }|D ]  } |j                  j                  |   	 d d d        d d d        t              S 7 @# 1 sw Y   xY w# 1 sw Y   t              S xY ww)N)remote_hostremote_port
local_host)r   r   OSErrorr   r   r    r
   r#   connect_tcp_raw_socket
setsockoptr   )	r   r]   r^   r   rG   r_   r%   r   options	            r   re   zAnyIOBackend.connect_tcpc   s      !N.\%%|

 G$ 		;!!'* ;5:5F5F $ $,6 0 - ;F1F&&116:;;		; 6""0; ;		; 6""sF   :CB=B1.B//$B1B=C/B11B:	6B==CCpathc                   K   |g }t         t        t        t        t        j
                  t        i}t        |      5  t	        j                  |      5  t	        j                  |       d {   }|D ]  } |j                  j                  |   	 d d d        d d d        t              S 7 @# 1 sw Y   xY w# 1 sw Y   t              S xY wwr   )r   r   rd   r   r   r    r
   r#   connect_unixrf   rg   r   )r   ri   r   r_   r%   r   rh   s          r   connect_unix_socketz AnyIOBackend.connect_unix_socket~   s      !N.\%%|

 G$ 	;!!'* ;5:5G5G5M/M, ;F1F&&116:;;	;
 6"" 0N; ;	;
 6""sF   :CB:B.+B,,$B.B:C,B..B7	3B::C?Csecondsc                 J   K   t        j                  |       d {    y 7 wr   )r   sleep)r   rm   s     r   ro   zAnyIOBackend.sleep   s     kk'"""s   #!#)NNNrL   )rM   rN   rO   rX   rQ   rR   rS   rT   Iterabler   r   re   rl   ro   rZ   r   r   r\   r\   b   s    
 +/.2JN## # '	#
 s+# (FG# 
#< +/JN	## '# (FG	#
 
#(#5 #T #r   r\   )rV   rR   r   _exceptionsr   r   r   r   r   r	   r
   _utilsr   baser   r   r   r   r\   rZ   r   r   <module>rt      sE    
     ( H HL$ L^1#& 1#r   