
    (ph                     V    S SK r S SKJr  S SKJr  S SKJr  S SKJr  Sr	 " S S\5      r
g)	    N)Session)ClientError)Broker)Confz'AWS.SimpleQueueService.NonExistentQueuec                      ^  \ rS rSrSS\4U 4S jjjrU 4S jrS rS rS r	S\
4S	 jrS\
4S
 jrS rS rS rS rS\4S jrS\4S jr\SS\S\4S jj5       rS rSrU =r$ )Sqs   list_keyc                 d   > S U l         [        [        U ]  U5        U R	                  5       U l        g N)sqssuperr   __init__	get_queuequeue)selfr
   	__class__s     K/var/www/html/venv/lib/python3.13/site-packages/django_q/brokers/aws_sqs.pyr   Sqs.__init__   s'    c4!(+^^%
    c                 d   > [         [        U ]  U5        S U l        U R	                  5       U l        g r   )r   r   __setstate__r   r   r   )r   stater   s     r   r   Sqs.__setstate__   s'    c4%e,^^%
r   c                 V    U R                   R                  US9nUR                  S5      $ )N)MessageBody	MessageId)r   send_messageget)r   taskresponses      r   enqueueSqs.enqueue   s(    ::**t*<||K((r   c                    [         R                  S:  a  S[         l        [         R                  [         R                  S.n[         R                  nSU;   aV  UR	                  SS5      n[        U[        5      (       d  [        S5      eUS:  a  [        S5      eUR                  SU05        U R                  R                  " S0 UD6nU(       a(  U Vs/ s H  oUR                  UR                  4PM     sn$ g s  snf )	N
   )MaxNumberOfMessagesVisibilityTimeout!receive_message_wait_time_seconds   z/receive_message_wait_time_seconds should be intzLreceive_message_wait_time_seconds is invalid. Reason: Must be >= 0 and <= 20WaitTimeSeconds )r   BULKRETRYSQSr   
isinstanceint
ValueErrorupdater   receive_messagesreceipt_handlebody)r   params
sqs_configwait_time_secondtasksts         r   dequeueSqs.dequeue   s    99r>DI)-T XX
.*<)~~.QSUV .44 !RSS"$ !  MM,.>?@

++5f58=>1%%qvv.>> >s   !C9c                 $    U R                  U5      $ r   deleter   task_ids     r   acknowledgeSqs.acknowledge5   s    {{7##r   returnc                 F    [        U R                  R                  S   5      $ )NApproximateNumberOfMessagesr0   r   
attributesr   s    r   
queue_sizeSqs.queue_size8   s    4::(()FGHHr   c                 F    [        U R                  R                  S   5      $ )N%ApproximateNumberOfMessagesNotVisiblerG   rI   s    r   	lock_sizeSqs.lock_size;   s    4::(()PQRRr   c                     U R                   R                  U R                  R                  U5      nUR	                  5         g r   )r   Messager   urlr?   )r   rA   messages      r   r?   
Sqs.delete>   s*    ((""4::>>7;r   c                 &    U R                  U5        g r   r>   r@   s     r   failSqs.failB   s    Gr   c                 8    U R                   R                  5         g r   )r   r?   rI   s    r   delete_queueSqs.delete_queueE   s    

r   c                 8    U R                   R                  5         g r   )r   purgerI   s    r   purge_queueSqs.purge_queueH   s    

r   c                 <    SU R                   R                  5       ;   $ )Nr   )
connectionget_available_resourcesrI   s    r   pingSqs.pingK   s    ??AAAr   c                     g)NzAWS SQSr+   rI   s    r   infoSqs.infoN   s    r   c                     [         R                  " [        R                  5      nSU;   a  US   US'   US	 SU;   a  US	 [	        S0 UD6$ )N
aws_regionregion_namer(   r+   )copydeepcopyr   r.   r   )r
   config_cloneds     r   get_connectionSqs.get_connectionQ   sR    dhh/=(+8+FM-(l+.-?AB'''r   c                 6   U R                   R                  S5      U l         U R                  R                  U R                  S9$ ! [
         a&  nUR                  S   S   [        :w  a  Ue S nAOS nAff = fU R                  R                  U R                  S9$ )Nr   )	QueueNameErrorCode)	r`   resourcer   get_queue_by_namer
   r   r!   QUEUE_DOES_NOT_EXISTcreate_queue)r   exps     r   r   Sqs.get_queue]   s    ??++E2	 88---FF 	||G$V,0DD	 E	 xx$$t}}$==s   "A 
A5A00A5)r   r   r   )__name__
__module____qualname____firstlineno__strr   r   r"   r;   rB   r0   rJ   rN   r?   rV   rY   r]   boolrb   re   staticmethodr   rm   r   __static_attributes____classcell__)r   s   @r   r   r      s    & & &
&
)?4$IC IS3 SBd Bc  	( 	( 	( 	(> >r   r   )rj   boto3r   botocore.clientr   django_q.brokersr   django_q.confr   ru   r   r+   r   r   <module>r      s(      ' # @ \>& \>r   