
     h6!                         d 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
 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dS )zAmazon AWS Connection.    )message_from_bytes)MIMEMessage)promise	transform)
AWSRequestget_response)HeadersRequest
get_clientc                     d                     d | D                       }t          |                                          S )Nz
c              3   *   K   | ]} d j         | V  dS )z{}: {}N)format).0hs     ]/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/kombu/asynchronous/aws/connection.py	<genexpr>z'message_from_headers.<locals>.<genexpr>   s+      66Q_X_a(666666    )joinr   encode)hdrbss     r   message_from_headersr      s8    	66#666	6	6Bbiikk***r   )AsyncHTTPSConnectionAsyncConnectionc                   t    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dS )AsyncHTTPResponsezAsync HTTP Response.c                 0    || _         d | _        d| _        d S )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                 B    | j         j                            ||          S r%   )r   headersget)r"   namedefaults      r   	getheaderzAsyncHTTPResponse.getheader!   s    }$((w777r   c                 X    t          | j        j                                                  S r%   )listr   r+   itemsr"   s    r   
getheaderszAsyncHTTPResponse.getheaders$   s!    DM)//11222r   c                     | j         3t          t          |                                                     | _         | j         S r%   )r    r   r   r4   r3   s    r   msgzAsyncHTTPResponse.msg'   s4    9#$89J9J$K$KLLDIyr   c                     | j         j        S r%   )r   coder3   s    r   statuszAsyncHTTPResponse.status-   s    }!!r   c                 @    | j         j        r| j         j        j        S dS )N )r   errormessager3   s    r   reasonzAsyncHTTPResponse.reason1   s"    = 	/=&..rr   c                 *    t          | j                  S r%   )reprr   r3   s    r   __repr__zAsyncHTTPResponse.__repr__7   s    DM"""r   r%   )__name__
__module____qualname____doc__r#   r)   r/   r4   propertyr6   r9   r>   rA    r   r   r   r      s          
" " "8 8 8 83 3 3   X
 " " X"   X
# # # # #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dS )r   zAsync HTTP Connection.GET/NP   i  )httphttps      4@c                 Z    g | _         || _        || _        |pt                      | _        d S r%   )r+   timeoutstrictr   http_client)r"   rQ   rP   rR   s       r   r#   zAsyncHTTPSConnection.__init__F   s.    &6*,,r   c                     || _         || _        |/	 |j        } |            | _        n# t          $ r
 || _        Y nw xY w|;| j                            t          |                                                     d S d S r%   )	pathmethodr)   r&   AttributeErrorr+   extendr1   r2   )r"   rU   rT   r&   r+   r)   s         r   requestzAsyncHTTPSConnection.requestL   s    	#y !DFF		 " ! ! ! 			! LW]]__ 5 566666 s   ) ==c           	          t          | j                  }|                     | j        | j        || j        | j        | j        d          S )NF)rU   r+   r&   connect_timeoutrequest_timeoutvalidate_cert)r	   r+   r
   rT   rU   r&   rP   )r"   r+   s     r   
getrequestzAsyncHTTPSConnection.getrequestY   sI    $,''||DIdk7!%DL,0L  O O 	Or   c                     |                                  }|                    t          | j        |                     | j                            |          S r%   )r]   thenr   ResponserR   add_request)r"   callbackrX   s      r   getresponsez AsyncHTTPSConnection.getresponse_   sF    //##Yt}h77888++G444r   c                     d S r%   rG   )r"   levels     r   set_debuglevelz#AsyncHTTPSConnection.set_debugleveld       r   c                     d S r%   rG   r3   s    r   connectzAsyncHTTPSConnection.connectg   rg   r   c                     d S r%   rG   r3   s    r   closezAsyncHTTPSConnection.closej   rg   r   c                 "    || _         || _        d S r%   )rU   rT   )r"   rU   rT   s      r   
putrequestzAsyncHTTPSConnection.putrequestm   s    			r   c                 >    | j                             ||f           d S r%   )r+   append)r"   headervalues      r   	putheaderzAsyncHTTPSConnection.putheaderq   s"    VUO,,,,,r   c                     d S r%   rG   r3   s    r   
endheaderszAsyncHTTPSConnection.endheaderst   rg   r   c                 F    | j         r| xj         |z  c_         d S || _         d S r%   )r&   )r"   datas     r   sendzAsyncHTTPSConnection.sendw   s+    9 	IIIIIIDIIIr   c                 2    d|                                  dS )Nz<AsyncHTTPConnection: >)r]   r3   s    r   rA   zAsyncHTTPSConnection.__repr__}   s    >(9(9>>>>r   )NrN   NNNr%   )rB   rC   rD   rE   r
   r   r`   rU   rT   r&   default_portsr#   rX   r]   rc   rf   ri   rk   rm   rr   rt   rw   rA   rG   r   r   r   r   ;   s         G HFDD#..M7 7 7 77 7 7 7O O O5 5 5 5
        - - -    ? ? ? ? ?r   r   c                   (    e Zd ZdZddZd ZddZdS )r   zAsync AWS Connection.Nc                 >    || _         |pt                      | _        d S r%   )sqs_connectionr   _httpclient)r"   r~   rR   r(   s       r   r#   zAsyncConnection.__init__   s!    ,&6*,,r   c                 ,    t          | j                  S )N)rR   )r   r   r3   s    r   get_http_connectionz#AsyncConnection.get_http_connection   s    #0@AAAAr   c                 :   |pt                      }|                                 }t          |          r% |||j        |j        |j        |j        |           nB|                    |j        |j        |j        |j                   |	                    |           |S Nrb   )
r   r   callablerU   rT   r&   r+   rX   urlrc   )r"   rX   senderrb   conns        r   _mexezAsyncConnection._mexe   s    (wyy''))F 	0F4w|?H. . . . LL w8 8 8h///r   r%   rz   )rB   rC   rD   rE   r#   r   r   rG   r   r   r   r      sT        7 7 7 7B B 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  Nc                 F    |si } t                      j        ||fi | d S r%   )superr#   )r"   r~   rR   http_client_paramsr(   	__class__s        r   r#   z AsyncAWSQueryConnection.__init__   sG    ! 	$!# 	/ 	/-	/ 	/ 	/ 	/ 	/r   c                 <   |                                 }|r||d<   | j        j        }d}d|i}	|                                dk    rd}d|i}	t	          d
||d|	}
|                    ||
|           |
                                }|                     ||	          S )NActionstandardrv   r,   
presignurlparams)rU   r   )signing_typer   rG   )copyr~   _request_signerlowerr   signpreparer   )r"   	operationparams_rT   verbrb   r   signerr   param_payloadrX   prepared_requests               r   make_requestz$AsyncAWSQueryConnection.make_request   s     	)(F8$4 "(::<<5  'L%v.MDDdDDmDDIw\BBB"??,,zz*Xz>>>r   rJ   POSTc                 f    |                      ||||t          | j        ||p| ||                    S r   )r   r   _on_list_ready)r"   r   r   markersrT   parentr   rb   s           r   get_listz AsyncAWSQueryConnection.get_list   sH      vtT#Xv~w  ! 
 
 	
r   rI   c                 d    |                      ||||t          | j        ||p| |                    S r   )r   r   _on_obj_readyr"   r   r   rT   r   r   rb   s          r   
get_objectz"AsyncAWSQueryConnection.get_object   sE      vtT"Hfni  ! 
 
 	
r   c                 d    |                      ||||t          | j        ||p| |                    S r   )r   r   _on_status_readyr   s          r   
get_statusz"AsyncAWSQueryConnection.get_status   sE      vtT%x4  ! 
 
 	
r   c                 *   | j         j        j        }|j        | j        k    r-t          |                    |          |j                  \  }}|S |j        | j        v s|j        | j	        v rg S | 
                    ||                                          r%   )r~   metaservice_modelr9   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>?d111$--i88(:K IAv MOt888Ot>>>
 I""8X]]__===r   c                     | j         j        j        }|j        | j        k    r-t          |                    |          |j                  \  }}|S |                     ||	                                          r%   )
r~   r   r   r9   r   r   r   r   r   r)   )r"   r   r   r   r   r   r   s          r   r   z%AsyncAWSQueryConnection._on_obj_ready   sn    +0>?d111$--i88(:K IAv M""8X]]__===r   c                     | j         j        j        }|j        | j        k    r2t          |                    |          |j                  \  }}|j        S | 	                    ||
                                          r%   )r~   r   r   r9   r   r   r   r   r8   r   r)   )r"   r   r   r   r   httpresr   s          r   r   z(AsyncAWSQueryConnection._on_status_ready   sq    +0>?d111%--i88(:K JGQ <""8X]]__===r   c                 l    |sdnd}t          d                    ||j        |j        |                    S )Nz
Empty bodyz
HTTP ErrorzRequest {}  HTTP {}  {} ({}))	Exceptionr   r9   r>   )r"   r   r&   contexts       r   r   z#AsyncAWSQueryConnection._for_status
  sB    &*<,,7>>X_hot
 
   	r   rz   r%   )rJ   Nr   N)rJ   NrI   N)rB   rC   rD   rE   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$(/ / / / / /? ? ? ?(
 
 
 

 
 
 

 
 
 
> > >$> > >> > >      r   r   N)rE   emailr   email.mime.messager   viner   r   kombu.asynchronous.aws.extr   r   kombu.asynchronous.httpr	   r
   r   r   __all__r   r   r   r   rG   r   r   <module>r      sS     $ $ $ $ $ $ * * * * * * # # # # # # # # ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @+ + +

"# "# "# "# "# "# "# "#JC? C? C? C? C? C? C? C?L       0u u u u uo u u u u ur   