
     h                         d Z ddlmZ ddlmZ ddlmZ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dS )zYCarrot compatibility interface.

See https://pypi.org/project/carrot/ for documentation.
    )count   )	messaging)ExchangeQueue)	PublisherConsumerFNc              #      K   |                     |           t          d          D ]#}|r	||k    r d S |                                 V  $d S )N)no_ackr   )consumer   drain_events)
connectionconsumerr   limit	iterations        H/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/kombu/compat.py_iterconsumer      sp      F###1XX ( (	 	Y%''EE%%''''''( (    c                   t     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 Zed             Z xZS )r   zCarrot compatible producer. directTFNc                 `   |r|}|p| j         | _         |p| j        | _        |p| j        | _        ||| _        ||| _        t          | j         t                    s2t          | j         | j        | j        | j        | j                  | _          t                      j        || j         fi | d S )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 1DM*@d.@&:$*:"*D"DL$-22 	;$$-*.*<151A151A-1\	; ; ;DM
 	T]==f=====r   c                      | j         |i |S N)publish)r#   argsr%   s      r   sendzPublisher.send:   s    t|T,V,,,r   c                 V    t                                                       d| _        d S NT)r!   close_closed)r#   r&   s    r   r.   zPublisher.close=   s    r   c                     | S r(    r#   s    r   	__enter__zPublisher.__enter__A       r   c                 .    |                                   d S r(   r.   r#   exc_infos     r   __exit__zPublisher.__exit__D       

r   c                     | j         S r(   )r$   r2   s    r   backendzPublisher.backendG   s
    |r   )NNNNNN)__name__
__module____qualname____doc__r   r   r   r   r   r/   r"   r+   r.   r3   r9   propertyr<   __classcell__r&   s   @r   r   r      s        %%HMKGKG>B?C> > > > > >.- - -           X    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 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   TFNc	                    |                                 | _        ||| _        ||| _        ||| _        |p| j        | _        |p| j        | _        |p| j        | _        |p| j        | _        t          | j        | j        | j        | j        | j                  }t          | j        || j        | j        | j        | j                  } t                      j        | j        |fi |	 d S )N)r   r   r   r   )r   r   r   	exclusiver   )r$   r<   r   rF   r   queuer   r   r   r   r   r!   r"   )r#   r   rG   r   r   r   r   rF   r   r%   r&   s             r   r"   zConsumer.__init__X   s	    "))++"DL &DN"*D(dj
 1DM*@d.@&:$*:DM!%!3(,(8(,(8$(L	2 2 2
 dj'"&"2"l $"&"24 4 4 	u7777777r   c                 X    || _         t                                          |           d S r(   r<   r!   reviver#   r$   r&   s     r   rJ   zConsumer.revivev   &    wr   c                 n    |                                   | j                                         d| _        d S r-   )cancelr<   r.   r/   r2   s    r   r.   zConsumer.closez   s.    r   c                     | S r(   r1   r2   s    r   r3   zConsumer.__enter__   r4   r   c                 .    |                                   d S r(   r6   r7   s     r   r9   zConsumer.__exit__   r:   r   c                 .    |                      d          S )NT)infinite)	iterqueuer2   s    r   __iter__zConsumer.__iter__   s    ~~t~,,,r   c                     || j         }| j        d                             |          }|r|r|                     |j        |           |S )Nr   )r   queuesgetreceivepayload)r#   r   enable_callbacksmessages       r   fetchzConsumer.fetch   sR    >[F+a.$$V,, 	7 7W_g666r   c                      t          d          )Nz Use fetch(enable_callbacks=True))NotImplementedErrorr2   s    r   process_nextzConsumer.process_next   s    !"DEEEr   c                 L    |t          d          |                                 S )Nz&discard_all does not implement filters)r^   purge)r#   
filterfuncs     r   discard_allzConsumer.discard_all   s+    !%8: : :zz||r   c                 0    t          | j        | ||          S r(   r   r   r#   r   r   s      r   iterconsumezConsumer.iterconsume       DOT65AAAr   c                 J    |                      |          }t          |          S r(   )rg   list)r#   r   its      r   waitzConsumer.wait   s     e$$Bxxr   c              #   z   K   t                      D ])}|                                 }|s||r	||k    r d S |V  *d S r(   )r   r\   )r#   r   rR   items_since_startitems        r   rS   zConsumer.iterqueue   sb      !& 	 	::<<D  ".0E99JJJJ	 	r   )NNNNNNNNFr(   )NN)r=   r>   r?   r@   rG   r   r   r   r   rF   r   r/   r"   rJ   r.   r3   r9   rT   r\   r_   rc   rg   rl   rS   rB   rC   s   @r   r	   r	   L   sC       %%EHKMGIKG8<?C-18 8 8 8 8 8<           
    - - -   F F F   B B B 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 )ConsumerSetNc                 r   |rd| _         || _        n d| _         |                                | _        g }|r|D ]}|                    |j                   |r?|                                D ]*\  }}	|                    t          j        |fi |	           + t                      j
        | j        |fi | d S )NTF)_provided_channelr<   r$   extendrV   itemsappendr   	from_dictr!   r"   )r#   r   rx   	consumersr$   r%   rV   r   
queue_namequeue_optionsr&   s             r   r"   zConsumerSet.__init__   s     	0%)D""DLL%*D"%--//DL 	/% / /ho.... 	L-6__->-> L L)
MeojJJMJJKKKKv8888888r   Fc                 0    t          | j        | ||          S r(   re   rf   s      r   rg   zConsumerSet.iterconsume   rh   r   c                 *    |                                  S r(   )ra   r2   s    r   rc   zConsumerSet.discard_all   s    zz||r   c                 L    |                      t          j        |fi |          S r(   )	add_queuer   rx   )r#   rG   optionss      r   add_consumer_from_dictz"ConsumerSet.add_consumer_from_dict   s&    ~~eoe??w??@@@r   c                 D    |j         D ]}|                     |           d S r(   )rV   r   )r#   r   rG   s      r   add_consumerzConsumerSet.add_consumer   s2    _ 	" 	"ENN5!!!!	" 	"r   c                 X    || _         t                                          |           d S r(   rI   rK   s     r   rJ   zConsumerSet.revive   rL   r   c                 r    |                                   | j        s| j                                         d S d S r(   )rN   rt   r$   r.   r2   s    r   r.   zConsumerSet.close   s>    % 	!L     	! 	!r   )NNNrp   )r=   r>   r?   r"   rg   rc   r   r   rJ   r.   rB   rC   s   @r   rr   rr      s        =A9 9 9 9 9 9&B B B B  A A A" " "         ! ! ! ! ! ! !r   rr   )FN)r@   	itertoolsr   r   r   entityr   r   __all__rx   entry_to_queuer   Producerr   r	   rr   r1   r   r   <module>r      s
   
             # # # # # # # #
# ( ( ( (0 0 0 0 0	" 0 0 0f[ [ [ [ [y! [ [ [|)! )! )! )! )!)$ )! )! )! )! )!r   