U
    ;g!;                     @   s  d dl mZ d dlmZmZ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 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 d/d0 d0Z(e
jddddG d1d2 d2Z)G d3d4 d4Z*dS )5    )SimpleNamespace)TYPE_CHECKING	AwaitableMappingOptionalProtocolTypeTypeVarN)Signal)CIMultiDict)URL   )ClientResponse)ClientSession_ParamT_contraT)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   O/opt/bot/vods_filmes/script/venv/lib/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 TraceResponseChunkReceivedParamsTraceRequestHeadersSentParamsc                   @   st  e Zd ZdZefee ddddZd<eee	e	f  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ed9d	d:d;ZdS )=r   zFFirst-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 | | _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_on_request_headers_sent_trace_config_ctx_factory)r   r0   r   r   r   __init__1   sD    zTraceConfig.__init__)trace_request_ctxr   c                 C   s   | j |dS )z&Return a new trace_config_ctx instance)rC   )rA   )r   rC   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  | j  d S r   )r1   freezer2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r   r   r   r   rF   m   s     














zTraceConfig.freezez0Signal[_SignalCallback[TraceRequestStartParams]]c                 C   s   | j S r   )r1   rG   r   r   r   on_request_start   s    zTraceConfig.on_request_startz4Signal[_SignalCallback[TraceRequestChunkSentParams]]c                 C   s   | j S r   )r2   rG   r   r   r   on_request_chunk_sent   s    z!TraceConfig.on_request_chunk_sentz9Signal[_SignalCallback[TraceResponseChunkReceivedParams]]c                 C   s   | j S r   )r3   rG   r   r   r   on_response_chunk_received   s    z&TraceConfig.on_response_chunk_receivedz.Signal[_SignalCallback[TraceRequestEndParams]]c                 C   s   | j S r   )r4   rG   r   r   r   on_request_end   s    zTraceConfig.on_request_endz4Signal[_SignalCallback[TraceRequestExceptionParams]]c                 C   s   | j S r   )r5   rG   r   r   r   on_request_exception   s    z TraceConfig.on_request_exceptionz3Signal[_SignalCallback[TraceRequestRedirectParams]]c                 C   s   | j S r   )r6   rG   r   r   r   on_request_redirect   s    zTraceConfig.on_request_redirectz9Signal[_SignalCallback[TraceConnectionQueuedStartParams]]c                 C   s   | j S r   )r7   rG   r   r   r   on_connection_queued_start   s    z&TraceConfig.on_connection_queued_startz7Signal[_SignalCallback[TraceConnectionQueuedEndParams]]c                 C   s   | j S r   )r8   rG   r   r   r   on_connection_queued_end   s    z$TraceConfig.on_connection_queued_endz9Signal[_SignalCallback[TraceConnectionCreateStartParams]]c                 C   s   | j S r   )r9   rG   r   r   r   on_connection_create_start   s    z&TraceConfig.on_connection_create_startz7Signal[_SignalCallback[TraceConnectionCreateEndParams]]c                 C   s   | j S r   )r:   rG   r   r   r   on_connection_create_end   s    z$TraceConfig.on_connection_create_endz7Signal[_SignalCallback[TraceConnectionReuseconnParams]]c                 C   s   | j S r   )r;   rG   r   r   r   on_connection_reuseconn   s    z#TraceConfig.on_connection_reuseconnz7Signal[_SignalCallback[TraceDnsResolveHostStartParams]]c                 C   s   | j S r   )r<   rG   r   r   r   on_dns_resolvehost_start   s    z$TraceConfig.on_dns_resolvehost_startz5Signal[_SignalCallback[TraceDnsResolveHostEndParams]]c                 C   s   | j S r   )r=   rG   r   r   r   on_dns_resolvehost_end   s    z"TraceConfig.on_dns_resolvehost_endz/Signal[_SignalCallback[TraceDnsCacheHitParams]]c                 C   s   | j S r   )r>   rG   r   r   r   on_dns_cache_hit   s    zTraceConfig.on_dns_cache_hitz0Signal[_SignalCallback[TraceDnsCacheMissParams]]c                 C   s   | j S r   )r?   rG   r   r   r   on_dns_cache_miss   s    zTraceConfig.on_dns_cache_missz6Signal[_SignalCallback[TraceRequestHeadersSentParams]]c                 C   s   | j S r   )r@   rG   r   r   r   on_request_headers_sent   s    z#TraceConfig.on_request_headers_sent)N)r   r   r   __doc__r   r   rB   r   r   strrD   rF   propertyrH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   r   r   r   r   r   .   sp   7 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    z0Parameters sent by the `on_request_start` signalmethodurlCIMultiDict[str]headersNr   r   r   rX   rY   __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-   z5Parameters sent by the `on_request_chunk_sent` signalr]   r^   chunkNr   r   r   rX   rY   rb   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` signalr]   r^   rc   Nrd   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` signalr]   r^   r_   r`   responseNr   r   r   rX   rY   rb   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"   z4Parameters sent by the `on_request_exception` signalr]   r^   r_   r`   	exceptionN)r   r   r   rX   rY   rb   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,   z3Parameters sent by the `on_request_redirect` signalr]   r^   r_   r`   rf   Nrg   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   rX   r   r   r   r   r#     s   r#   c                   @   s   e Zd ZdZdS )r$   z8Parameters sent by the `on_connection_queued_end` signalNrj   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` signalNrj   r   r   r   r   r%     s   r%   c                   @   s   e Zd ZdZdS )r&   z8Parameters sent by the `on_connection_create_end` signalNrj   r   r   r   r   r&      s   r&   c                   @   s   e Zd ZdZdS )r'   z7Parameters sent by the `on_connection_reuseconn` signalNrj   r   r   r   r   r'   %  s   r'   c                   @   s   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   r   rX   rY   rb   r   r   r   r   r(   *  s   
r(   c                   @   s   e Zd ZU dZeed< dS )r)   z6Parameters sent by the `on_dns_resolvehost_end` signalrk   Nrl   r   r   r   r   r)   1  s   
r)   c                   @   s   e Zd ZU dZeed< dS )r*   z0Parameters sent by the `on_dns_cache_hit` signalrk   Nrl   r   r   r   r   r*   8  s   
r*   c                   @   s   e Zd ZU dZeed< dS )r+   z1Parameters sent by the `on_dns_cache_miss` signalrk   Nrl   r   r   r   r   r+   ?  s   
r+   c                   @   s*   e Zd ZU dZeed< eed< ded< dS )r/   z7Parameters sent by the `on_request_headers_sent` signalr]   r^   r_   r`   Nra   r   r   r   r   r/   F  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eedddd,d-ZdS ).TracezInternal dependency holder class.

    Used to keep together the main dependencies used
    at the moment of send a signal.
    r   N)sessiontrace_configrD   r   c                 C   s   || _ || _|| _d S r   )_trace_config_trace_config_ctx_session)r   rn   ro   rD   r   r   r   rB   V  s    zTrace.__init__r_   )r]   r^   r`   r   c                    s$   | j j| j| jt|||I d H S r   )rp   rH   sendrr   rq   r    r   r]   r^   r`   r   r   r   send_request_start`  s
    
zTrace.send_request_start)r]   r^   rc   r   c                    s$   | j j| j| jt|||I d H S r   )rp   rI   rs   rr   rq   r-   r   r]   r^   rc   r   r   r   send_request_chunk_senti  s
    
zTrace.send_request_chunk_sentc                    s$   | j j| j| jt|||I d H S r   )rp   rJ   rs   rr   rq   r.   rv   r   r   r   send_response_chunk_receivedr  s
    
z"Trace.send_response_chunk_received)r]   r^   r`   rf   r   c              	      s&   | j j| j| jt||||I d H S r   )rp   rK   rs   rr   rq   r!   r   r]   r^   r`   rf   r   r   r   send_request_end{  s
    zTrace.send_request_end)r]   r^   r`   rh   r   c              	      s&   | j j| j| jt||||I d H S r   )rp   rL   rs   rr   rq   r"   )r   r]   r^   r`   rh   r   r   r   send_request_exception  s
    zTrace.send_request_exceptionc              	      s&   | j j| j| jt||||I d H S r   )rp   r6   rs   rr   rq   r,   ry   r   r   r   send_request_redirect  s
    zTrace.send_request_redirectrE   c                    s   | j j| j| jt I d H S r   )rp   rN   rs   rr   rq   r#   rG   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   )rp   rO   rs   rr   rq   r$   rG   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   )rp   rP   rs   rr   rq   r%   rG   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   )rp   rQ   rs   rr   rq   r&   rG   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   )rp   rR   rs   rr   rq   r'   rG   r   r   r   send_connection_reuseconn  s
      zTrace.send_connection_reuseconn)rk   r   c                    s    | j j| j| jt|I d H S r   )rp   rS   rs   rr   rq   r(   r   rk   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   )rp   rT   rs   rr   rq   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   )rp   rU   rs   rr   rq   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   )rp   rV   rs   rr   rq   r+   r   r   r   r   send_dns_cache_miss  s
      zTrace.send_dns_cache_missc                    s$   | j j| j| jt|||I d H S r   )rp   r@   rs   rr   rq   r/   rt   r   r   r   send_request_headers  s
    
zTrace.send_request_headers)r   r   r   rX   r   r   rB   rY   r   ru   re   rw   rx   r   rz   ri   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   rm   O  sj     
  
    rm   )+typesr   typingr   r   r   r   r   r   r	   attrZ	aiosignalr
   Z	multidictr   Zyarlr   Zclient_reqrepr   clientr   r   r   __all__r   sr    r-   r.   r!   r"   r,   r#   r$   r%   r&   r'   r(   r)   r*   r+   r/   rm   r   r   r   r   <module>   s\   $	 +			