o
    m=8j8                     @   s  d dl mZ d dl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rAd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Any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                   @   sX  e Zd ZdZefdee ddfddZd<de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    r4   V/home/nk/hobo-godmode/plappi-mvp/.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)r7   )r2   )r3   r7   r4   r4   r5   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-   r.   r/   r0   r1   r3   r4   r4   r5   r9   \   s    














zTraceConfig.freeze'_TracingSignal[TraceRequestStartParams]c                 C      | j S r!   )r"   r:   r4   r4   r5   on_request_startn      zTraceConfig.on_request_start+_TracingSignal[TraceRequestChunkSentParams]c                 C   r<   r!   )r#   r:   r4   r4   r5   on_request_chunk_sentr      z!TraceConfig.on_request_chunk_sent0_TracingSignal[TraceResponseChunkReceivedParams]c                 C   r<   r!   )r$   r:   r4   r4   r5   on_response_chunk_receivedx   rA   z&TraceConfig.on_response_chunk_received%_TracingSignal[TraceRequestEndParams]c                 C   r<   r!   )r%   r:   r4   r4   r5   on_request_end~   r>   zTraceConfig.on_request_end+_TracingSignal[TraceRequestExceptionParams]c                 C   r<   r!   )r&   r:   r4   r4   r5   on_request_exception   rA   z TraceConfig.on_request_exception*_TracingSignal[TraceRequestRedirectParams]c                 C   r<   r!   )r'   r:   r4   r4   r5   on_request_redirect   rA   zTraceConfig.on_request_redirect0_TracingSignal[TraceConnectionQueuedStartParams]c                 C   r<   r!   )r(   r:   r4   r4   r5   on_connection_queued_start   rA   z&TraceConfig.on_connection_queued_start._TracingSignal[TraceConnectionQueuedEndParams]c                 C   r<   r!   )r)   r:   r4   r4   r5   on_connection_queued_end   rA   z$TraceConfig.on_connection_queued_end0_TracingSignal[TraceConnectionCreateStartParams]c                 C   r<   r!   )r*   r:   r4   r4   r5   on_connection_create_start   rA   z&TraceConfig.on_connection_create_start._TracingSignal[TraceConnectionCreateEndParams]c                 C   r<   r!   )r+   r:   r4   r4   r5   on_connection_create_end   rA   z$TraceConfig.on_connection_create_end._TracingSignal[TraceConnectionReuseconnParams]c                 C   r<   r!   )r,   r:   r4   r4   r5   on_connection_reuseconn   rA   z#TraceConfig.on_connection_reuseconn._TracingSignal[TraceDnsResolveHostStartParams]c                 C   r<   r!   )r-   r:   r4   r4   r5   on_dns_resolvehost_start   rA   z$TraceConfig.on_dns_resolvehost_start,_TracingSignal[TraceDnsResolveHostEndParams]c                 C   r<   r!   )r.   r:   r4   r4   r5   on_dns_resolvehost_end   rA   z"TraceConfig.on_dns_resolvehost_end&_TracingSignal[TraceDnsCacheHitParams]c                 C   r<   r!   )r/   r:   r4   r4   r5   on_dns_cache_hit   r>   zTraceConfig.on_dns_cache_hit'_TracingSignal[TraceDnsCacheMissParams]c                 C   r<   r!   )r0   r:   r4   r4   r5   on_dns_cache_miss   r>   zTraceConfig.on_dns_cache_miss-_TracingSignal[TraceRequestHeadersSentParams]c                 C   r<   r!   )r1   r:   r4   r4   r5   on_request_headers_sent   rA   z#TraceConfig.on_request_headers_sentr!   r    N)r    r;   )r    r?   )r    rB   )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\   )__name__
__module____qualname____doc__r   typer6   r   r8   r9   propertyr=   r@   rC   rE   rG   rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   r]   r4   r4   r4   r5   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r_   r`   ra   rb   str__annotations__r   r4   r4   r4   r5   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` signalri   rj   chunkNr_   r`   ra   rb   rn   ro   r   bytesr4   r4   r4   r5   r      rp   r   c                   @   rq   )r   z:Parameters sent by the `on_response_chunk_received` signalri   rj   rr   Nrs   r4   r4   r4   r5   r      rp   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` signalri   rj   rk   rl   responseNr_   r`   ra   rb   rn   ro   r   r
   r4   r4   r4   r5   r         
 r   c                   @   ru   )r   z4Parameters sent by the `on_request_exception` signalri   rj   rk   rl   	exceptionN)r_   r`   ra   rb   rn   ro   r   BaseExceptionr4   r4   r4   r5   r      rx   r   c                   @   ru   )r   z3Parameters sent by the `on_request_redirect` signalri   rj   rk   rl   rv   Nrw   r4   r4   r4   r5   r      rx   r   c                   @      e Zd ZdZdS )r   z:Parameters sent by the `on_connection_queued_start` signalNr_   r`   ra   rb   r4   r4   r4   r5   r          r   c                   @   r{   )r   z8Parameters sent by the `on_connection_queued_end` signalNr|   r4   r4   r4   r5   r     r}   r   c                   @   r{   )r   z:Parameters sent by the `on_connection_create_start` signalNr|   r4   r4   r4   r5   r   
  r}   r   c                   @   r{   )r   z8Parameters sent by the `on_connection_create_end` signalNr|   r4   r4   r4   r5   r     r}   r   c                   @   r{   )r   z7Parameters sent by the `on_connection_reuseconn` signalNr|   r4   r4   r4   r5   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r_   r`   ra   rb   rn   ro   r4   r4   r4   r5   r        
 r   c                   @   r~   )r   z6Parameters sent by the `on_dns_resolvehost_end` signalr   Nr   r4   r4   r4   r5   r      r   r   c                   @   r~   )r   z0Parameters sent by the `on_dns_cache_hit` signalr   Nr   r4   r4   r4   r5   r   '  r   r   c                   @   r~   )r   z1Parameters sent by the `on_dns_cache_miss` signalr   Nr   r4   r4   r4   r5   r   .  r   r   c                   @   rh   )r   z7Parameters sent by the `on_request_headers_sent` signalri   rj   rk   rl   Nrm   r4   r4   r4   r5   r   5  rp   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_configr8   r    Nc                 C   s   || _ || _|| _d S r!   )_trace_config_trace_config_ctx_session)r3   r   r   r8   r4   r4   r5   r6   E  s   
zTrace.__init__ri   rj   rl   rk   c                    &   | j j| j| jt|||I d H S r!   )r   r=   sendr   r   r   r3   ri   rj   rl   r4   r4   r5   send_request_startO     

zTrace.send_request_startrr   c                    r   r!   )r   r@   r   r   r   r   r3   ri   rj   rr   r4   r4   r5   send_request_chunk_sentX  r   zTrace.send_request_chunk_sentc                    r   r!   )r   rC   r   r   r   r   r   r4   r4   r5   send_response_chunk_receiveda  r   z"Trace.send_response_chunk_receivedrv   c              	      (   | j j| j| jt||||I d H S r!   )r   rE   r   r   r   r   r3   ri   rj   rl   rv   r4   r4   r5   send_request_endj     
zTrace.send_request_endry   c              	      r   r!   )r   rG   r   r   r   r   )r3   ri   rj   rl   ry   r4   r4   r5   send_request_exceptionw  r   zTrace.send_request_exceptionc              	      r   r!   )r   r'   r   r   r   r   r   r4   r4   r5   send_request_redirect  r   zTrace.send_request_redirectc                        | j j| j| jt I d H S r!   )r   rK   r   r   r   r   r:   r4   r4   r5   send_connection_queued_start     
z"Trace.send_connection_queued_startc                    r   r!   )r   rM   r   r   r   r   r:   r4   r4   r5   send_connection_queued_end  r   z Trace.send_connection_queued_endc                    r   r!   )r   rO   r   r   r   r   r:   r4   r4   r5   send_connection_create_start  r   z"Trace.send_connection_create_startc                    r   r!   )r   rQ   r   r   r   r   r:   r4   r4   r5   send_connection_create_end  r   z Trace.send_connection_create_endc                    r   r!   )r   rS   r   r   r   r   r:   r4   r4   r5   send_connection_reuseconn  r   zTrace.send_connection_reuseconnr   c                    "   | j j| j| jt|I d H S r!   )r   rU   r   r   r   r   r3   r   r4   r4   r5   send_dns_resolvehost_start     
z Trace.send_dns_resolvehost_startc                    r   r!   )r   rW   r   r   r   r   r   r4   r4   r5   send_dns_resolvehost_end  r   zTrace.send_dns_resolvehost_endc                    r   r!   )r   rY   r   r   r   r   r   r4   r4   r5   send_dns_cache_hit  r   zTrace.send_dns_cache_hitc                    r   r!   )r   r[   r   r   r   r   r   r4   r4   r5   send_dns_cache_miss  r   zTrace.send_dns_cache_missc                    r   r!   )r   r1   r   r   r   r   r   r4   r4   r5   send_request_headers  r   zTrace.send_request_headersr^   )r_   r`   ra   rb   r   r   r6   rn   r   r   rt   r   r   r
   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r4   r4   r4   r5   r   >  s    


	
	
	







r   )'typesr   typingr   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   r4   r4   r4   r5   <module>   s^     !			