
    h2                    L    d Z ddlmZ ddlmZ ddlmZ dgZd Z G d d      Z	y	)
z Amazon SQS queue implementation.    )annotations)	transform   )AsyncMessage
AsyncQueuec                ,    t        |       dk(  r| d   S dS )z4Get the first item in a list, or None if list empty.r   r   N)len)rss    \/var/www/Befach/backend/env/lib/python3.12/site-packages/kombu/asynchronous/aws/sqs/queue.py
list_firstr      s    GqL2a5*d*    c                      e Zd ZdZddefdZd ZexZxZxZ	xZ
xZxZxZxZxZxZZddZddZddZd Zdd	Zd
 Z	 ddZddZ	 	 d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#y)r   zAsync SQS Queue.Nc                <    || _         || _        || _        d | _        y N)
connectionurlmessage_classvisibility_timeout)selfr   r   r   s       r   __init__zAsyncQueue.__init__   s     $*"&r   c                    t               r   )NotImplementedError)r   argskwargss      r   _NAzAsyncQueue._NA   s    !##r   c                <    | j                   j                  | ||      S r   )r   get_queue_attributes)r   
attributescallbacks      r   get_attributeszAsyncQueue.get_attributes    s     33*h
 	
r   c                >    | j                   j                  | |||      S r   )r   set_queue_attribute)r   	attributevaluer   s       r   set_attributezAsyncQueue.set_attribute%   s"    22)UH
 	
r   c           	     Z    | j                  |t        | j                  ||t                    S r   r    r   _coerce_field_valueint)r   r   _attrs      r   get_timeoutzAsyncQueue.get_timeout*   s.    ""9(((E3
 	
r   c                     |||         S r    )r   keytyperesponses       r   r(   zAsyncQueue._coerce_field_value1   s    HSM""r   c                P    | j                  d|t        | j                  |            S NVisibilityTimeout)r%   r   _on_timeout_set)r   r   r   s      r   set_timeoutzAsyncQueue.set_timeout4   s.    !!!3$$h
 	
r   c                ,    |r|| _         | j                   S r   )r   )r   r   s     r   r4   zAsyncQueue._on_timeout_set<   s    &8D#&&&r   c                @    | j                   j                  | ||||      S r   )r   add_permission)r   labelaws_account_idaction_namer   s        r   r8   zAsyncQueue.add_permissionA   s$    --%h
 	
r   c                <    | j                   j                  | ||      S r   )r   remove_permission)r   r9   r   s      r   r=   zAsyncQueue.remove_permissionG   s    00uhGGr   c           	     H    | j                  d||t        t        |            S )Nr   )wait_time_secondsr   )get_messagesr   r   )r   r   r?   r   s       r   readzAsyncQueue.readJ   s-      !/z84 ! 
 	
r   c           
         | j                   j                  | |j                         |t        | j                  ||            S N)r   )r   send_messageget_body_encodedr   _on_message_sent)r   messagedelay_secondsr   s       r   writezAsyncQueue.writeR   s@    ++'**,mt44hH , 
 	
r   c                >    | j                   j                  | ||      S rC   )r   send_message_batchr   messagesr   s      r   write_batchzAsyncQueue.write_batchX   s%    11(X 2 
 	
r   c                J    |j                   |_         |j                  |_        |S r   )idmd5)r   orig_messagenew_messages      r   rF   zAsyncQueue._on_message_sent]   s    %..&??r   c                D    | j                   j                  | |||||      S )N)number_messagesr   r   r?   r   )r   receive_message)r   num_messagesr   r   r?   r   s         r   r@   zAsyncQueue.get_messagesb   s/    ..,1!/ / 
 	
r   c                <    | j                   j                  | ||      S r   )r   delete_message)r   rG   r   s      r   rY   zAsyncQueue.delete_messagel   s    --dGXFFr   c                >    | j                   j                  | ||      S rC   )r   delete_message_batchrL   s      r   r[   zAsyncQueue.delete_message_batcho   s%    33(X 4 
 	
r   c                >    | j                   j                  | ||      S rC   )r   change_message_visibility_batchrL   s      r   r]   z*AsyncQueue.change_message_visibility_batcht   s%    >>(X ? 
 	
r   c                <    | j                   j                  | |      S rC   )r   delete_queue)r   r   s     r   deletezAsyncQueue.deletey   s    ++D8+DDr   c           	     \    | j                  |t        | j                  ||t                    S rC   r'   )r   	page_sizevtimeoutr   r*   s        r   countzAsyncQueue.count|   s3    ""I(((E3 # 
 	
r   )AllNr   r2   )NNN)NN)r   NNNN)
   rf   NApproximateNumberOfMessages)$__name__
__module____qualname____doc__r   r   r   
count_slowdumpsave_to_filesave_to_filenamesave
save_to_s3load_from_s3load_from_fileload_from_filenameloadclearr    r%   r+   r(   r5   r4   r8   r=   rA   rI   rN   rF   r@   rY   r[   r]   r`   rd   r-   r   r   r   r      s    "&D '$ J   '7 $ !$25Gu




#
' !%
H ?C




 ?CGK
G



E 9=1
r   N)
rk   
__future__r   viner   rG   r   _all__r   r   r-   r   r   <module>rz      s)    & "  !
+
q
 q
r   