
    h"                        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dS )zAmazon AWS Connection.    )annotations)message_from_bytes)MIMEMessage)promise	transform)
AWSRequestget_cert_path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     a/var/www/html/auto_sub_bot/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   r6   r5   s    r   msgzAsyncHTTPResponse.msg)   s4    9#$89J9J$K$KLLDIyr   c                    | j         j        S r'   )r!   coder5   s    r   statuszAsyncHTTPResponse.status/   s    }!!r   c                @    | j         j        r| j         j        j        S dS )N )r!   errormessager5   s    r   reasonzAsyncHTTPResponse.reason3   s"    = 	/=&..rr   c                *    t          | j                  S r'   )reprr!   r5   s    r   __repr__zAsyncHTTPResponse.__repr__9   s    DM"""r   r'   )__name__
__module____qualname____doc__r%   r+   r1   r6   propertyr8   r;   r@   rC    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$   rS   rR   rT   s       r   r%   zAsyncHTTPSConnection.__init__H   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-   extendr3   r4   )r$   rW   rV   r(   r-   r+   s         r   requestzAsyncHTTPSConnection.requestN   s    	#y !DFF		 " ! ! ! 			! LW]]__ 5 566666 s   ) ==c                    t          | j                  }|                     | j        | j        || j        | j        | j        dt          d                    S )NT)rW   r-   r(   connect_timeoutrequest_timeoutvalidate_certca_certs)r   r-   r   rV   rW   r(   rR   r	   )r$   r-   s     r   
getrequestzAsyncHTTPSConnection.getrequest[   sT    $,''||DIdk7!%DL,0L*.t9L9L  N N 	Nr   c                    |                                  }|                    t          | j        |                     | j                            |          S r'   )r`   thenr   ResponserT   add_request)r$   callbackrZ   s      r   getresponsez AsyncHTTPSConnection.getresponseb   sF    //##Yt}h77888++G444r   c                    d S r'   rI   )r$   levels     r   set_debuglevelz#AsyncHTTPSConnection.set_debuglevelg       r   c                    d S r'   rI   r5   s    r   connectzAsyncHTTPSConnection.connectj   rj   r   c                    d S r'   rI   r5   s    r   closezAsyncHTTPSConnection.closem   rj   r   c                "    || _         || _        d S r'   )rW   rV   )r$   rW   rV   s      r   
putrequestzAsyncHTTPSConnection.putrequestp   s    			r   c                >    | j                             ||f           d S r'   )r-   append)r$   headervalues      r   	putheaderzAsyncHTTPSConnection.putheadert   s"    VUO,,,,,r   c                    d S r'   rI   r5   s    r   
endheaderszAsyncHTTPSConnection.endheadersw   rj   r   c                F    | j         r| xj         |z  c_         d S || _         d S r'   )r(   )r$   datas     r   sendzAsyncHTTPSConnection.sendz   s+    9 	IIIIIIDIIIr   c                2    d|                                  dS )Nz<AsyncHTTPConnection: >)r`   r5   s    r   rC   zAsyncHTTPSConnection.__repr__   s    >(9(9>>>>r   )NrP   NNNr'   )rD   rE   rF   rG   r   r   rc   rW   rV   r(   default_portsr%   rZ   r`   rf   ri   rl   rn   rp   ru   rw   rz   rC   rI   r   r   r   r   =   s         G HFDD#..M7 7 7 77 7 7 7N N N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   rT   r*   s       r   r%   zAsyncConnection.__init__   s!    ,&6*,,r   c                ,    t          | j                  S )N)rT   )r   r   r5   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re   )
r   r   callablerW   rV   r(   r-   rZ   urlrf   )r$   rZ   senderre   conns        r   _mexezAsyncConnection._mexe   s    (wyy''))F 	0F4w|?H. . . . LL w8 8 8h///r   r'   r}   )rD   rE   rF   rG   r%   r   r   rI   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   rT   http_client_paramsr*   	__class__s        r   r%   z AsyncAWSQueryConnection.__init__   sG    ! 	$!# 	/ 	/-	/ 	/ 	/ 	/ 	/r   c                   |                                 }|                    |pi                     di                      |r||d<   | j        j        }d}	d|i}
|                                dk    rd}	d|i}
t          d||d|
}|                    |||		           |                                }| 	                    ||
          S )NqueryActionstandardry   r.   zpresign-urlparams)rW   r   )signing_typer   rI   )
copyupdater.   r   _request_signerlowerr   signpreparer   )r$   	operationparams_rV   verbre   protocol_paramsr   signerr   param_payloadrZ   prepared_requests                r   make_requestz$AsyncAWSQueryConnection.make_request   s    ,"11'2>>??? 	)(F8$4 "(::<<5  (L%v.MDDdDDmDDIw\BBB"??,,zz*Xz>>>r   rL   POSTc	                h    |                      ||||t          | j        ||p| ||          |          S N)re   r   )r   r   _on_list_ready)	r$   r   r   markersrV   parentr   re   r   s	            r   get_listz AsyncAWSQueryConnection.get_list   sM      vtT#Xv~w  , ! 
 
 	
r   rK   c                f    |                      ||||t          | j        ||p| |          |          S r   )r   r   _on_obj_readyr$   r   r   rV   r   r   re   r   s           r   
get_objectz"AsyncAWSQueryConnection.get_object   sJ      vtT"Hfni  , ! 
 
 	
r   c                f    |                      ||||t          | j        ||p| |          |          S r   )r   r   _on_status_readyr   s           r   
get_statusz"AsyncAWSQueryConnection.get_status   sJ      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_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>?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   r;   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   r;   r   r
   r   r!   r:   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   r;   r@   )r$   r!   r(   contexts       r   r   z#AsyncAWSQueryConnection._for_status  sB    &*<,,7>>X_hot
 
   	r   r}   )rL   Nr   NN)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      s0       %%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      sk     " " " " " " $ $ $ $ $ $ * * * * * * # # # # # # # # N N N N N N N N N N @ @ @ @ @ @ @ @ @ @+ + +

"# "# "# "# "# "# "# "#JD? D? D? D? D? D? D? D?N       0z z z z zo z z z z zr   