HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/kombu/__pycache__/compat.cpython-310.pyc
o

'we`�@s�dZddlmZddlmZddlmZddlmZddl	m
Z
mZer*ddlm
Z
d	ZejZddd
�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZdS)zYCarrot compatibility interface.

See https://pypi.org/project/carrot/ for documentation.
�)�annotations)�count)�
TYPE_CHECKING�)�	messaging)�Exchange�Queue)�
TracebackType)�	Publisher�ConsumerFNccs<�|j|d�td�D]}|r||krdS|��VqdS)N)�no_ackr)�consumer�drain_events)�
connection�consumerr�limit�	iteration�r�E/home/arjun/projects/env/lib/python3.10/site-packages/kombu/compat.py�_iterconsumes��rcsreZdZdZdZdZdZdZdZdZ				d�fdd�	Z
d	d
�Z�fdd�Zd
d�Z
ddd�Zedd��Z�ZS)r
zCarrot compatible producer.��directTFNc	s�|r|}|p|j|_|p|j|_|p|j|_|dur||_|dur$||_t|jt�s9t|j|j|j|j|jd�|_t�j||jfi|��dS)N)�name�type�routing_key�auto_delete�durable)	�exchange�
exchange_typerrr�
isinstancer�super�__init__)	�selfrrrrrr�channel�kwargs��	__class__rrr!)s"�zPublisher.__init__cOs|j|i|��S�N)�publish)r"�argsr$rrr�send@�zPublisher.sendcst���d|_dS�NT)r �close�_closed�r"r%rrr-Cs

zPublisher.closecC�|Sr'rr/rrr�	__enter__G�zPublisher.__enter__�exc_type�type[BaseException] | None�exc_val�BaseException | None�exc_tb�TracebackType | None�return�NonecC�|��dSr'�r-�r"r3r5r7rrr�__exit__J�zPublisher.__exit__cCs|jSr')r#r/rrr�backendRszPublisher.backend)NNNNNN�r3r4r5r6r7r8r9r:)�__name__�
__module__�__qualname__�__doc__rrrrrr.r!r*r-r1r>�propertyr@�
__classcell__rrr%rr
s$�
r
cs�eZdZdZdZdZdZdZdZdZ	dZ
dZ			d'�fdd�	Z�fd	d
�Z
dd�Zd
d�Zd(dd�Zdd�Zd)dd�Zdd�Zd*dd �Zd+d!d"�Zd*d#d$�Zd)d%d&�Z�ZS),rzCarrot compatible consumer.rrTFNc	
s�|��|_|dur||_|dur||_|dur||_|p|j|_|p$|j|_|p*|j|_|p0|j|_t	|j|j|j|j|jd�}t
|j||j|j|j|jd�}t�j|j|fi|	��dS)N)rrrr)rrr�	exclusiver)
r#r@rrHr�queuerrrrrr r!)
r"rrIrrrrrHrr$r%rrr!cs2
��zConsumer.__init__c�||_t��|�dSr'�r@r �revive�r"r#r%rrrL��zConsumer.revivecCs|��|j��d|_dSr,)�cancelr@r-r.r/rrrr-�s

zConsumer.closecCr0r'rr/rrrr1�r2zConsumer.__enter__r3r4r5r6r7r8r9r:cCr;r'r<r=rrrr>�r?zConsumer.__exit__cCs|jdd�S)NT)�infinite)�	iterqueuer/rrr�__iter__�szConsumer.__iter__cCs8|dur|j}|jd�|�}|r|r|�|j|�|S)Nr)r�queues�get�receive�payload)r"r�enable_callbacks�messagerrr�fetch�szConsumer.fetchcCstd��)Nz Use fetch(enable_callbacks=True))�NotImplementedErrorr/rrr�process_next��zConsumer.process_nextcCs|durtd��|��S)Nz&discard_all does not implement filters)rZ�purge)r"�
filterfuncrrr�discard_all�s
�zConsumer.discard_allcC�t|j|||�Sr'�rr�r"rrrrr�iterconsume�r+zConsumer.iterconsumecCs|�|�}t|�Sr')rc�list)r"r�itrrr�wait�s
z
Consumer.waitccs>�t�D]}|��}|s|dus|r||krdS|VqdSr')rrY)r"rrP�items_since_start�itemrrrrQ�s�
��zConsumer.iterqueue)NNNNNNNrA�NFr')NN)rBrCrDrErIrrrrrHrr.r!rLr-r1r>rRrYr[r_rcrfrQrGrrr%rrWs2�

	


rcsXeZdZ		d�fdd�	Zddd�Zdd�Zd	d
�Zdd�Z�fd
d�Zdd�Z	�Z
S)�ConsumerSetNc
s�|r	d|_||_nd|_|��|_g}|r |D]}|�|j�q|r7|��D]\}}	|�tj|fi|	���q&t	�j
|j|fi|��dS)NTF)�_provided_channelr@r#�extendrS�items�appendr�	from_dictr r!)
r"rro�	consumersr#r$rSr�
queue_name�
queue_optionsr%rrr!�s
zConsumerSet.__init__FcCr`r'rarbrrrrc�r+zConsumerSet.iterconsumecCs|��Sr')r]r/rrrr_�r\zConsumerSet.discard_allcKs|�tj|fi|���Sr')�	add_queuerro)r"rI�optionsrrr�add_consumer_from_dict�sz"ConsumerSet.add_consumer_from_dictcCs|jD]}|�|�qdSr')rSrs)r"rrIrrr�add_consumer�s
�zConsumerSet.add_consumercrJr'rKrMr%rrrL�rNzConsumerSet.revivecCs |��|js|j��dSdSr')rOrkr#r-r/rrrr-�s�zConsumerSet.close)NNNri)rBrCrDr!rcr_rurvrLr-rGrrr%rrj�s�
rj)FN)rE�
__future__r�	itertoolsr�typingrrr�entityrr�typesr	�__all__ro�entry_to_queuer�Producerr
rrjrrrr�<module>s
8c