
     ht                     f    d 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Z G d	 d
e          ZdS )zAmazon SQS Connection.    )	transform)AsyncAWSQueryConnection   )boto3)AsyncMessage)
AsyncQueue)AsyncSQSConnectionc                        e Zd ZdZd fd	Z	 ddZddZd Zd d
Zd!dZ		 	 	 d"dZ
d!dZd!dZ	 d!dZ	 ddZd!dZ	 d!dZd!dZd#dZd!dZeZd Zd!dZ	 d!dZd!dZ xZS )$r	   zAsync SQS Connection.r   Nc                 n    t           t          d           t                      j        |f||d| d S )Nzboto3 is not installed)region_namedebug)r   ImportErrorsuper__init__)selfsqs_connectionr   regionkwargs	__class__s        a/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/kombu/asynchronous/aws/sqs/connection.pyr   zAsyncSQSConnection.__init__   sX    =6777	
e	
 	
 	
 	
 	
 	
 	
    c                 d    d|i}|rt          |d          |d<   |                     d||          S )N	QueueNamedDefaultVisibilityTimeoutCreateQueuecallback)format
get_object)r   
queue_namevisibility_timeoutr   paramss        r   create_queuezAsyncSQSConnection.create_queue   sR    z* 	17"C2 2F-. }f(0  2 2 	2r   Fc                 >    |                      dd |j        |          S )NDeleteQueuer   
get_statusid)r   queueforce_deletionr   s       r   delete_queuezAsyncSQSConnection.delete_queue$   s(    }dEH(0  2 2 	2r   c                 H    | j                             |          }|d         S )N)r   QueueUrl)r   get_queue_url)r   r*   ress      r   r/   z AsyncSQSConnection.get_queue_url(   s%    !//%/@@:r   Allc                 B    |                      dd|i|j        |          S )NGetQueueAttributesAttributeNamer   )r    r)   )r   r*   	attributer   s       r   get_queue_attributesz'AsyncSQSConnection.get_queue_attributes,   s.     ?I">Hx  
 
 	
r   c                 D    |                      d||d|j        |          S )NSetQueueAttribute)zAttribute.NamezAttribute.Valuer   r'   )r   r*   r5   valuer   s        r   set_queue_attributez&AsyncSQSConnection.set_queue_attribute2   s2    (UCCHx  
 
 	
r   r   ApproximateReceiveCountc                     d|i}|r||d<   |rDi }	t          |          D ]\  }
}||	dt          |
dz             z   <   |                    |	           |||d<   |                     d|dt          fg|||          S )	NMaxNumberOfMessagesVisibilityTimeoutzAttributeName.r   WaitTimeSecondsReceiveMessageMessage)r   parent)	enumeratestrupdateget_listr   )r   r*   	queue_urlnumber_messagesr"   
attributeswait_time_secondsr   r#   attrsidxattrs               r   receive_messagez"AsyncSQSConnection.receive_message9   s    
 (9 	=*<F&' 	!E&z22 > >	T9=&S1W566MM%   ((9F$%}}f	<'@&A  
 
 	
r   c                 0    |                      |||          S N)delete_message_from_handler   r*   receipt_handler   s       r   delete_messagez!AsyncSQSConnection.delete_messageM   s!    ..>8
 
 	
r   c                     i }t          |          D ]6\  }}d|dz    }|                    | d|j        | d|j        i           7|                     d||j        d|          S )NzDeleteMessageBatchRequestEntry.r   .Id.ReceiptHandleDeleteMessageBatchPOSTverbr   rD   rF   r)   rT   r    )r   r*   messagesr   r#   imprefixs           r   delete_message_batchz'AsyncSQSConnection.delete_message_batchR   s    h'' 	 	DAq>q1u>>FMM)))1+;      &%((  
 
 	
r   c                 8    |                      dd|i||          S )NDeleteMessageReceiptHandler   )r(   rS   s       r   rR   z-AsyncSQSConnection.delete_message_from_handle_   s,    o~>H  
 
 	
r   c                 p    d|i}|rt          |          |d<   |                     d||j        d|          S )NMessageBodyDelaySecondsSendMessagerZ   r[   )intr    r)   )r   r*   message_contentdelay_secondsr   r#   s         r   send_messagezAsyncSQSConnection.send_messagef   sO    1 	8%(%7%7F>"658(  
 
 	
r   c           
          i }t          |          D ]C\  }}d|dz    }|                    | d|d         | d|d         | d|d         i           D|                     d||j        d	|
          S )NzSendMessageBatchRequestEntry.r   rW   r   z.MessageBodyz.DelaySeconds   SendMessageBatchrZ   r[   )rD   rF   r    r)   )r   r*   r^   r   r#   r_   msgra   s           r   send_message_batchz%AsyncSQSConnection.send_message_batchp   s    )) 	 	FAs<QU<<FMMA'''Q(((#a&    
 (  
 
 	
r   c                 D    |                      d||d|j        |          S )NChangeMessageVisibility)re   r?   r   r'   )r   r*   rT   r"   r   s        r   change_message_visibilityz,AsyncSQSConnection.change_message_visibility~   s7    %,"46 6Hx	  
 
 	
r   c           
          i }t          |          D ]M\  }}d|dz    }|                    | d|d         j        | d|d         j        | d|d         i           N|                     d||j        d|	          S )
Nz)ChangeMessageVisibilityBatchRequestEntry.r   rW   r   rX   z.VisibilityTimeoutChangeMessageVisibilityBatchrZ   r[   r]   )r   r*   r^   r   r#   r_   tpres           r   change_message_visibility_batchz2AsyncSQSConnection.change_message_visibility_batch   s    h'' 	 	DAqEa!eEECMMQqTW&&&!(;***AaD    
 *FEH(  
 
 	
r    c                 V    i }|r||d<   |                      d|dt          fg|          S )NQueueNamePrefix
ListQueuesr.   r   )rG   r   )r   ra   r   r#   s       r   get_all_queuesz!AsyncSQSConnection.get_all_queues   sG     	/(.F$%}}&J
#;"<  
 
 	
r   c                 V    |                      |t          | j        ||                    S rQ   )r   r   _on_queue_ready)r   r!   r   s      r   	get_queuezAsyncSQSConnection.get_queue   s/    ""d*HjAA
 
 	
r   c                 <    t          fd|D             d           S )Nc              3   P   K   | ] }|j                                       |V  !d S rQ   )urlendswith).0qnames     r   	<genexpr>z5AsyncSQSConnection._on_queue_ready.<locals>.<genexpr>   s6      771!%.."6"67Q777777r   )next)r   r   queuess    ` r   r   z"AsyncSQSConnection._on_queue_ready   s.    7777777
 
 	
r   c                 R    |                      dd|j        idt          fg|          S )NListDeadLetterSourceQueuesr.   r   )rG   r   r   )r   r*   r   s      r   get_dead_letter_source_queuesz0AsyncSQSConnection.get_dead_letter_source_queues   s7    }}(:uy*A*%&  
 
 	
r   c                 F    |                      d|||d|j        |          S )NAddPermission)LabelAWSAccountId
ActionNamer   r'   )r   r*   labelaws_account_idaction_namer   s         r   add_permissionz!AsyncSQSConnection.add_permission   s<    +&( ( Hx  
 
 	
r   c                 B    |                      dd|i|j        |          S )NRemovePermissionr   r   r'   )r   r*   r   r   s       r   remove_permissionz$AsyncSQSConnection.remove_permission   s-    % 0%(X  
 
 	
r   )r   N)NN)FN)r1   NrQ   )r   Nr;   NN)r{   N)__name__
__module____qualname____doc__r   r$   r,   r/   r6   r:   rO   rU   rb   rR   rm   rr   ru   rz   r   r   lookupr   r   r   r   __classcell__)r   s   @r   r	   r	      s       
 
 
 
 
 
 8<2 2 2 22 2 2 2  
 
 
 

 
 
 
 GKCG
 
 
 
(
 
 
 


 
 
 
 -1
 
 
 
 37
 
 
 

 
 
 
 @D
 
 
 

 
 
 

 
 
 

 
 
 
 F
 
 


 
 
 
 !%
 
 
 

 
 
 
 
 
 
 
r   r	   N)r   viner   !kombu.asynchronous.aws.connectionr   extr   messager   r*   r   __all__r	    r   r   <module>r      s            E E E E E E       ! ! ! ! ! !      
!q
 q
 q
 q
 q
0 q
 q
 q
 q
 q
r   