
    Ih`                        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
mZ erddlmZ d	Zej                  ZddZ G d dej$                        Z G d dej(                        Z G d dej(                        Zy
)zYCarrot compatibility interface.

See https://pypi.org/project/carrot/ for documentation.
    )annotations)count)TYPE_CHECKING   )	messaging)ExchangeQueue)TracebackType)	PublisherConsumerNc              #     K   |j                  |       t        d      D ]  }|r||k\  r y | j                           y w)N)no_ackr   )consumer   drain_events)
connectionconsumerr   limit	iterations        E/var/www/html/planif/env/lib/python3.12/site-packages/kombu/compat.py_iterconsumer      sF     F#1X (	Y%'%%''(s   ?Ac                       e Zd ZdZdZdZdZdZdZdZ		 	 	 d fd	Z
d Z fdZd	 Z	 	 	 	 	 	 	 	 dd
Zed        Z xZS )r   zCarrot compatible producer. directTFc                   |r|}|xs | j                   | _         |xs | j                  | _        |xs | j                  | _        ||| _        ||| _        t        | j                   t              sGt        | j                   | j                  | j                  | j                  | j                        | _         t        	|    || j                   fi | y )N)nametyperouting_keyauto_deletedurable)	exchangeexchange_typer   r   r   
isinstancer   super__init__)
selfr   r    r   r!   r   r   channelkwargs	__class__s
            r   r$   zPublisher.__init__)   s      J 1DMM*@d.@.@&:$*:*:"*D"DL$--2$$--*.*<*<151A1A151A1A-1\\	;DM
 	T]]=f=    c                &     | j                   |i |S N)publish)r%   argsr'   s      r   sendzPublisher.send@   s    t||T,V,,r)   c                0    t         |           d| _        y NT)r#   close_closed)r%   r(   s    r   r1   zPublisher.closeC   s    r)   c                    | S r+    r%   s    r   	__enter__zPublisher.__enter__G       r)   c                $    | j                          y r+   r1   r%   exc_typeexc_valexc_tbs       r   __exit__zPublisher.__exit__J        	

r)   c                    | j                   S r+   )r&   r5   s    r   backendzPublisher.backendR   s    ||r)   )NNNNNNr;   ztype[BaseException] | Noner<   zBaseException | Noner=   zTracebackType | NonereturnNone)__name__
__module____qualname____doc__r    r!   r   r   r   r2   r$   r.   r1   r6   r>   propertyrA   __classcell__r(   s   @r   r   r      s    %HMKGKG>B?C>.-, & %	
 
  r)   r   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
dZ	 	 	 d fd	Z fdZd Zd	 Z	 	 	 	 	 	 	 	 dd
Zd ZddZd ZddZddZddZddZ xZS )r   zCarrot compatible consumer.r   r   TFc	                N   |j                         | _        ||| _        ||| _        ||| _        |xs | j
                  | _        |xs | j                  | _        |xs | j                  | _        |xs | j                  | _        t        | j                  | j                  | j                  | j                  | j                        }t        | j
                  || j                  | j                  | j                  | j                        }t        
| 0  | j                  |fi |	 y )N)r   r   r   r   )r    r   r   	exclusiver   )r&   rA   r   rN   r   queuer    r!   r   r   r	   r#   r$   )r%   r   rO   r    r   r!   r   rN   r   r'   r(   s             r   r$   zConsumer.__init__c   s    "))+"DL &DN"*D(djj
 1DMM*@d.@.@&:$*:*:DMM!%!3!3(,(8(8(,(8(8$(LL	2
 djj'"&"2"2"ll $"&"2"24 	u77r)   c                2    || _         t        | 	  |       y r+   rA   r#   reviver%   r&   r(   s     r   rR   zConsumer.revive       wr)   c                f    | j                          | j                  j                          d| _        y r0   )cancelrA   r1   r2   r5   s    r   r1   zConsumer.close   s"    r)   c                    | S r+   r4   r5   s    r   r6   zConsumer.__enter__   r7   r)   c                $    | j                          y r+   r9   r:   s       r   r>   zConsumer.__exit__   r?   r)   c                &    | j                  d      S )NT)infinite)	iterqueuer5   s    r   __iter__zConsumer.__iter__   s    ~~t~,,r)   c                    || j                   }| j                  d   j                  |      }|r|r| j                  |j                  |       |S )Nr   )r   queuesgetreceivepayload)r%   r   enable_callbacksmessages       r   fetchzConsumer.fetch   sE    >[[F++a.$$V,W__g6r)   c                    t        d      )Nz Use fetch(enable_callbacks=True))NotImplementedErrorr5   s    r   process_nextzConsumer.process_next   s    !"DEEr)   c                <    |t        d      | j                         S )Nz&discard_all does not implement filters)rf   purge)r%   
filterfuncs     r   discard_allzConsumer.discard_all   s$    !%8: :zz|r)   c                2    t        | j                  | ||      S r+   r   r   r%   r   r   s      r   iterconsumezConsumer.iterconsume       DOOT65AAr)   c                :    | j                  |      }t        |      S r+   )ro   list)r%   r   its      r   waitzConsumer.wait   s    e$Bxr)   c              #  l   K   t               D ]#  }| j                         }|s||r||k\  r y | % y wr+   )r   rd   )r%   r   rZ   items_since_startitems        r   r[   zConsumer.iterqueue   s=     !& 	::<D0E9J	s   24)NNNNNNNrB   NFr+   )NN)rE   rF   rG   rH   rO   r    r   r!   r   rN   r   r2   r$   rR   r1   r6   r>   r\   rd   rg   rk   ro   rt   r[   rJ   rK   s   @r   r   r   W   s    %EHKMGIKG8<?C-18< 
, & %	
 
-FBr)   r   c                  N     e Zd Z	 	 d fd	Zd	dZd Zd Zd Z fdZd Z	 xZ
S )
ConsumerSetc                `   |rd| _         || _        nd| _         |j                         | _        g }|r"|D ]  }|j                  |j                          |r=|j                         D ]*  \  }}	|j                  t        j                  |fi |	       , t        
| (  | j                  |fi | y )NTF)_provided_channelrA   r&   extendr^   itemsappendr	   	from_dictr#   r$   )r%   r   r   	consumersr&   r'   r^   r   
queue_namequeue_optionsr(   s             r   r$   zConsumerSet.__init__   s    %)D""DL%*D"%--/DL% /hoo./-6__-> L)
MeoojJMJKL 	v88r)   c                2    t        | j                  | ||      S r+   rm   rn   s      r   ro   zConsumerSet.iterconsume   rp   r)   c                "    | j                         S r+   )ri   r5   s    r   rk   zConsumerSet.discard_all   s    zz|r)   c                L    | j                  t        j                  |fi |      S r+   )	add_queuer	   r   )r%   rO   optionss      r   add_consumer_from_dictz"ConsumerSet.add_consumer_from_dict   s    ~~eooe?w?@@r)   c                H    |j                   D ]  }| j                  |        y r+   )r^   r   )r%   r   rO   s      r   add_consumerzConsumerSet.add_consumer   s!    __ 	"ENN5!	"r)   c                2    || _         t        | 	  |       y r+   rQ   rS   s     r   rR   zConsumerSet.revive   rT   r)   c                r    | j                          | j                  s| j                  j                          y y r+   )rV   r|   r&   r1   r5   s    r   r1   zConsumerSet.close   s)    %%LL  &r)   )NNNrx   )rE   rF   rG   r$   ro   rk   r   r   rR   r1   rJ   rK   s   @r   rz   rz      s.    =A9&BA" !r)   rz   )FN)rH   
__future__r   	itertoolsr   typingr   r   r   entityr   r	   typesr
   __all__r   entry_to_queuer   Producerr   r   rz   r4   r)   r   <module>r      sp   
 #     ##
# (5	"" 5p`y!! `F)!)$$ )!r)   