Ë
    šQjì;  ã                  óZ  — d Z ddlmZ ddlZddlZddlmZm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mZmZ d	dlmZ d	dlmZmZ d	dlmZ d	dlmZ d	dlmZ d	dlmZm Z  d	dl!m"Z" d	dl#m$Z$ dZ%dZ&dZ' ee(«      Z)e)jT                  e)jV                  cZ*Z+ G d„ d«      Z, G d„ d«      Z-y)zGeneric process mailbox.é    )ÚannotationsN)ÚdefaultdictÚdeque)Úcontextmanager)Úcopy)Úcount)Útimeé   )ÚConsumerÚExchangeÚProducerÚQueue)ÚLamportClock)Úmaybe_declareÚoid_from)ÚInconsistencyError)Ú
get_logger)Úmatch)Úmaybe_evaluateÚreprcall)Úcached_property)Úuuidé
   zýA node named {node.hostname} is already using this process mailbox!

Maybe you forgot to shutdown the other node or did not do so properly?
Or if you meant to start multiple nodes on the same host please make sure
you give each node a unique node name!
)ÚNodeÚMailboxc                  ó~   — e Zd ZdZdZdZdZdZdZ	 	 dd„Z	dd„Z
d„ Zd„ Zdd„Z	 	 dd„Zdd	„Zd
„ Zd„ Zdd„ZeZd„ Zy)r   zMailbox node.Nc                óœ   — || _         || _        || _        || _        | j                  j                  j
                  | _        |€i }|| _        y ©N)ÚchannelÚmailboxÚhostnameÚstateÚclockÚadjustÚadjust_clockÚhandlers)Úselfr!   r"   r   r&   r    s         úH/var/www/html/truck-me/venv/lib/python3.12/site-packages/kombu/pidbox.pyÚ__init__zNode.__init__8   sH   € àˆŒØˆŒØ ˆŒØˆŒ
Ø ŸL™L×.Ñ.×5Ñ5ˆÔØÐØˆHØ ˆ�ó    c                óÔ   ‡ — ‰ j                   j                  ‰ j                  «      }ˆ fd„}||_        t	        |xs ‰ j
                  |gf||€‰ j                   j                  n|dœ|¤ŽS )Nc                ó^   •— |r*t        j                  t        j                  ‰¬«      «       y y )N)Únode)ÚwarningsÚwarnÚW_PIDBOX_IN_USEÚformat)ÚnameÚmessagesÚ	consumersr'   s      €r(   Úverify_exclusivez'Node.Consumer.<locals>.verify_exclusiveF   s%   ø€ ÙÜ—‘œo×4Ñ4¸$Ð4Ó?Õ@ð r*   )Úno_ackÚaccept)r    Ú	get_queuer!   Úon_declaredr   r   r7   )r'   r   r6   r7   ÚoptionsÚqueuer5   s   `      r(   r   zNode.ConsumerC   sm   ø€ Ø—‘×&Ñ& t§}¡}Ó5ˆô	Að -ˆÔäØÒ#�t—|‘| e Wð
Ø5;Ø*0¨.�4—<‘<×&Ò&¸fñ
ð ñ
ð 	
r*   c                ó8   — || j                   |j                  <   |S r   )r&   Ú__name__)r'   Úfuns     r(   ÚhandlerzNode.handlerQ   s   € Ø&)ˆ�‰�c—l‘lÑ#Øˆ
r*   c                ó    — t        d|d¬«       y )NzCannot decode message: %rr
   ©Úexc_info)Úerror)r'   ÚmessageÚexcs      r(   Úon_decode_errorzNode.on_decode_errorU   s   € ÜÐ)¨3¸Ö;r*   c                ó€   — | j                  ||xs | j                  g| j                  ¬«      }|j                  «        |S )N)r   Ú	callbacksrF   )r   Úhandle_messagerF   Úconsume)r'   r   ÚcallbackÚconsumers       r(   ÚlistenzNode.listenX   sE   € Ø—=‘=¨Ø,4Ò,K¸×8KÑ8KÐ+LØ15×1EÑ1Eð !ó Gˆð 	×ÑÔØˆr*   c                ó\  — |xs i }t        dt        |d|¬«      ||«       |xr | j                  xs | j                  }	  |||«      }|r'| j                  | j                  |i|d   |d	   |¬
«       |S # t        $ r ‚ t
        $ r%}t        d|d¬«       dt        |«      i}Y d }~Œ]d }~ww xY w)Nz1pidbox received method %s [reply_to:%s ticket:%s]© )Úkwargszpidbox command error: %rr
   rA   rC   ÚexchangeÚrouting_key)rQ   rR   Úticket)
Údebugr   Úhandle_callÚhandle_castÚ
SystemExitÚ	ExceptionrC   ÚreprÚreplyr!   )	r'   ÚmethodÚ	argumentsÚreply_torS   rP   ÚhandlerZ   rE   s	            r(   ÚdispatchzNode.dispatch_   sÆ   € à’O ˆ	ÜÐAÜ�v˜r¨)Ô4°hÀô	HàÒ.˜d×.Ñ.ÒB°$×2BÑ2Bˆð	)Ù˜6 9Ó-ˆEñ Ø�J‰J˜Ÿ™ uÐ-Ø (¨Ñ 4Ø#+¨MÑ#:Ø$ð ô &ð ˆøô ò 	ØÜò 	)ÜÐ,¨c¸AÕ>Øœd 3›iÐ(�Eûð	)ús   Á 	A4 Á4B+ÂB&Â&B+c                óN   — |si n|} | j                   |   | j                  fi |¤ŽS r   )r&   r"   ©r'   r[   r\   s      r(   r^   zNode.handlet   s*   € Ù'‘B¨Yˆ	Ø$ˆt�}‰}˜VÑ$ T§Z¡ZÑ=°9Ñ=Ð=r*   c                ó&   — | j                  ||«      S r   ©r^   ra   s      r(   rU   zNode.handle_callx   ó   € Ø�{‰{˜6 9Ó-Ð-r*   c                ó&   — | j                  ||«      S r   rc   ra   s      r(   rV   zNode.handle_cast{   rd   r*   c                óL  — |j                  d«      }|j                  d«      }|j                  d«      }|r.| j                  |j                  j                  d«      xs d«       | j                  }d}|r||v rd}n|r|rt	        |||«      rd}nd}|r | j
                  di |¤ŽS y )	NÚdestinationÚpatternÚmatcherr#   r   FTrO   )Úgetr%   Úheadersr!   r   r_   )r'   ÚbodyrD   rg   rh   ri   r!   Úrun_dispatchs           r(   rI   zNode.handle_message~   s¦   € Ø—h‘h˜}Ó-ˆØ—(‘(˜9Ó%ˆØ—(‘(˜9Ó%ˆÙØ×Ñ˜gŸo™o×1Ñ1°'Ó:Ò?¸aÔ@Ø—=‘=ˆØˆÙØ˜;Ñ&Ø#‘Ù™Ü�X˜w¨Ô0Ø#‘àˆLÙØ �4—=‘=Ñ( 4Ñ(Ð(ð r*   c                ó‚   — | j                   j                  ||||| j                  | j                   j                  ¬«       y )N)r   Ú
serializer)r    Ú_publish_replyr   ro   )r'   ÚdatarQ   rR   rS   rP   s         r(   rZ   z
Node.reply’   s6   € Ø�‰×#Ñ# D¨(°KÀØ,0¯L©LØ/3¯|©|×/FÑ/Fð 	$õ 	Hr*   ©NNNN)NTN©NN)NNNr   )r=   Ú
__module__Ú__qualname__Ú__doc__r!   r    r&   r"   r   r)   r   r?   rF   rM   r_   r^   rU   rV   rI   Údispatch_from_messagerZ   rO   r*   r(   r   r   &   sv   „ Ùð €Hð €Gð €Hð €Eð €Gà59Ø(,ó	!ó
òò<óð *.Ø'+óó*>ò.ò.ó)ð$ +ÐóHr*   r   c                  ó  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZdg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ed„ «       Zd„ Zedd„«       Z	 dd„Z	 	 	 dd„Z	 	 	 	 d d„Z	 	 dd„Zd„ Zd„ Z e!d„ «       Z"ed„ «       Z#y)!r   zProcess Mailbox.z	%s.pidboxzreply.%s.pidboxNÚdirectÚjsonc                óè  — || _         || _        || _        |€
t        «       n|| _        | j                  | j                   | j                  «      | _        | j                  | j                   «      | _        t        t        «      | _        |€| j                  n|| _        |€| j                  n|| _        || _        |	| _        |
| _        || _        || _        || _        || _        |r|
rt+        d«      ‚y y )Nzyqueue_exclusive and queue_durable cannot both be True (exclusive queues are automatically deleted and cannot be durable).)Ú	namespaceÚ
connectionÚtyper   r#   Ú_get_exchangerQ   Ú_get_reply_exchangeÚreply_exchanger   r   Ú	unclaimedr7   ro   Ú	queue_ttlÚqueue_expiresÚqueue_durableÚqueue_exclusiveÚreply_queue_ttlÚreply_queue_expiresÚ_producer_poolÚ
ValueError)r'   r|   r~   r}   r#   r7   ro   Úproducer_poolrƒ   r„   r…   r†   r‡   rˆ   s                 r(   r)   zMailbox.__init__´   sà   € ð #ˆŒØ$ˆŒØˆŒ	Ø', }”\”^¸%ˆŒ
Ø×*Ñ*¨4¯>©>¸4¿9¹9ÓEˆŒØ"×6Ñ6°t·~±~ÓFˆÔÜ$¤UÓ+ˆŒØ%+ ^�d—k’k¸ˆŒØ-7Ð-?˜$Ÿ/š/ÀZˆŒØ"ˆŒØ*ˆÔØ*ˆÔØ.ˆÔØ.ˆÔØ#6ˆÔ Ø+ˆÔÙ™}ÜðVóð ð  -ˆ?r*   c                ó*   — t        | «      }||_        |S r   )r   r}   )r'   r}   Úbounds      r(   Ú__call__zMailbox.__call__Ð   s   € Ü�T“
ˆØ%ˆÔØˆr*   c                ó^   — |xs t        j                  «       }| j                  ||||| ¬«      S )N)r    )ÚsocketÚgethostnameÚnode_cls)r'   r!   r"   r   r&   s        r(   r   zMailbox.NodeÕ   s.   € ØÒ3œv×1Ñ1Ó3ˆØ�}‰}˜X u¨g°xÈˆ}ÓNÐNr*   c           	     ó>   — |si n|}| j                  |||d|||¬«      S )NT)rZ   ÚtimeoutrK   r   ©Ú
_broadcast)r'   rg   ÚcommandrP   r”   rK   r   s          r(   ÚcallzMailbox.callÙ   s2   € á!‘ vˆØ�‰˜w¨°Ø%)°7Ø(0Ø'.ð ó 0ð 	0r*   c                ó8   — |si n|}| j                  |||d¬«      S ©NF)rZ   r•   )r'   rg   r—   rP   s       r(   ÚcastzMailbox.castá   s"   € Ù!‘ vˆØ�‰˜w¨°À5ˆÓIÐIr*   c                ó6   — |si n|}| j                  ||d¬«      S rš   r•   )r'   r—   rP   s      r(   ÚabcastzMailbox.abcastå   s    € Ù!‘ vˆØ�‰˜w¨°eˆÓ<Ð<r*   c           	     ó>   — |si n|}| j                  ||d||||¬«      S )NT)rZ   r”   ÚlimitrK   r   r•   )r'   r—   rP   r”   rŸ   rK   r   s          r(   Ú
multi_callzMailbox.multi_callé   s2   € á!‘ vˆØ�‰˜w¨°dØ'.°eØ(0Ø'.ð ó 0ð 	0r*   c           
     óì   — | j                   }t        |› d| j                  j                  › �| j                  || j                  | j
                  | j                   | j                  | j                  ¬«      S )Nú.)rQ   rR   ÚdurableÚ	exclusiveÚauto_deleteÚexpiresÚmessage_ttl)Úoidr   r�   r2   r…   r†   rˆ   r‡   )r'   r¨   s     r(   Úget_reply_queuezMailbox.get_reply_queueñ   so   € Ø�h‰hˆÜØˆe�1�T×(Ñ(×-Ñ-Ð.Ð/Ø×(Ñ(ØØ×&Ñ&Ø×*Ñ*Ø ×.Ñ.Ð.Ø×,Ñ,Ø×,Ñ,ô	
ð 		
r*   c                ó"   — | j                  «       S r   )r©   ©r'   s    r(   Úreply_queuezMailbox.reply_queueþ   s   € à×#Ñ#Ó%Ð%r*   c           	     óÀ   — t        |› d| j                  › d�| j                  | j                  | j                  | j                   | j
                  | j                  ¬«      S )Nr¢   z.pidbox)rQ   r£   r¤   r¥   r¦   r§   )r   r|   rQ   r…   r†   r„   rƒ   )r'   r!   s     r(   r8   zMailbox.get_queue  sY   € ÜØˆj˜˜$Ÿ.™.Ð)¨Ð1Ø—]‘]Ø×&Ñ&Ø×*Ñ*Ø ×.Ñ.Ð.Ø×&Ñ&ØŸ™ô
ð 	
r*   c              #  ó¸   K  — |r|–— y | j                   r(| j                   j                  «       5 }|–— d d d «       y t        |d¬«      –— y # 1 sw Y   y xY w­w)NF)Úauto_declare)r‹   Úacquirer   )r'   Úproducerr   s      r(   Úproducer_or_acquirezMailbox.producer_or_acquire  sX   è ø€ áØ‹NØ×ÒØ×#Ñ#×+Ñ+Ó-ð °Ø’÷ð ô ˜7°Ô7Ó7÷ð üs   ‚.A°AµAÁAÁAc           
     ó.  — |xs | j                   j                  }t        |ddd¬«      }| j                  ||«      5 }	  |j                  |f|||g|| j
                  j                  «       dœddœ|¤Ž d d d «       y # t        $ r Y Œw xY w# 1 sw Y   y xY w)Nry   Ú	transientF)Úexchange_typeÚdelivery_moder£   )rS   r#   T)rQ   rR   Údeclarerk   Úretry)r}   Údefault_channelr   r²   Úpublishr#   Úforwardr   )	r'   rZ   rQ   rR   rS   r   r±   ÚoptsÚchans	            r(   rp   zMailbox._publish_reply  s·   € àÒ9˜$Ÿ/™/×9Ñ9ˆÜ˜H°HØ*5Ø$)ô+ˆð ×%Ñ% h°Ó5ð 	¸ð
Ø �× Ñ ØðØ$,¸+Ø%˜JØ"(°4·:±:×3EÑ3EÓ3Gñ1à!ñ	ð
 ò÷	ð 	øô &ò áðú÷	ð 	ús(   ¼B¾5A<Á<	BÂBÂBÂBÂBc           	     ó  — ||||	|
dœ}|xs | j                   j                  }| j                  }|rNt        | j	                  |«      «       |j                  || j                  j                  | j                  dœ¬«       |xs | j                  }| j                  ||«      5 }|j                  ||j                  |g| j                  j                  «       |rt        «       |z   nddœ|d¬«       d d d «       y # 1 sw Y   y xY w)N)r[   r\   rg   rh   ri   )rQ   rR   )rS   r]   r   )r#   r¦   T)rQ   r·   rk   ro   r¸   )r}   r¹   rQ   r   r¬   Úupdater�   r2   r¨   ro   r²   rº   r#   r»   r	   )r'   r~   r\   rg   Úreply_ticketr   r”   ro   r±   rh   ri   rD   r½   rQ   s                 r(   Ú_publishzMailbox._publish*  sý   € ð "Ø )Ø"-Ø%Ø%ñ	'ˆð
 Ò9˜$Ÿ/™/×9Ñ9ˆØ—=‘=ˆÙÜ˜$×*Ñ*¨4Ó0Ô1Ø�N‰N ,Ø15×1DÑ1D×1IÑ1IØ48·H±Hñ%>ð ô ?ð  Ò2 4§?¡?ˆ
Ø×%Ñ% h°Ó5ð 	¸Ø×ÑØ (§-¡-¸(¸Ø"&§*¡*×"4Ñ"4Ó"6Ù8?¤D£F¨WÒ$4ÀQñHà%¨Tð	 ô ÷	÷ 	ñ 	ús   Â!AC7Ã7D c                ó2  — |�9t        |t        t        f«      s#t        dj	                  t        |«      «      «      ‚|
�Ot        |
t        «      s?|�=t        |t        «      s-t        dj	                  t        |
«      t        |«      «      «      ‚|xs i }|xr
 t        «       xs d }|xs | j                  j                  }|€|r|xr t        |«      xs d }|	xs | j                  }	| j                  |||||||	|
|¬«	       |r| j                  |||||¬«      S y )Nz'destination must be a list/tuple not {}z.pattern and matcher must be strings not {}, {})rg   rÀ   r   r”   ro   rh   ri   )rŸ   r”   rK   r   )Ú
isinstanceÚlistÚtuplerŠ   r1   r~   Ústrr   r}   r¹   Úlenro   rÁ   Ú_collect)r'   r—   r\   rg   rZ   r”   rŸ   rK   r   ro   rh   ri   rÀ   r½   s                 r(   r–   zMailbox._broadcastB  s2  € ð Ð"Ü˜{¬T´5¨MÔ:ÜØ9×@Ñ@Ü˜Ó%ó'ó(ð (ð Ð¬
°7¼CÔ(@ØÐ#¬J°wÄÔ,DÜð%ß%+¡V¬D°«M¼4À»=Ó%Ióð ð
 ’O ˆ	ØÒ'¤£Ò/¨4ˆØÒ9˜$Ÿ/™/×9Ñ9ˆð ˆ=™[ØÒ4¤C¨Ó$4Ò<¸ˆEàÒ2 4§?¡?ˆ
Ø�‰�g˜y°kØ#/Ø"Ø%Ø!+Ø%Ø%ð 	ô 	'ñ Ø—=‘= °UØ)0Ø*2Ø)-ð !ó /ð /ð r*   c                óæ  ‡‡‡‡‡— |€| j                   }|xs | j                  j                  }| j                  }t	        ||g|d¬«      }	g Š| j
                  Š| j                  j                  Š	 ‰j                  ‰«      S # t        $ r Y nw xY wˆˆˆˆˆfd„}
|	j                  |
«       	 |	5  |xr t        |«      xs
 t        «       D ]9  }	 | j                  j                  |¬«       Œ!# t        j                  $ r Y  nw xY w ‰cd d d «       |j!                  |j"                  «       S # 1 sw Y   nxY w	 |j!                  |j"                  «       y # |j!                  |j"                  «       w xY w)NT)r7   r6   c                ó  •— |j                   j                  } ‰ |d«      xs d«        |d«      }|rt        «       |kD  ry  |d‰«      }|‰k(  r‰r ‰| «       ‰j                  | «       y ‰	|   j                  | «       y )Nr#   r   r¦   rS   )rk   rj   r	   Úappend)
rl   rD   Úheaderr¦   Úthis_idr%   rK   Ú	responsesrS   r‚   s
        €€€€€r(   Ú
on_messagez$Mailbox._collect.<locals>.on_messagez  s{   ø€ à—_‘_×(Ñ(ˆFÙ™ ›Ò-¨AÔ.Ù˜YÓ'ˆGÙœ4›6 GÒ+ØÙ˜X vÓ.ˆGØ˜&Ò ÙÙ˜T”NØ× Ñ  Õ&à˜'Ñ"×)Ñ)¨$Õ/r*   )r”   )r7   r}   r¹   r¬   r   r‚   r#   r$   ÚpopÚKeyErrorÚregister_callbackÚranger   Údrain_eventsr�   r”   Úafter_reply_message_receivedr2   )r'   rS   rŸ   r”   rK   r   r7   r½   r;   rL   rÏ   Úir%   rÎ   r‚   s    `  `       @@@r(   rÈ   zMailbox._collecti  sW  ü€ ð ˆ>Ø—[‘[ˆFØÒ9˜$Ÿ/™/×9Ñ9ˆØ× Ñ ˆÜ˜D 5 '°&ÀÔFˆØˆ	Ø—N‘Nˆ	Ø—z‘z×(Ñ(ˆð	Ø—=‘= Ó(Ð(øÜò 	Ùð	ú÷	0ð 	0ð 	×"Ñ" :Ô.ð		:Øñ !ØÒ/¤5¨£<Ò:´5³7ò �AðØŸ™×4Ñ4¸WÐ4ÕEøÜ!Ÿ>™>ò Úðúðð
 !÷!ð !ð ×-Ñ-¨e¯j©jÕ9÷!ð !úð !ð ×-Ñ-¨e¯j©jÕ9øˆD×-Ñ-¨e¯j©jÕ9úsZ   Á/B  Â 	BÂBÂ*E Â,D*ÃC)Ã(D*Ã)D Ã<D*Ã?D Ä D*Ä	E Ä*D3Ä/E ÅE0c                ó:   — t        | j                  |z  |dd¬«      S )NFr´   ©r~   r£   r¶   )r   Úexchange_fmt)r'   r|   r~   s      r(   r   zMailbox._get_exchange•  s%   € Ü˜×)Ñ)¨IÑ5Ø!Ø %Ø&1ô3ð 	3r*   c                ó:   — t        | j                  |z  ddd¬«      S )Nry   Fr´   rØ   )r   Úreply_exchange_fmt)r'   r|   s     r(   r€   zMailbox._get_reply_exchange›  s%   € Ü˜×/Ñ/°)Ñ;Ø%Ø %Ø&1ô3ð 	3r*   c                ó   — t        | «      S r   )r   r«   s    r(   r¨   zMailbox.oid¡  s   € ä˜‹~Ðr*   c                ó,   — t        | j                  «      S r   )r   r‰   r«   s    r(   r‹   zMailbox.producer_pool¥  s   € ä˜d×1Ñ1Ó2Ð2r*   )ry   NNNNNNNFFNg      $@rr   r   )Nr
   NNNrs   )NNNNNNNN)
NNFr
   NNNNNN)$r=   rt   ru   rv   r   r’   rÙ   rÛ   r|   r}   r~   rQ   r�   r7   ro   r)   rŽ   r˜   r›   r�   r    r©   r   r¬   r8   r   r²   rp   rÁ   r–   rÈ   r   r€   Úpropertyr¨   r‹   rO   r*   r(   r   r   ˜   s/  „ Ùà€HØ€LØ*Ðð €Ið €Jð €Dð €Hð €Nð ˆX€Fð €Jð 8<Ø=AØ/3Ø6;Ø;?óò8ó
Oð 15Ø26ó0óJó=ð 89Ø6:ó0ò
ð ñ&ó ð&ò	
ð ò8ó ð8ð /3óð& 59Ø:>ØGKóð0 ?CØ15Ø;?Ø)-ó%/ðP 26Ø&*ó*:òX3ò3ð ñó ðð ñ3ó ñ3r*   r   ).rv   Ú
__future__r   r�   r.   Úcollectionsr   r   Ú
contextlibr   r   Ú	itertoolsr   r	   Ú r   r   r   r   Úclocksr   Úcommonr   r   Ú
exceptionsr   Úlogr   ri   r   Úutils.functionalr   r   Úutils.objectsr   Ú
utils.uuidr   ÚREPLY_QUEUE_EXPIRESr0   Ú__all__r=   ÚloggerrT   rC   r   r   rO   r*   r(   ú<module>rî      sŠ   ðÙ å "ã Û ß *Ý %Ý Ý Ý ç 1Ó 1Ý  ß +Ý *Ý Ý ß 6Ý *Ý àÐ ð€ð €Ù	�HÓ	€Ø�|‰|˜VŸ\™\€€€u÷oHñ oH÷dO3ò O3r*   