
    ՟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
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ExceptionMapping	ReadErrorReadTimeout
WriteErrorWriteTimeoutmap_exceptions   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc            	       Z   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dej,                  fdZy)
TrioStreamstreamreturnNc                     || _         y N)_streamselfr   s     R/var/www/cvtools/html/venv/lib/python3.12/site-packages/httpcore/_backends/trio.py__init__zTrioStream.__init__   s	        	max_bytestimeoutc                   K   |t        d      n|}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 # 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY ww)Ninf)r   )floattrioTooSlowErrorr   BrokenResourceErrorr   ClosedResourceErrorr   
fail_afterr   receive_some)r   r   r   timeout_or_infexc_mapdatas         r   readzTrioStream.read   s      *1ug{$$i$$i%

 G$ 	0 $(LL$=$=	$=$RR 	 	R  	 	 	sN   ACC1 B,B*B,	C 
C*B,,B5	1C9	CCCbufferc                   K   |sy |t        d      n|}t        j                  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)Nr   )r)   )r    r!   r"   r
   r#   r	   r$   r   r%   r   send_all)r   r+   r   r'   r(   s        r   writezTrioStream.write%   s      )0ug|$$j$$j%

 G$ 	90 9ll+++8889	9 	989 9	9 	9sH   ACB84 B,B*B,B8!	C*B,,B5	1B88C=Cc                 T   K   | j                   j                          d {    y 7 wr   )r   aclose)r   s    r   r0   zTrioStream.aclose5   s     ll!!###s   (&(ssl_contextserver_hostnamec                   K   |t        d      n|}t        j                  t        t        j                  t
        i}t        j                  | j                  ||dd      }t        |      5  	 t        j                  |      5  |j                          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)Nr   TF)r1   r2   https_compatibleserver_side)r    r!   r"   r   r#   r   	SSLStreamr   r   r%   do_handshake	Exceptionr0   r   )r   r1   r2   r   r'   r(   
ssl_streamexcs           r   	start_tlszTrioStream.start_tls8   s      *1ug~$$l%
 ^^LL#+!

 G$ 	__^4 4$113334	 *%%	 44 4 kkm##			 *%%sr   A)D+C0-CB8B6B8C#D6B88C	=C	C-C( C#!C((C--C00D5Dinfoc                 v   |dk(  r:t        | j                  t        j                        r| j                  j                  S |dk(  r(| j                         j                  j                         S |dk(  r(| j                         j                  j                         S |dk(  ru| j                  }t        |t        j                        r'|j                  }t        |t        j                        r't        |t        j                        sJ |j                  S |dk(  r!| j                  d      }|j                         S y )N
ssl_objectclient_addrserver_addrsocketis_readable)
isinstancer   r!   r6   _ssl_object_get_socket_streamrA   getsocknamegetpeernametransport_streamSocketStreamget_extra_inforB   )r   r<   r   rA   s       r   rJ   zTrioStream.get_extra_infoS   s    <Jt||T^^$L <<+++= **,33??AA= **,33??AA8\\FVT^^400 VT^^4fd&7&7888== = ((2F%%''r   c                     | j                   }t        |t        j                        r'|j                  }t        |t        j                        r't        |t        j
                        sJ |S r   )r   rC   r!   r6   rH   rI   r   s     r   rE   zTrioStream._get_socket_streamg   sO    0,,F 0&$"3"3444r   r   )r   NNN)__name__
__module____qualname__r!   abcStreamr   inttypingOptionalr    bytesr*   r.   r0   ssl
SSLContextstrr   r;   AnyrJ   rI   rE    r   r   r   r      s    txx 4  AE'-u'=	 @D99&,ooe&<9	9 $ 15*.	&^^&  -& '	&
 
&63 6:: (D$5$5 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)TrioBackendNhostportr   local_addresssocket_optionsr   c                   K   |g }|t        d      n|}t        j                  t        t        j                  t
        t        t
        i}t        |      5  t        j                  |      5  t        j                  |||       d {   }|D ]  }	 |j                  |	   	 d d d        d d d        t              S 7 6# 1 sw Y   xY w# 1 sw Y   t              S xY ww)Nr   )r]   r^   r_   )r    r!   r"   r   r#   r   OSErrorr   r%   open_tcp_stream
setsockoptr   )
r   r]   r^   r   r_   r`   r'   r(   r   options
             r   connect_tcpzTrioBackend.connect_tcpp   s      !N)0ug~$$l\%

 G$ 	/0 /040D0DD1 + - /F%F%%v./	/	/ &!!+/ /	/ &!!sH   AC"C+C B>C #C+C">C  C		CCC"pathc                   K   |g }|t        d      n|}t        j                  t        t        j                  t
        t        t
        i}t        |      5  t        j                  |      5  t        j                  |       d {   }|D ]  } |j                  |   	 d d d        d d d        t              S 7 6# 1 sw Y   xY w# 1 sw Y   t              S xY ww)Nr   )r    r!   r"   r   r#   r   rb   r   r%   open_unix_socketrd   r   )r   rg   r   r`   r'   r(   r   re   s           r   connect_unix_socketzTrioBackend.connect_unix_socket   s      !N)0ug~$$l\%

 G$ 	/0 /040E0Ed0K*K, /F%F%%v.//	/
 &!! +L/ /	/
 &!!sH   ACC	+B=B;B= C	(C;B==C	C		CCsecondsc                 J   K   t        j                  |       d {    y 7 wr   )r!   sleep)r   rk   s     r   rm   zTrioBackend.sleep   s     jj!!!s   #!#)NNNrL   )rM   rN   rO   rX   rR   rS   rT   r    Iterabler   r   rf   rj   rm   rZ   r   r   r\   r\   o   s    
 +/.2JN"" " '	"
 s+" (FG" 
"< +/JN	"" '" (FG	"
 
"*"5 "T "r   r\   )rV   rS   r!   _exceptionsr   r   r   r   r   r	   r
   r   baser   r   r   r   r\   rZ   r   r   <module>rq      sC    
  	 	 	 I HY# Yx2"% 2"r   