o
    .i                     @   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    M/var/www/html/philips/venv/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    




