
    'j$                     @   d dl Z d dlZd dlZd dl mZ 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 d d	lmZ d d
lmZ d dlmZ defdZdede	e         fdZdddee         de dede!de!dedeee                  dee!ef         fdZ"dS )    N)AbstractEventLoop)Logger)OptionalBinaryIODictSequenceUnionListAny)ClientSession)SlackApiError)$_build_unexpected_body_error_message)AsyncRetryHandler)HttpRequest)HttpResponse)
RetryStatereturnc                      	 t          j                    S # t          $ r, t          j                    } t          j        |            | cY S w xY w)z.Retrieves the event loop or creates a new one.)asyncioget_event_loopRuntimeErrornew_event_loopset_event_loop)loops    c/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/slack_sdk/web/async_internal_utils.py_get_event_loopr      sY    %'''   %''t$$$s    3A
Areq_argsc                    g }|                      dd           }||                                D ]\  }}t          |t                    rWt	          |                    dd          d          }|                    |           | d                             ||i           q| d                             ||i           |S )Nfileszutf-8ignorerbdata)popitems
isinstancestropenencodeappendupdate)r   
open_filesr   kvfs         r   _files_to_datar/      s    JLL$''EKKMM 	0 	0DAq!S!! 0'844d;;!!!$$$ ''A//// ''A////    )retry_handlerscurrent_sessiontimeoutlogger	http_verbapi_urlr1   c                   K   ||ng }d}| o| j          }|r| }n=t          j        t          j        |          |                    dd                    }d}	d}
	 t          |||                    di           |                    d          |                    d                    }t                      }d	}|d
k     r|dz  }d|_        d}|j	        t          j        k    rdt          dt          fd}d |                    di                                           D             }|                    d| d| d ||                    dd                     d ||                    dd                     d ||                    dd                     d ||                    dd                     d ||                    dd                     d|            	  |j        ||fi |4 d{V }i }|j        dk    r8|                                 d{V }t%          |j        |j        |          }nC|j        dk    r8|                                 d{V }t%          |j        |j        |          }n 	 |                                 d{V }t%          |j        |j        |           }n# t          j        $ r7 |                    d!| d"           t%          |j        |j        #          }Y nt,          j        j        $ rm 	 |                                 d{V }t5          |          }t7          ||          # t8          $ r%}t7          d$t;          |           |          d}~ww xY ww xY w|j	        t          j        k    rcd%}t=          |t                    st=          |t:                    r|}|                    d&|j         dt          |j                   d'|            |D ]}|                    |||(           d{V re|j	        t          j        k    r0|                     d)tC          |          j"         d*| d|            |#                    |||(           d{V   n|j        du rA||j        |j        d+}|cddd          d{V  |s|$                                 d{V  S S 	 ddd          d{V  n# 1 d{V swxY w Y   n# t8          $ r}|}	|D ]}|                    ||||,           d{V ri|j	        t          j        k    r3|                     d)tC          |          j"         d*| d| d-|            |#                    ||||,           d{V   n|j        du r|	Y d}~nd}~ww xY w|d
k     |
|
|s|$                                 d{V  S S |	# |s|$                                 d{V  w w xY w).zSubmit the HTTP request with the running session or a new session.
    Returns:
        A dictionary of the response data.
    N)totalauth)r3   r9   headersparamsr"   )methodurlr:   body_paramsr"   r   d      Fvaluesr   c                 p    | rt          | t                    si S d |                                 D             S )Nc                 H    i | ]\  }}|t          |t                    rd n| S )z(bytes))r%   bytes.0r,   r-   s      r   
<dictcomp>zA_request_with_session.<locals>.convert_params.<locals>.<dictcomp>^   s2    eeedaQRAZ5-A-A H		qeeer0   )r%   dictr$   )rA   s    r   convert_paramsz-_request_with_session.<locals>.convert_params[   sA    ! "FD)A)A "!	eeV\VbVbVdVdeeeer0   c                 N    i | ]"\  }}||                                 d k    rdn|#S )authorizationz
(redacted))lowerrE   s      r   rG   z)_request_with_session.<locals>.<dictcomp>`   sB       OSqRSAqwwyyO'C'C||  r0   zSending a request - url:  z
, params: zn/az	, files: r   z, data: z, json: jsonz	, proxy: proxyz, headers: zapplication/gzip)status_coder:   r"   z
text/plain)rP   r:   bodyz7No response data returned from the following API call: .)rP   r:   z/Unexpectedly failed to read the response body: z(binary)z*Received the following response - status: z, body: )staterequestresponsezA retry handler found: z for )r"   r:   rP   )rS   rT   rU   errorz - )%closedaiohttpr   ClientTimeoutr#   RetryHttpRequestgetr   next_attempt_requestedlevelloggingDEBUGrH   r$   debugrT   content_typereadRetryHttpResponsestatusr:   textrN   ContentTypeErrordecoderJSONDecodeErrorr   r   	Exceptionr&   r%   can_retry_asyncinfotype__name__prepare_for_next_attempt_asyncclose)r2   r3   r4   r5   r6   r   r1   sessionuse_running_session
last_errorrespretry_requestretry_statecounter_for_safetyretry_responserI   r:   resr"   rQ   messageehandlerrU   s                           r   _request_with_sessionr|   ,   sj	      (6'A^^rNG)H/2H.H 
!')888fd++
 
 

 '+J%)DQ"(LLB// X..f%%
 
 
 !ll 3&&!#16K.:>N|w},,f4 fD f f f f
 W_WcWcdmoqWrWrWxWxWzWz   *	 * *G * *-~hll8U.K.KLL* *,nX\\'5-I-IJJ* * ,^HLL,G,GHH* * ,^HLL,G,GHH	* *
 -nX\\'5-I-IJJ* * !(* *  d%*7?9gJJJJ K( K( K( K( K( K( K(c46D'+===%(XXZZ//////):(+
$'K!%* * *
 )\99%(XXZZ//////):(+
$'K!%* * *"),#3#3#3#3#3#3D->,/J(+%). . .NN
  '7   "LL)mcj)m)m)mnnn->,/J(+. . .NNN  $|; 	" 	" 	""25((**,<,<,<,<,<,<*Nt*T*T&3GS&A&A A#, " " "&3$^VYZ[V\V\$^$^$''" '" !""	" |w}44)%dD11 (Zc5J5J (#'D,'*z, ,(,S[(9(9, , &*, ,   $2 " "!(!8!8"-$1%3 "9 " "       "
  &|w}<< &,|d7mmF\,|,|gp,|,|sz,|,| } } }")"H"H&1(5)7 #I # #       
 "E" #9UBB$('*{+.:$ $
  (WK( K( K( K( K( K( K( K( K( K( K( K( K(T # 	"--//!!!!!!!!	"K CKK( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K( K(Z  % % %
-  G$44) -!/	 5          "<7=88"KK v$w--:P v v[d v vgn v vst v v   &DD"-$1%3"#	 E          !$ 5>>$$ ?>>>>+%Q !3&&@  # 	"--//!!!!!!!!	"  # 	"--//!!!!!!!!	"s   FW (S5 =B	S#6J>=S#>ANS#N9M
M? M::M??NDS# S5 S5 #
S--S5 0S-1S5 4W 5
V#?BVW V##W W W/)#r   rN   r^   r   r   typingr   r   r   r   r	   r
   r   rX   r   slack_sdk.errorsr   slack_sdk.web.internal_utilsr   "slack_sdk.http_retry.async_handlerr   slack_sdk.http_retry.requestr   rZ   slack_sdk.http_retry.responser   rc   slack_sdk.http_retry.stater   r   rH   r/   intr&   r|    r0   r   <module>r      s      % % % % % %       G G G G G G G G G G G G G G G G G G  ! ! ! ! ! ! * * * * * * M M M M M M @ @ @ @ @ @ H H H H H H K K K K K K 1 1 1 1 1 1*    T hx&8    . 9=o o om,o o 	o
 o o o T"345o 
#s(^o o o o o or0   