
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    '7`8                     @   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rd d	lmZ dd
lmZ edddZG dd dee 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 d0d1 d1Z(G d2d3 d3Z)dS )4    )SimpleNamespace)TYPE_CHECKING	AwaitableOptionalTypeTypeVarN)CIMultiDict)URL   )ClientResponse)Signal)Protocol)ClientSession_ParamT_contraT)Zcontravariantc                   @   s$   e Zd Zeeeed dddZdS )_SignalCallbackN)_SignalCallback__client_session!_SignalCallback__trace_config_ctx_SignalCallback__paramsreturnc                 C   s   d S N )selfr   r   r   r   r   B/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/tracing.py__call__   s    z_SignalCallback.__call__)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r      s
   r   )TraceConfigTraceRequestStartParamsTraceRequestEndParamsTraceRequestExceptionParams TraceConnectionQueuedStartParamsTraceConnectionQueuedEndParams TraceConnectionCreateStartParamsTraceConnectionCreateEndParamsTraceConnectionReuseconnParamsTraceDnsResolveHostStartParamsTraceDnsResolveHostEndParamsTraceDnsCacheHitParamsTraceDnsCacheMissParamsTraceRequestRedirectParamsTraceRequestChunkSentParams TraceResponseChunkReceivedParamsc                   @   sZ  e Zd ZdZefee ddddZd9ee edddZdd	d
dZ	e
dd	ddZe
dd	ddZe
dd	ddZe
dd	ddZe
dd	ddZe
dd	ddZe
dd	dd Ze
d!d	d"d#Ze
d$d	d%d&Ze
d'd	d(d)Ze
d*d	d+d,Ze
d-d	d.d/Ze
d0d	d1d2Ze
d3d	d4d5Ze
d6d	d7d8ZdS ):r   zJFirst-class used to trace requests launched via ClientSession
    objects.N)trace_config_ctx_factoryr   c                 C   s   t | | _t | | _t | | _t | | _t | | _t | | _t | | _t | | _t | | _	t | | _
t | | _t | | _t | | _t | | _t | | _|| _d S r   )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_trace_config_ctx_factory)r   r-   r   r   r   __init__4   s\    zTraceConfig.__init__)trace_request_ctxr   c                 C   s   | j |dS )z( Return a new trace_config_ctx instance )r?   )r=   )r   r?   r   r   r   trace_config_ctxg   s    zTraceConfig.trace_config_ctxr   c                 C   s   | j   | j  | j  | j  | j  | j  | j  | j  | j	  | j
  | j  | j  | j  | j  | j  d S r   )r.   freezer/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r   r   r   r   rB   m   s    













zTraceConfig.freezez0Signal[_SignalCallback[TraceRequestStartParams]]c                 C   s   | j S r   )r.   rC   r   r   r   on_request_start~   s    zTraceConfig.on_request_startz4Signal[_SignalCallback[TraceRequestChunkSentParams]]c                 C   s   | j S r   )r/   rC   r   r   r   on_request_chunk_sent   s    z!TraceConfig.on_request_chunk_sentz9Signal[_SignalCallback[TraceResponseChunkReceivedParams]]c                 C   s   | j S r   )r0   rC   r   r   r   on_response_chunk_received   s    z&TraceConfig.on_response_chunk_receivedz.Signal[_SignalCallback[TraceRequestEndParams]]c                 C   s   | j S r   )r1   rC   r   r   r   on_request_end   s    zTraceConfig.on_request_endz4Signal[_SignalCallback[TraceRequestExceptionParams]]c                 C   s   | j S r   )r2   rC   r   r   r   on_request_exception   s    z TraceConfig.on_request_exceptionz3Signal[_SignalCallback[TraceRequestRedirectParams]]c                 C   s   | j S r   )r3   rC   r   r   r   on_request_redirect   s    zTraceConfig.on_request_redirectz9Signal[_SignalCallback[TraceConnectionQueuedStartParams]]c                 C   s   | j S r   )r4   rC   r   r   r   on_connection_queued_start   s    z&TraceConfig.on_connection_queued_startz7Signal[_SignalCallback[TraceConnectionQueuedEndParams]]c                 C   s   | j S r   )r5   rC   r   r   r   on_connection_queued_end   s    z$TraceConfig.on_connection_queued_endz9Signal[_SignalCallback[TraceConnectionCreateStartParams]]c                 C   s   | j S r   )r6   rC   r   r   r   on_connection_create_start   s    z&TraceConfig.on_connection_create_startz7Signal[_SignalCallback[TraceConnectionCreateEndParams]]c                 C   s   | j S r   )r7   rC   r   r   r   on_connection_create_end   s    z$TraceConfig.on_connection_create_endz7Signal[_SignalCallback[TraceConnectionReuseconnParams]]c                 C   s   | j S r   )r8   rC   r   r   r   on_connection_reuseconn   s    z#TraceConfig.on_connection_reuseconnz7Signal[_SignalCallback[TraceDnsResolveHostStartParams]]c                 C   s   | j S r   )r9   rC   r   r   r   on_dns_resolvehost_start   s    z$TraceConfig.on_dns_resolvehost_startz5Signal[_SignalCallback[TraceDnsResolveHostEndParams]]c                 C   s   | j S r   )r:   rC   r   r   r   on_dns_resolvehost_end   s    z"TraceConfig.on_dns_resolvehost_endz/Signal[_SignalCallback[TraceDnsCacheHitParams]]c                 C   s   | j S r   )r;   rC   r   r   r   on_dns_cache_hit   s    zTraceConfig.on_dns_cache_hitz0Signal[_SignalCallback[TraceDnsCacheMissParams]]c                 C   s   | j S r   )r<   rC   r   r   r   on_dns_cache_miss   s    zTraceConfig.on_dns_cache_miss)N)r   r   r   __doc__r   r   r>   r   r@   rB   propertyrD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r   r   r   r   r   0   sj   4 r   )Zauto_attribsfrozenslotsc                   @   s*   e Zd ZU dZeed< eed< ded< dS )r   z1 Parameters sent by the `on_request_start` signalmethodurlCIMultiDict[str]headersN)r   r   r   rS   str__annotations__r	   r   r   r   r   r      s   
r   c                   @   s*   e Zd ZU dZeed< eed< eed< dS )r+   z6 Parameters sent by the `on_request_chunk_sent` signalrW   rX   chunkNr   r   r   rS   r[   r\   r	   bytesr   r   r   r   r+      s   
r+   c                   @   s*   e Zd ZU dZeed< eed< eed< dS )r,   z; Parameters sent by the `on_response_chunk_received` signalrW   rX   r]   Nr^   r   r   r   r   r,      s   
r,   c                   @   s2   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` signalrW   rX   rY   rZ   responseNr   r   r   rS   r[   r\   r	   r   r   r   r   r   r      s
   
r   c                   @   s2   e Zd ZU dZeed< eed< ded< eed< dS )r    z5 Parameters sent by the `on_request_exception` signalrW   rX   rY   rZ   	exceptionN)r   r   r   rS   r[   r\   r	   BaseExceptionr   r   r   r   r       s
   
r    c                   @   s2   e Zd ZU dZeed< eed< ded< eed< dS )r*   z4 Parameters sent by the `on_request_redirect` signalrW   rX   rY   rZ   r`   Nra   r   r   r   r   r*      s
   
r*   c                   @   s   e Zd ZdZdS )r!   z; Parameters sent by the `on_connection_queued_start` signalNr   r   r   rS   r   r   r   r   r!   
  s   r!   c                   @   s   e Zd ZdZdS )r"   z9 Parameters sent by the `on_connection_queued_end` signalNrd   r   r   r   r   r"     s   r"   c                   @   s   e Zd ZdZdS )r#   z; Parameters sent by the `on_connection_create_start` signalNrd   r   r   r   r   r#     s   r#   c                   @   s   e Zd ZdZdS )r$   z9 Parameters sent by the `on_connection_create_end` signalNrd   r   r   r   r   r$     s   r$   c                   @   s   e Zd ZdZdS )r%   z8 Parameters sent by the `on_connection_reuseconn` signalNrd   r   r   r   r   r%     s   r%   c                   @   s   e Zd ZU dZeed< dS )r&   z9 Parameters sent by the `on_dns_resolvehost_start` signalhostNr   r   r   rS   r[   r\   r   r   r   r   r&   #  s   
r&   c                   @   s   e Zd ZU dZeed< dS )r'   z7 Parameters sent by the `on_dns_resolvehost_end` signalre   Nrf   r   r   r   r   r'   *  s   
r'   c                   @   s   e Zd ZU dZeed< dS )r(   z1 Parameters sent by the `on_dns_cache_hit` signalre   Nrf   r   r   r   r   r(   1  s   
r(   c                   @   s   e Zd ZU dZeed< dS )r)   z2 Parameters sent by the `on_dns_cache_miss` signalre   Nrf   r   r   r   r   r)   8  s   
r)   c                   @   s(  e Zd ZdZdeeddddZeedddd	d
Z	eee
ddddZeee
ddddZeededdddZeededdddZeededdddZddddZddddZddddZdddd Zddd!d"Zedd#d$d%Zedd#d&d'Zedd#d(d)Zedd#d*d+ZdS ),TracezcInternal class used to keep together the main dependencies used
    at the moment of send a signal.r   N)sessiontrace_configr@   r   c                 C   s   || _ || _|| _d S r   )_trace_config_trace_config_ctx_session)r   rh   ri   r@   r   r   r   r>   C  s    zTrace.__init__rY   )rW   rX   rZ   r   c                    s$   | j j| j| jt|||I d H S r   )rj   rD   sendrl   rk   r   )r   rW   rX   rZ   r   r   r   send_request_startM  s
    
zTrace.send_request_start)rW   rX   r]   r   c                    s$   | j j| j| jt|||I d H S r   )rj   rE   rm   rl   rk   r+   r   rW   rX   r]   r   r   r   send_request_chunk_sentV  s
    
zTrace.send_request_chunk_sentc                    s$   | j j| j| jt|||I d H S r   )rj   rF   rm   rl   rk   r,   ro   r   r   r   send_response_chunk_received_  s
    
z"Trace.send_response_chunk_received)rW   rX   rZ   r`   r   c              	      s&   | j j| j| jt||||I d H S r   )rj   rG   rm   rl   rk   r   r   rW   rX   rZ   r`   r   r   r   send_request_endh  s
    zTrace.send_request_end)rW   rX   rZ   rb   r   c              	      s&   | j j| j| jt||||I d H S r   )rj   rH   rm   rl   rk   r    )r   rW   rX   rZ   rb   r   r   r   send_request_exceptionu  s
    zTrace.send_request_exceptionc              	      s&   | j j| j| jt||||I d H S r   )rj   r3   rm   rl   rk   r*   rr   r   r   r   send_request_redirect  s
    zTrace.send_request_redirectrA   c                    s   | j j| j| jt I d H S r   )rj   rJ   rm   rl   rk   r!   rC   r   r   r   send_connection_queued_start  s
      z"Trace.send_connection_queued_startc                    s   | j j| j| jt I d H S r   )rj   rK   rm   rl   rk   r"   rC   r   r   r   send_connection_queued_end  s
      z Trace.send_connection_queued_endc                    s   | j j| j| jt I d H S r   )rj   rL   rm   rl   rk   r#   rC   r   r   r   send_connection_create_start  s
      z"Trace.send_connection_create_startc                    s   | j j| j| jt I d H S r   )rj   rM   rm   rl   rk   r$   rC   r   r   r   send_connection_create_end  s
      z Trace.send_connection_create_endc                    s   | j j| j| jt I d H S r   )rj   rN   rm   rl   rk   r%   rC   r   r   r   send_connection_reuseconn  s
      zTrace.send_connection_reuseconn)re   r   c                    s    | j j| j| jt|I d H S r   )rj   rO   rm   rl   rk   r&   r   re   r   r   r   send_dns_resolvehost_start  s
      z Trace.send_dns_resolvehost_startc                    s    | j j| j| jt|I d H S r   )rj   rP   rm   rl   rk   r'   r{   r   r   r   send_dns_resolvehost_end  s
      zTrace.send_dns_resolvehost_endc                    s    | j j| j| jt|I d H S r   )rj   rQ   rm   rl   rk   r(   r{   r   r   r   send_dns_cache_hit  s
      zTrace.send_dns_cache_hitc                    s    | j j| j| jt|I d H S r   )rj   rR   rm   rl   rk   r)   r{   r   r   r   send_dns_cache_miss  s
      zTrace.send_dns_cache_miss)r   r   r   rS   r   r   r>   r[   r	   rn   r_   rp   rq   r   rs   rc   rt   ru   rv   rw   rx   ry   rz   r|   r}   r~   r   r   r   r   r   rg   ?  s`     
  
  rg   )*typesr   typingr   r   r   r   r   attrZ	multidictr   Zyarlr	   Zclient_reqrepr   Zsignalsr   Ztyping_extensionsr   Zclientr   r   r   __all__r   sr   r+   r,   r   r    r*   r!   r"   r#   r$   r%   r&   r'   r(   r)   rg   r   r   r   r   <module>   sZ   
 "			