
    +h                        d dl mZ 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)    )annotationsN   )ConnectErrorConnectTimeout	ReadErrorReadTimeout
WriteErrorWriteTimeoutmap_exceptions)is_socket_readable   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc                  T    e Zd ZddZd	d
dZd	ddZddZ	 	 d	 	 	 	 	 	 	 ddZddZy)AnyIOStreamc                    || _         y N)_stream)selfstreams     K/var/www/html/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py__init__zAnyIOStream.__init__   s	        Nc                  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)	max_bytesr   )TimeoutErrorr   anyioBrokenResourceErrorr   ClosedResourceErrorEndOfStreamr   
fail_afterr   receive)r   r   timeout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c                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   bufferr$   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.aclose4   s     ll!!###s   (&(c           	     J  K   t         t        t        j                  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)ssl_contexthostnamestandard_compatibleserver_side)r   r   r   r   r   r!   sslSSLErrorr   r"   streamstls	TLSStreamwrapr   	Exceptionr-   r   )r   r/   server_hostnamer$   r%   
ssl_streamexcs          r   	start_tlszAnyIOStream.start_tls7   s      .%%||LL,	
 G$ 	%%g. ',}}'8'8'B'B'G'G$/!0,1$) (H ( "J	 :&&"   kkm##		 :&&ss   AD#DC!-AC3C4C8C! D#CC	C!!	D
*D=D >DD

DD D#c                   |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   r5   r6   TLSAttributer?   abcSocketAttributelocal_addressremote_address
raw_socketr   )r   infosocks      r   get_extra_infozAnyIOStream.get_extra_infoR   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   zanyio.abc.ByteStreamreturnNoner   )r   intr$   float | NonerN   bytes)r*   rR   r$   rQ   rN   rO   )rN   rO   NN)r/   zssl.SSLContextr:   
str | Noner$   rQ   rN   r   )rK   strrN   z
typing.Any)	__name__
__module____qualname__r   r&   r+   r-   r=   rM    r   r   r   r      sN    5$ '+ $	'#' $' 	'
 
'6r   r   c                  V    e Zd Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 ddZd	dZy)
AnyIOBackendNc                  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   hostportr$   rH   socket_optionsr%   r   options	            r   ra   zAnyIOBackend.connect_tcpb   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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r   )r   r   r`   r   r   r   r   r"   connect_unixrb   rc   r   )r   pathr$   rf   r%   r   rg   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c                J   K   t        j                  |       d {    y 7 wr   )r   sleep)r   secondss     r   rm   zAnyIOBackend.sleep   s     kk'"""s   #!#)NNN)rd   rU   re   rP   r$   rQ   rH   rT   rf   %typing.Iterable[SOCKET_OPTION] | NonerN   r   rS   )rj   rU   r$   rQ   rf   ro   rN   r   )rn   floatrN   rO   )rV   rW   rX   ra   rk   rm   rY   r   r   r[   r[   a   s    
 !%$(@D## # 	#
 "# ># 
#< !%@D	## # >	#
 
#(#r   r[   )
__future__r   r3   typingr   _exceptionsr   r   r   r   r	   r
   r   _utilsr   baser   r   r   r   r[   rY   r   r   <module>rv      sH    " 
     ( H HI$ IX1#& 1#r   