
    Ih"                        d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZmZmZ d Zd	Z G d
 d      Z G d d      Z G d d      Z G d de      Zy)zAmazon AWS Connection.    )annotations)message_from_bytes)MIMEMessage)promise	transform)
AWSRequestget_cert_pathget_response)HeadersRequest
get_clientc                d    dj                  d | D              }t        |j                               S )Nz
c              3  :   K   | ]  } d j                   |   yw)z{}: {}N)format).0hs     Z/var/www/html/planif/env/lib/python3.12/site-packages/kombu/asynchronous/aws/connection.py	<genexpr>z'message_from_headers.<locals>.<genexpr>   s     6Q_X__a(6s   )joinr   encode)hdrbss     r   message_from_headersr      s'    	6#6	6Bbiik**    )AsyncHTTPSConnectionAsyncConnectionc                  `    e Zd ZdZd Zd ZddZd Zed        Z	ed        Z
ed	        Zd
 Zy)AsyncHTTPResponsezAsync HTTP Response.c                .    || _         d | _        d| _        y )N
   )response_msgversion)selfr!   s     r   __init__zAsyncHTTPResponse.__init__   s     	r   c                .    | j                   j                  S N)r!   body)r$   argskwargss      r   readzAsyncHTTPResponse.read    s    }}!!!r   Nc                N    | j                   j                  j                  ||      S r'   )r!   headersget)r$   namedefaults      r   	getheaderzAsyncHTTPResponse.getheader#   s    }}$$((w77r   c                \    t        | j                  j                  j                               S r'   )listr!   r-   itemsr$   s    r   
getheaderszAsyncHTTPResponse.getheaders&   s     DMM))//122r   c                    | j                   't        t        | j                                     | _         | j                   S r'   )r"   r   r   r6   r5   s    r   msgzAsyncHTTPResponse.msg)   s/    99#$89J$KLDIyyr   c                .    | j                   j                  S r'   )r!   coder5   s    r   statuszAsyncHTTPResponse.status/   s    }}!!!r   c                p    | j                   j                  r | j                   j                  j                  S y)N )r!   errormessager5   s    r   reasonzAsyncHTTPResponse.reason3   s(    ====&&...r   c                ,    t        | j                        S r'   )reprr!   r5   s    r   __repr__zAsyncHTTPResponse.__repr__9   s    DMM""r   r'   )__name__
__module____qualname____doc__r%   r+   r1   r6   propertyr8   r;   r@   rC    r   r   r   r      sZ    
"83  
 " "  
#r   r   c                  |    e Zd ZdZeZeZdZdZdZ	dddZ
ddZdd	Zd
 ZddZd Zd Zd Zd Zd Zd Zd Zd Zy)r   zAsync HTTP Connection.GET/NP   i  )httphttpsc                T    g | _         || _        || _        |xs
 t               | _        y r'   )r-   timeoutstrictr   http_client)r$   rR   rQ   rS   s       r   r%   zAsyncHTTPSConnection.__init__H   s&    &6*,r   c                    || _         || _        |	 |j                  } |       | _        |3| j
                  j                  t        |j                                      y y # t        $ r
 || _        Y Hw xY wr'   )	pathmethodr+   r(   AttributeErrorr-   extendr3   r4   )r$   rV   rU   r(   r-   r+   s         r   requestzAsyncHTTPSConnection.requestN   so    	#yy !F	LLW]]_ 56 	 " ! 	!s   A   A32A3c                    t        | j                        }| j                  | j                  | j                  || j
                  | j                  | j                  dt        d            S )NT)rV   r-   r(   connect_timeoutrequest_timeoutvalidate_certca_certs)r   r-   r   rU   rV   r(   rQ   r	   )r$   r-   s     r   
getrequestzAsyncHTTPSConnection.getrequest[   sT    $,,'||DIIdkk7!%DLL,0LL*.t9L  N 	Nr   c                    | j                         }|j                  t        | j                  |             | j                  j                  |      S r'   )r_   thenr   ResponserS   add_request)r$   callbackrY   s      r   getresponsez AsyncHTTPSConnection.getresponseb   s<    //#Yt}}h78++G44r   c                     y r'   rI   )r$   levels     r   set_debuglevelz#AsyncHTTPSConnection.set_debuglevelg       r   c                     y r'   rI   r5   s    r   connectzAsyncHTTPSConnection.connectj   ri   r   c                     y r'   rI   r5   s    r   closezAsyncHTTPSConnection.closem   ri   r   c                     || _         || _        y r'   )rV   rU   )r$   rV   rU   s      r   
putrequestzAsyncHTTPSConnection.putrequestp   s    	r   c                >    | j                   j                  ||f       y r'   )r-   append)r$   headervalues      r   	putheaderzAsyncHTTPSConnection.putheadert   s    VUO,r   c                     y r'   rI   r5   s    r   
endheaderszAsyncHTTPSConnection.endheadersw   ri   r   c                V    | j                   r| xj                   |z  c_         y || _         y r'   )r(   )r$   datas     r   sendzAsyncHTTPSConnection.sendz   s    99IIIDIr   c                *    d| j                         dS )Nz<AsyncHTTPConnection: >)r_   r5   s    r   rC   zAsyncHTTPSConnection.__repr__   s    '(9'<A>>r   )Ng      4@NNNr'   )rD   rE   rF   rG   r   r   rb   rV   rU   r(   default_portsr%   rY   r_   re   rh   rk   rm   ro   rt   rv   ry   rC   rI   r   r   r   r   =   se     G HFDD#.M77N5
-?r   r   c                  &    e Zd ZdZddZd ZddZy)r   zAsync AWS Connection.Nc                8    || _         |xs
 t               | _        y r'   )sqs_connectionr   _httpclient)r$   r   rS   r*   s       r   r%   zAsyncConnection.__init__   s    ,&6*,r   c                .    t        | j                        S )N)rS   )r   r   r5   s    r   get_http_connectionz#AsyncConnection.get_http_connection   s    #0@0@AAr   c                b   |xs
 t               }| j                         }t        |      r7 |||j                  |j                  |j
                  |j                  |       |S |j                  |j                  |j                  |j
                  |j                         |j                  |       |S )Nrd   )
r   r   callablerV   rU   r(   r-   rY   urlre   )r$   rY   senderrd   conns        r   _mexezAsyncConnection._mexe   s    (wy'')F4w||??H.  LL w8h/r   r'   r|   )rD   rE   rF   rG   r%   r   r   rI   r   r   r   r      s    7Br   r   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
eee	fZeee
fZ	 	 d fd		Zdd
Z	 	 ddZddZddZd Zd Zd Zd Z xZS )AsyncAWSQueryConnectionzAsync AWS Query Connection.   i  iW  i  i  i  i  c                0    |si }t        |   ||fi | y r'   )superr%   )r$   r   rS   http_client_paramsr*   	__class__s        r   r%   z AsyncAWSQueryConnection.__init__   s%    !!# 	/-	/r   c                n   |j                         }|j                  |xs i j                  di              |r||d<   | j                  j                  }d}	d|i}
|j                         dk(  rd}	d|i}
t        d||d|
}|j                  |||		       |j                         }| j                  ||
      S )NqueryActionstandardrx   r.   zpresign-urlparams)rV   r   )signing_typer   rI   )
copyupdater.   r   _request_signerlowerr   signpreparer   )r$   	operationparams_rU   verbrd   protocol_paramsr   signerr   param_payloadrY   prepared_requests                r   make_requestz$AsyncAWSQueryConnection.make_request   s    ,"11'2>?(F8$$44 "(::<5 (L%v.MDDdDmDIw\B"??,zz*Xz>>r   c	                f    | j                  ||||t        | j                  ||xs | ||      |      S N)rd   r   )r   r   _on_list_ready)	r$   r   r   markersrU   parentr   rd   r   s	            r   get_listz AsyncAWSQueryConnection.get_list   sF      vtT##Xv~w , ! 
 	
r   c                d    | j                  ||||t        | j                  ||xs | |      |      S r   )r   r   _on_obj_readyr$   r   r   rU   r   r   rd   r   s           r   
get_objectz"AsyncAWSQueryConnection.get_object   sC      vtT""Hfni , ! 
 	
r   c                d    | j                  ||||t        | j                  ||xs | |      |      S r   )r   r   _on_status_readyr   s           r   
get_statusz"AsyncAWSQueryConnection.get_status   sC      vtT%%x4 , ! 
 	
r   c                l   | j                   j                  j                  }|j                  | j                  k(  r*t        |j                  |      |j                        \  }}|S |j                  | j                  v s|j                  | j                  v rg S | j                  ||j                               r'   )r   metaservice_modelr;   STATUS_CODE_OKr
   operation_modelr!   STATUS_CODES_TIMEOUTSTATUS_CODES_SERVER_ERRORS_for_statusr+   )r$   r   r   r   r!   r   _parseds           r   r   z&AsyncAWSQueryConnection._on_list_ready   s    ++00>>??d111$--i8(:K:KIAv MOOt888OOt>>>
 I""8X]]_==r   c                   | j                   j                  j                  }|j                  | j                  k(  r*t        |j                  |      |j                        \  }}|S | j                  ||j                               r'   )
r   r   r   r;   r   r
   r   r!   r   r+   )r$   r   r   r!   r   r   r   s          r   r   z%AsyncAWSQueryConnection._on_obj_ready   so    ++00>>??d111$--i8(:K:KIAv M""8X]]_==r   c                   | j                   j                  j                  }|j                  | j                  k(  r4t        |j                  |      |j                        \  }}|j                  S | j                  ||j                               r'   )r   r   r   r;   r   r
   r   r!   r:   r   r+   )r$   r   r   r!   r   httpresr   s          r   r   z(AsyncAWSQueryConnection._on_status_ready  st    ++00>>??d111%--i8(:K:KJGQ <<""8X]]_==r   c                p    |sdnd}t        dj                  ||j                  |j                  |            S )Nz
Empty bodyz
HTTP ErrorzRequest {}  HTTP {}  {} ({}))	Exceptionr   r;   r@   )r$   r!   r(   contexts       r   r   z#AsyncAWSQueryConnection._for_status  s7    &*,7>>X__hoot
  	r   r|   )rL   NPOSTNN)rL   NrK   NN)rD   rE   rF   rG   r   STATUS_CODE_REQUEST_TIMEOUT)STATUS_CODE_NETWORK_CONNECT_TIMEOUT_ERRORSTATUS_CODE_INTERNAL_ERRORSTATUS_CODE_BAD_GATEWAY%STATUS_CODE_SERVICE_UNAVAILABLE_ERRORSTATUS_CODE_GATEWAY_TIMEOUTr   r   r%   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s    %N"%03-!$!,/)"% 	#-" 	$1# 48$(/?* ae!%	


>$>>r   r   N)rG   
__future__r   emailr   email.mime.messager   viner   r   kombu.asynchronous.aws.extr   r	   r
   kombu.asynchronous.httpr   r   r   r   __all__r   r   r   r   rI   r   r   <module>r      s\     " $ * # N N @ @+

"# "#JD? D?N 0zo zr   