o
    ›¨Êh’  ã                   @   s  d Z ddlmZ ddl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 ddlmZ dd	lmZ d.dd„Zdd„ Zdd„ Zejed�ejdde	edddd�ejdde	eddd�ejdde	dddd �eje
d!d"„ ƒƒƒƒƒƒZejed#did$�ejd%e d&d'„ ej ¡ D ƒ¡d(�ejdde	edddd�ejdde	eddd�ejdde	dddd �eje
d)d*„ ƒƒƒƒƒƒƒZejed#did$�ejd%e d+d'„ ej ¡ D ƒ¡d(�ejdde	edddd�ejdde	eddd�ejdde	dddd �eje
d,d-„ ƒƒƒƒƒƒƒZ dS )/z@The ``celery control``, ``. inspect`` and ``. status`` programs.é    )ÚpartialN)Údumps)ÚCOMMA_SEPARATED_LISTÚCeleryCommandÚCeleryOptionÚhandle_preload_options)ÚCeleryCommandException)ÚEX_UNAVAILABLE)Útext)ÚPanelFc                 C   sl   t t|ƒƒ}|| }| jj|› d�ddd�}| j |¡\}}| jjd|› |› �|r/t |d¡nd|d� d S )	Nz: ÚcyanT)ÚfgÚboldz->é   Ú )Ú	show_body)ÚnextÚiterÚobjÚstyleÚprettyÚsay_chatr
   Úindent)ÚctxÚrepliesÚ
show_replyÚnodeÚreplyÚstatusÚpreply© r    úD/var/www/html/env/lib/python3.10/site-packages/celery/bin/control.pyÚ_say_remote_command_reply   s   
þr"   c              
   c   sÀ   � d}zQt |ƒD ]2\}}z	| j| \}}W n ty,   | jr"Y  n&t d || j¡¡‚w ||d ur6||ƒn|fV  qW ||d … |d d …< d S W ||d … |d d …< d S ||d … |d d …< w )Nr   z Command {!r} takes arguments: {})Ú	enumerateÚargsÚ
IndexErrorÚvariadicÚclickÚ
UsageErrorÚformatÚ	signature)ÚmetaÚmethodr$   ÚiÚargÚnameÚtypr    r    r!   Ú_consume_arguments   s(   €ÿÿýöù.r1   c                 C   sJ   t j|  }i }|jr| dd„ t|| |ƒD ƒ¡ |jr#| |j|i¡ |S )Nc                 S   s   i | ]\}}||“qS r    r    )Ú.0ÚkÚvr    r    r!   Ú
<dictcomp>.   s    
ÿz&_compile_arguments.<locals>.<dictcomp>)r   r+   r$   Úupdater1   r&   )Úactionr$   r+   Ú	argumentsr    r    r!   Ú_compile_arguments*   s   


ÿr9   )Úclsz-tz	--timeoutg      ð?zRemote Control Optionsz%Timeout in seconds waiting for reply.)r:   ÚtypeÚdefaultÚ
help_groupÚhelpz-dz--destinationz/Comma separated list of destination node names.)r:   r;   r=   r>   z-jz--jsonTzUse json as output format.)r:   Úis_flagr=   r>   c              	   K   sˆ   |rdnt t| ƒ}| jjjj|||d� ¡ }|stdtd�‚|r(| j 	t
|ƒ¡ t|ƒ}| dd¡sB| j 	d |t |d¡¡¡ dS dS )	z%Show list of workers that are online.N©ÚtimeoutÚdestinationÚcallbackú'No nodes replied within time constraint©ÚmessageÚ	exit_codeÚquietFú
{} {} online.r   )r   r"   r   ÚappÚcontrolÚinspectÚpingr   r	   Úechor   ÚlenÚgetr)   r
   Ú	pluralize)r   rA   rB   ÚjsonÚkwargsrC   r   Ú	nodecountr    r    r!   r   6   s(   þþþ

ÿÿr   Úallow_extra_args)r:   Úcontext_settingsr7   c                 C   ó$   g | ]\}}|j d kr|jr|‘qS )rL   ©r;   Úvisible©r2   r/   Úinfor    r    r!   Ú
<listcomp>c   ó
    ÿr\   )r;   c              	   K   s¦   |rdnt t| dd�}t|| jƒ}| jjjj|||d�}|j|fi |¤Ž}	|	s-t	dt
d�‚|r9| j t|	ƒ¡ dS t|	ƒ}
| jjsQ| j d |
t |
d¡¡¡ dS dS )	z\Inspect the worker at runtime.

    Availability: RabbitMQ (AMQP) and Redis transports.
    NT©r   r@   rD   rE   rI   r   )r   r"   r9   r$   r   rJ   rK   rL   Ú_requestr   r	   rN   r   rO   rH   r)   r
   rQ   )r   r7   rA   rB   rR   rS   rC   r8   rL   r   rT   r    r    r!   rL   a   s2    ÿþ
ÿþ

ÿÿrL   c                 C   rW   )rK   rX   rZ   r    r    r!   r\   œ   r]   c           	      C   sn   |rdnt t| dd�}| j}t||ƒ}| jjjj||||d|d�}|s)tdt	d�‚|r5| j 
t|ƒ¡ dS dS )z_Workers remote control.

    Availability: RabbitMQ (AMQP), Redis, and MongoDB transports.
    NTr^   )rA   rB   rC   r   r8   rD   rE   )r   r"   r$   r9   r   rJ   rK   Ú	broadcastr   r	   rN   r   )	r   r7   rA   rB   rR   rC   r$   r8   r   r    r    r!   rK   š   s&    ÿ
üþÿrK   )F)!Ú__doc__Ú	functoolsr   r'   Úkombu.utils.jsonr   Úcelery.bin.baser   r   r   r   Úcelery.exceptionsr   Úcelery.platformsr	   Úcelery.utilsr
   Úcelery.worker.controlr   r"   r1   r9   ÚcommandÚoptionÚfloatÚpass_contextr   ÚargumentÚChoicer+   ÚitemsrL   rK   r    r    r    r!   Ú<module>   sÈ    


úûûÿ
ÿúûûÿ
ÿúûû