
    +h4                       d dl m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ddl	m
Z
 ddlmZmZmZmZmZ ddlmZmZmZ ddlmZmZ ddlmZ d	d
lmZ  ej8                  d      Zej<                  ej&                  ej>                  ej@                  f   Z! G d dejD                        Z# G d de      Z$ G d d      Z% G d de
      Z&y)    )annotationsN   )NetworkStream)ConnectionNotAvailableLocalProtocolErrorRemoteProtocolError
WriteErrormap_exceptions)OriginRequestResponse)LockShieldCancellation)Trace   )ConnectionInterfacezhttpcore.http11c                      e Zd ZdZdZdZdZy)HTTPConnectionStater   r   r      N)__name__
__module____qualname__NEWACTIVEIDLECLOSED     H/var/www/html/venv/lib/python3.12/site-packages/httpcore/_sync/http11.pyr   r   $   s    
CFDFr   r   c                      e Zd ZdZdZ	 d	 	 	 	 	 	 	 ddZddZddZddZdddZ		 	 	 	 dd	Z
	 	 	 	 dd
Z	 d	 	 	 ddZddZddZd dZd!dZd!dZd!dZd!dZd"dZd"dZd#dZ	 	 	 d$	 	 	 	 	 	 	 d%dZy)&HTTP11Connectioni   i  Nc                    || _         || _        || _        d | _        t        j
                  | _        t               | _        d| _	        t        j                  t        j                  | j                        | _        y )Nr   )our_rolemax_incomplete_event_size)_origin_network_stream_keepalive_expiry
_expire_atr   r   _stater   _state_lock_request_counth11
ConnectionCLIENTMAX_INCOMPLETE_EVENT_SIZE
_h11_state)selforiginstreamkeepalive_expirys       r   __init__zHTTP11Connection.__init__/   sa     %/?(,)--6..ZZ&*&D&D
r   c           	        | j                  |j                  j                        s/t        d|j                  j                   d| j                         | j
                  5  | j                  t        j                  t        j                  fv r2| xj                  dz  c_
        t        j                  | _        d | _        n
t               	 d d d        	 d|i}	 t        dt        ||      5 } | j                   di | d d d        t        dt        ||      5 } | j"                  di | d d d        t        dt        ||      5 } | j&                  di |\  }}}}}||||f|_        d d d        | j*                  }	dk(  s|j,                  d	k(  rd
|cxk  rdk  rn nt/        |	      }	t1        |t3        | |      |	d      S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# t$        $ r Y w xY w# 1 sw Y   xY w# t4        $ r^}
t7               5  t        dt        |      5 }| j9                          d d d        n# 1 sw Y   nxY wd d d        |
# 1 sw Y   |
xY wd }
~
ww xY w)NzAttempted to send request to z on connection to r   requestsend_request_headerssend_request_bodyreceive_response_headerse   s   CONNECT   i,  )http_versionreason_phrasenetwork_stream)statusheaderscontent
extensionsresponse_closedr   )can_handle_requesturlr2   RuntimeErrorr%   r*   r)   r   r   r   r+   r   r(   r   r   logger_send_request_headers_send_request_bodyr	   _receive_response_headersreturn_valuer&   methodHTTP11UpgradeStreamr   HTTP11ConnectionByteStreamBaseExceptionr   _response_closed)r1   r7   kwargstracer=   r@   r>   rA   trailing_datar?   excs              r   handle_requestzHTTP11Connection.handle_requestA   s   &&w{{'9'9:/0B0B/C Dll^% 
  	/{{2668K8P8PQQ##q(#188"&,..  		/8	)F*FGV 9.D..889 .H 6E+D++5f56 *FGV  3D22<V< !! !!	&"" "11N #:-C64GC4G!4^]!S24A$0%2&4		 	e	/ 	/9 96 6   F  	#% ,,fg> ,%))+, , ,, I, I		s   !A)GH G, +G>G, G +G, 3H $G;)AH GGG,  G)%G, ,	G85H 7G88H ;H H 	I.
I)I,I=	III
I)I&	!I))I.c                n   |j                   j                  di       }|j                  dd       }t        t        j                  t        i      5  t        j
                  |j                  |j                  j                  |j                        }d d d        | j                  |       y # 1 sw Y   xY w)Ntimeoutwrite)rM   targetrA   rX   )rC   getr
   r,   r   r   rM   rF   rZ   rA   _send_eventr1   r7   timeoutsrX   events        r   rI   z&HTTP11Connection._send_request_headers   s    %%)))R8,,w-S335GHI 	KK~~{{))E	 	0	 	s   AB++B4c                j   |j                   j                  di       }|j                  dd       }t        |j                  t        j
                        sJ |j                  D ]+  }t        j                  |      }| j                  ||       - | j                  t        j                         |       y )NrX   rY   )datar[   )
rC   r\   
isinstancer3   typingIterabler,   Datar]   EndOfMessage)r1   r7   r_   rX   chunkr`   s         r   rJ   z#HTTP11Connection._send_request_body   s    %%)))R8,,w-'..&//:::^^ 	5EHH%(EUG4	5 	))+W=r   c                z    | j                   j                  |      }|| j                  j                  ||       y y )Nr[   )r0   sendr&   rY   )r1   r`   rX   bytes_to_sends       r   r]   zHTTP11Connection._send_event   s:    ,,U3$  &&}g&F %r   c                   |j                   j                  di       }|j                  dd       }	 | j                  |      }t        |t        j
                        rn+t        |t        j                        r|j                  dk(  rnXd|j                  z   }|j                  j                         }| j                  j                  \  }}||j                  |j                  ||fS )NrX   readr[   r;   s   HTTP/)rC   r\   _receive_eventrc   r,   r   InformationalResponsestatus_coder=   rA   	raw_itemsr0   rT   reason)	r1   r7   r_   rX   r`   r=   rA   rT   _s	            r   rK   z*HTTP11Connection._receive_response_headers   s     %%)))R8,,vt,'''8E%.5#";";<%%,   %"4"44 --))+??88qU..g}TTr   c              #  H  K   |j                   j                  di       }|j                  dd       }	 | j                  |      }t        |t        j
                        rt        |j                         n+t        |t        j                  t        j                  f      ry pw)NrX   rm   r[   )
rC   r\   rn   rc   r,   rf   bytesrb   rg   PAUSEDr^   s        r   _receive_response_bodyz'HTTP11Connection._receive_response_body   s      %%)))R8,,vt,'''8E%*EJJ''EC$4$4cjj#AB s   B B"c                   	 t        t        j                  t        i      5  | j                  j	                         }d d d        t        j
                  u r|| j                  j                  | j                  |      }|dk(  r4| j                  j                  t        j                  k(  rd}t        |      | j                  j                  |       n|S # 1 sw Y   xY w)Nr[   r   z/Server disconnected without sending a response.)r
   r,   r   r0   
next_event	NEED_DATAr&   rm   READ_NUM_BYTEStheir_stateSEND_RESPONSEreceive_data)r1   rX   r`   rb   msgs        r   rn   zHTTP11Connection._receive_event   s     !8!8:M NO 52245 %++00'' 1  3;4??#>#>#BSBS#SKC-c22,,T2 1 5 5s   CCc                   | j                   5  | j                  j                  t        j                  u r| j                  j
                  t        j                  u rdt        j                  | _        | j                  j                          | j                  9t        j                         }|| j                  z   | _        n| j                          d d d        y # 1 sw Y   y xY wN)r*   r0   	our_stater,   DONEr|   r   r   r)   start_next_cycler'   time	monotonicr(   close)r1   nows     r   rQ   z!HTTP11Connection._response_closed   s     	))SXX5OO//388;166002))5..*C&)D,B,B&BDO

	 	 	s   CCC c                b    t         j                  | _        | j                  j	                          y r   )r   r   r)   r&   r   r1   s    r   r   zHTTP11Connection.close   s#     *00""$r   c                     || j                   k(  S r   )r%   r1   r2   s     r   rE   z#HTTP11Connection.can_handle_request  s    %%r   c                <    | j                   t        j                  k(  S r   r)   r   r   r   s    r   is_availablezHTTP11Connection.is_available  s    
 {{16666r   c                    t        j                         }| j                  d uxr || j                  kD  }| j                  t        j
                  k(  xr | j                  j                  d      }|xs |S )Nis_readable)r   r   r(   r)   r   r   r&   get_extra_info)r1   r   keepalive_expiredserver_disconnecteds       r   has_expiredzHTTP11Connection.has_expired  sm    nn OO47QC$//<Q KK.333 C$$33MB 	
 !7$77r   c                <    | j                   t        j                  k(  S r   r   r   s    r   is_idlezHTTP11Connection.is_idle   s    {{16666r   c                <    | j                   t        j                  k(  S r   )r)   r   r   r   s    r   	is_closedzHTTP11Connection.is_closed#  s    {{18888r   c                |    t        | j                        }|d| j                  j                   d| j                   S )Nz, HTTP/1.1, , Request Count: )strr%   r)   namer+   r   s     r   infozHTTP11Connection.info&  sA    T\\"jT[[%5%5$6 7"1124	
r   c           	         | j                   j                  }t        | j                        }d| d|d| j                  j
                   d| j                   d	S )N<z [z, r   z]>)	__class__r   r   r%   r)   r   r+   )r1   
class_namer2   s      r   __repr__zHTTP11Connection.__repr__-  sZ    ^^,,
T\\"
|2fZr$++*:*:); <"112"6	
r   c                    | S r   r   r   s    r   	__enter__zHTTP11Connection.__enter__8  s    r   c                $    | j                          y r   )r   )r1   exc_type	exc_value	tracebacks       r   __exit__zHTTP11Connection.__exit__;  s     	

r   r   )r2   r   r3   r   r4   float | NonereturnNone)r7   r   r   r   )r7   r   r   r   )r`   z	h11.EventrX   r   r   r   )r7   r   r   z:tuple[bytes, int, bytes, list[tuple[bytes, bytes]], bytes])r7   r   r   typing.Iterator[bytes])rX   r   r   zh11.Event | type[h11.PAUSED]r   r   )r2   r   r   bool)r   r   )r   r   )r   r!   )NNN)r   ztype[BaseException] | Noner   zBaseException | Noner   ztypes.TracebackType | Noner   r   )r   r   r   r{   r/   r5   rV   rI   rJ   r]   rK   rw   rn   rQ   r   rE   r   r   r   r   r   r   r   r   r   r   r   r!   r!   +   s   N * *.	

 
 '	

 

$GV
1	>GUU	CU4	 '+#	%: %&7879


 04*.04	, ( .	
 
r   r!   c                  $    e Zd ZddZddZddZy)rO   c                .    || _         || _        d| _        y )NF)_connection_request_closed)r1   
connectionr7   s      r   r5   z#HTTP11ConnectionByteStream.__init__E  s    %r   c              #  ^  K   d| j                   i}	 t        dt        | j                   |      5   | j                  j                  di |D ]  }|  	 d d d        y # 1 sw Y   y xY w# t
        $ r7}t               5  | j                          d d d        |# 1 sw Y   |xY wd }~ww xY ww)Nr7   receive_response_bodyr   )r   r   rH   r   rw   rP   r   r   )r1   rR   rh   rU   s       r   __iter__z#HTTP11ConnectionByteStream.__iter__J  s     T]]+
	.vN  DT--DDNvN  EK        	 $% 

II	sc   B-A* &AA* B-A'#A* &B-'A* *	B*3
B%=B
B%B"	B%%B**B-c                    | j                   sFd| _         t        dt        | j                        5  | j                  j                          d d d        y y # 1 sw Y   y xY w)NTrD   )r   r   rH   r   r   rQ   r   s    r   r   z HTTP11ConnectionByteStream.closeX  sR    ||DL(&$--@ 4  1134 4 4 4s   AAN)r   r!   r7   r   r   r   )r   r   r   )r   r   r   r5   r   r   r   r   r   rO   rO   D  s    
4r   rO   c                  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)rN   c                     || _         || _        y r   )_stream_leading_data)r1   r3   leading_datas      r   r5   zHTTP11UpgradeStream.__init__`  s    )r   Nc                    | j                   r%| j                   d | }| j                   |d  | _         |S | j                  j                  ||      S r   )r   r   rm   )r1   	max_bytesrX   buffers       r   rm   zHTTP11UpgradeStream.readd  sN    ''
3F!%!3!3IJ!?DM<<$$Y88r   c                <    | j                   j                  ||       y r   )r   rY   )r1   r   rX   s      r   rY   zHTTP11UpgradeStream.writel  s    67+r   c                8    | j                   j                          y r   )r   r   r   s    r   r   zHTTP11UpgradeStream.closeo  s    r   c                <    | j                   j                  |||      S r   )r   	start_tls)r1   ssl_contextserver_hostnamerX   s       r   r   zHTTP11UpgradeStream.start_tlsr  s     ||%%k?GLLr   c                8    | j                   j                  |      S r   )r   r   )r1   r   s     r   r   z"HTTP11UpgradeStream.get_extra_infoz  s    ||**400r   )r3   r   r   ru   r   r   r   )r   intrX   r   r   ru   )r   ru   rX   r   r   r   r   )NN)r   zssl.SSLContextr   z
str | NonerX   r   r   r   )r   r   r   z
typing.Any)	r   r   r   r5   rm   rY   r   r   r   r   r   r   rN   rN   _  sS    *9, '+ $	M#M $M 	M
 
M1r   rN   )'
__future__r   enumloggingsslr   typesrd   r,   _backends.baser   _exceptionsr   r   r   r	   r
   _modelsr   r   r   _synchronizationr   r   _tracer   
interfacesr   	getLoggerrH   Unionrf   rg   H11SendEventIntEnumr   r!   rO   rN   r   r   r   <module>r      s    "   
    
 *  0 / 7  +			,	- ||KKHH$,, V* Vr4 461- 1r   