o
    Fh8                     @   s  d dl mZ d dlmZmZmZmZmZ d dlZd dl	m
Z
 d dlmZ d dlmZ ddlmZ erEdd	lmZ ed
ddZe
eeef ZdZG dd dZejddddG dd dZejddddG dd dZejddddG dd dZejddddG dd dZejddddG dd dZejddddG dd dZejddddG dd dZejddddG dd  d ZejddddG d!d" d"Z ejddddG d#d$ d$Z!ejddddG d%d& d&Z"ejddddG d'd( d(Z#ejddddG d)d* d*Z$ejddddG d+d, d,Z%ejddddG d-d. d.Z&ejddddG d/d0 d0Z'G d1d2 d2Z(dS )3    )SimpleNamespace)TYPE_CHECKINGMappingOptionalTypeTypeVarN)Signal)CIMultiDict)URL   )ClientResponse)ClientSession_ParamT_contraT)contravariant)TraceConfigTraceRequestStartParamsTraceRequestEndParamsTraceRequestExceptionParams TraceConnectionQueuedStartParamsTraceConnectionQueuedEndParams TraceConnectionCreateStartParamsTraceConnectionCreateEndParamsTraceConnectionReuseconnParamsTraceDnsResolveHostStartParamsTraceDnsResolveHostEndParamsTraceDnsCacheHitParamsTraceDnsCacheMissParamsTraceRequestRedirectParamsTraceRequestChunkSentParams TraceResponseChunkReceivedParamsTraceRequestHeadersSentParamsc                   @   sf  e Zd ZdZefdee ddfddZ	d<deee	e	f  defdd	Z
d=d
dZed>ddZe		d?ddZe		d@ddZedAddZe		dBddZe		dCddZe		dDdd Ze		!dEd"d#Ze		$dFd%d&Ze		'dGd(d)Ze		*dHd+d,Ze		-dId.d/Ze		0dJd1d2ZedKd4d5ZedLd7d8Ze		9dMd:d;ZdS )Nr   zFFirst-class used to trace requests launched via ClientSession objects.trace_config_ctx_factoryreturnNc                 C   s   t | | _t | | _t | | _t | | _t | | _t | | _t | | _t | | _t | | _	t | | _
t | | _t | | _t | | _t | | _t | | _t | | _|| _d S N)r   _on_request_start_on_request_chunk_sent_on_response_chunk_received_on_request_end_on_request_exception_on_request_redirect_on_connection_queued_start_on_connection_queued_end_on_connection_create_start_on_connection_create_end_on_connection_reuseconn_on_dns_resolvehost_start_on_dns_resolvehost_end_on_dns_cache_hit_on_dns_cache_miss_on_request_headers_sent_trace_config_ctx_factory)selfr!    r6   B/var/www/html/venv/lib/python3.10/site-packages/aiohttp/tracing.py__init__*   s<   




zTraceConfig.__init__trace_request_ctxc                 C   s   | j |dS )z&Return a new trace_config_ctx instance)r9   )r4   )r5   r9   r6   r6   r7   trace_config_ctxX   s   zTraceConfig.trace_config_ctxc                 C   s   | j   | j  | j  | j  | j  | j  | j  | j  | j	  | j
  | j  | j  | j  | j  | j  | j  d S r#   )r$   freezer%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r5   r6   r6   r7   r;   ^   s    














zTraceConfig.freeze'_TracingSignal[TraceRequestStartParams]c                 C      | j S r#   )r$   r<   r6   r6   r7   on_request_startp      zTraceConfig.on_request_start+_TracingSignal[TraceRequestChunkSentParams]c                 C   r>   r#   )r%   r<   r6   r6   r7   on_request_chunk_sentt      z!TraceConfig.on_request_chunk_sent0_TracingSignal[TraceResponseChunkReceivedParams]c                 C   r>   r#   )r&   r<   r6   r6   r7   on_response_chunk_receivedz   rC   z&TraceConfig.on_response_chunk_received%_TracingSignal[TraceRequestEndParams]c                 C   r>   r#   )r'   r<   r6   r6   r7   on_request_end   r@   zTraceConfig.on_request_end+_TracingSignal[TraceRequestExceptionParams]c                 C   r>   r#   )r(   r<   r6   r6   r7   on_request_exception   rC   z TraceConfig.on_request_exception*_TracingSignal[TraceRequestRedirectParams]c                 C   r>   r#   )r)   r<   r6   r6   r7   on_request_redirect   rC   zTraceConfig.on_request_redirect0_TracingSignal[TraceConnectionQueuedStartParams]c                 C   r>   r#   )r*   r<   r6   r6   r7   on_connection_queued_start   rC   z&TraceConfig.on_connection_queued_start._TracingSignal[TraceConnectionQueuedEndParams]c                 C   r>   r#   )r+   r<   r6   r6   r7   on_connection_queued_end   rC   z$TraceConfig.on_connection_queued_end0_TracingSignal[TraceConnectionCreateStartParams]c                 C   r>   r#   )r,   r<   r6   r6   r7   on_connection_create_start   rC   z&TraceConfig.on_connection_create_start._TracingSignal[TraceConnectionCreateEndParams]c                 C   r>   r#   )r-   r<   r6   r6   r7   on_connection_create_end   rC   z$TraceConfig.on_connection_create_end._TracingSignal[TraceConnectionReuseconnParams]c                 C   r>   r#   )r.   r<   r6   r6   r7   on_connection_reuseconn   rC   z#TraceConfig.on_connection_reuseconn._TracingSignal[TraceDnsResolveHostStartParams]c                 C   r>   r#   )r/   r<   r6   r6   r7   on_dns_resolvehost_start   rC   z$TraceConfig.on_dns_resolvehost_start,_TracingSignal[TraceDnsResolveHostEndParams]c                 C   r>   r#   )r0   r<   r6   r6   r7   on_dns_resolvehost_end   rC   z"TraceConfig.on_dns_resolvehost_end&_TracingSignal[TraceDnsCacheHitParams]c                 C   r>   r#   )r1   r<   r6   r6   r7   on_dns_cache_hit   r@   zTraceConfig.on_dns_cache_hit'_TracingSignal[TraceDnsCacheMissParams]c                 C   r>   r#   )r2   r<   r6   r6   r7   on_dns_cache_miss   r@   zTraceConfig.on_dns_cache_miss-_TracingSignal[TraceRequestHeadersSentParams]c                 C   r>   r#   )r3   r<   r6   r6   r7   on_request_headers_sent   rC   z#TraceConfig.on_request_headers_sentr#   r"   N)r"   r=   )r"   rA   )r"   rD   )r"   rF   )r"   rH   )r"   rJ   )r"   rL   )r"   rN   )r"   rP   )r"   rR   )r"   rT   )r"   rV   )r"   rX   )r"   rZ   )r"   r\   )r"   r^   )__name__
__module____qualname____doc__r   r   r8   r   r   strr:   r;   propertyr?   rB   rE   rG   rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   r]   r_   r6   r6   r6   r7   r   '   s    
/

r   )auto_attribsfrozenslotsc                   @   *   e Zd ZU dZeed< eed< ded< dS )r   z0Parameters sent by the `on_request_start` signalmethodurlCIMultiDict[str]headersNra   rb   rc   rd   re   __annotations__r
   r6   r6   r6   r7   r      
   
 r   c                   @   *   e Zd ZU dZeed< eed< eed< dS )r   z5Parameters sent by the `on_request_chunk_sent` signalrk   rl   chunkNra   rb   rc   rd   re   rp   r
   bytesr6   r6   r6   r7   r      rq   r   c                   @   rr   )r   z:Parameters sent by the `on_response_chunk_received` signalrk   rl   rs   Nrt   r6   r6   r6   r7   r      rq   r   c                   @   2   e Zd ZU dZeed< eed< ded< eed< dS )r   z.Parameters sent by the `on_request_end` signalrk   rl   rm   rn   responseNra   rb   rc   rd   re   rp   r
   r   r6   r6   r6   r7   r         
 r   c                   @   rv   )r   z4Parameters sent by the `on_request_exception` signalrk   rl   rm   rn   	exceptionN)ra   rb   rc   rd   re   rp   r
   BaseExceptionr6   r6   r6   r7   r      ry   r   c                   @   rv   )r   z3Parameters sent by the `on_request_redirect` signalrk   rl   rm   rn   rw   Nrx   r6   r6   r6   r7   r      ry   r   c                   @      e Zd ZdZdS )r   z:Parameters sent by the `on_connection_queued_start` signalNra   rb   rc   rd   r6   r6   r6   r7   r         r   c                   @   r|   )r   z8Parameters sent by the `on_connection_queued_end` signalNr}   r6   r6   r6   r7   r     r~   r   c                   @   r|   )r   z:Parameters sent by the `on_connection_create_start` signalNr}   r6   r6   r6   r7   r     r~   r   c                   @   r|   )r   z8Parameters sent by the `on_connection_create_end` signalNr}   r6   r6   r6   r7   r     r~   r   c                   @   r|   )r   z7Parameters sent by the `on_connection_reuseconn` signalNr}   r6   r6   r6   r7   r     r~   r   c                   @      e Zd ZU dZeed< dS )r   z8Parameters sent by the `on_dns_resolvehost_start` signalhostNra   rb   rc   rd   re   rp   r6   r6   r6   r7   r        
 r   c                   @   r   )r   z6Parameters sent by the `on_dns_resolvehost_end` signalr   Nr   r6   r6   r6   r7   r   "  r   r   c                   @   r   )r   z0Parameters sent by the `on_dns_cache_hit` signalr   Nr   r6   r6   r6   r7   r   )  r   r   c                   @   r   )r   z1Parameters sent by the `on_dns_cache_miss` signalr   Nr   r6   r6   r6   r7   r   0  r   r   c                   @   rj   )r    z7Parameters sent by the `on_request_headers_sent` signalrk   rl   rm   rn   Nro   r6   r6   r6   r7   r    7  rq   r    c                
   @   sf  e Zd ZdZdddededdfdd	Zd
ededdddfddZ	d
edede
ddfddZd
edede
ddfddZd
ededddeddf
ddZd
ededddeddf
ddZd
ededddeddf
ddZd2ddZd2dd Zd2d!d"Zd2d#d$Zd2d%d&Zd'eddfd(d)Zd'eddfd*d+Zd'eddfd,d-Zd'eddfd.d/Zd
ededdddfd0d1ZdS )3TracezInternal dependency holder class.

    Used to keep together the main dependencies used
    at the moment of send a signal.
    sessionr   trace_configr:   r"   Nc                 C   s   || _ || _|| _d S r#   )_trace_config_trace_config_ctx_session)r5   r   r   r:   r6   r6   r7   r8   G  s   
zTrace.__init__rk   rl   rn   rm   c                    &   | j j| j| jt|||I d H S r#   )r   r?   sendr   r   r   r5   rk   rl   rn   r6   r6   r7   send_request_startQ     

zTrace.send_request_startrs   c                    r   r#   )r   rB   r   r   r   r   r5   rk   rl   rs   r6   r6   r7   send_request_chunk_sentZ  r   zTrace.send_request_chunk_sentc                    r   r#   )r   rE   r   r   r   r   r   r6   r6   r7   send_response_chunk_receivedc  r   z"Trace.send_response_chunk_receivedrw   c              	      (   | j j| j| jt||||I d H S r#   )r   rG   r   r   r   r   r5   rk   rl   rn   rw   r6   r6   r7   send_request_endl     
zTrace.send_request_endrz   c              	      r   r#   )r   rI   r   r   r   r   )r5   rk   rl   rn   rz   r6   r6   r7   send_request_exceptiony  r   zTrace.send_request_exceptionc              	      r   r#   )r   r)   r   r   r   r   r   r6   r6   r7   send_request_redirect  r   zTrace.send_request_redirectc                        | j j| j| jt I d H S r#   )r   rM   r   r   r   r   r<   r6   r6   r7   send_connection_queued_start     
z"Trace.send_connection_queued_startc                    r   r#   )r   rO   r   r   r   r   r<   r6   r6   r7   send_connection_queued_end  r   z Trace.send_connection_queued_endc                    r   r#   )r   rQ   r   r   r   r   r<   r6   r6   r7   send_connection_create_start  r   z"Trace.send_connection_create_startc                    r   r#   )r   rS   r   r   r   r   r<   r6   r6   r7   send_connection_create_end  r   z Trace.send_connection_create_endc                    r   r#   )r   rU   r   r   r   r   r<   r6   r6   r7   send_connection_reuseconn  r   zTrace.send_connection_reuseconnr   c                    "   | j j| j| jt|I d H S r#   )r   rW   r   r   r   r   r5   r   r6   r6   r7   send_dns_resolvehost_start     
z Trace.send_dns_resolvehost_startc                    r   r#   )r   rY   r   r   r   r   r   r6   r6   r7   send_dns_resolvehost_end  r   zTrace.send_dns_resolvehost_endc                    r   r#   )r   r[   r   r   r   r   r   r6   r6   r7   send_dns_cache_hit  r   zTrace.send_dns_cache_hitc                    r   r#   )r   r]   r   r   r   r   r   r6   r6   r7   send_dns_cache_miss  r   zTrace.send_dns_cache_missc                    r   r#   )r   r3   r   r   r   r    r   r6   r6   r7   send_request_headers  r   zTrace.send_request_headersr`   )ra   rb   rc   rd   r   r   r8   re   r
   r   ru   r   r   r   r   r{   r   r   r   r   r   r   r   r   r   r   r   r   r6   r6   r6   r7   r   @  s    


	
	
	







r   ))typesr   typingr   r   r   r   r   attr	aiosignalr   	multidictr	   yarlr
   client_reqrepr   clientr   r   _TracingSignal__all__r   sr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r6   r6   r6   r7   <module>   s^     #			