U
    bh0
                     @   s   d Z ddlZddlmZmZmZmZ ddlmZ ej	eddidej
dd	edd
ddej
ddeed
ddej
ddeed
ddejedd ZdS )zBThe ``celery purge`` program, used to delete messages from queues.    N)COMMA_SEPARATED_LISTCeleryCommandCeleryOptionhandle_preload_options)textZallow_extra_argsT)clsZcontext_settingsz-fz--forcezPurging OptionszDon't prompt for verification.)r   Zis_flag
help_grouphelpz-Qz--queuesz-Comma separated list of queue names to purge.)r   typer   r	   z-Xz--exclude-queuesz2Comma separated list of queues names not to purge.c                    s  | j j}t|p|jj }t|p$g }|| }t|}|rt|d}|sd	t
|}	tj| j jddd d| d|	 dd	d
 dd  | t fdd|D }
W 5 Q R X |
rt|
d}| j d|
 d| d| d| d	 n| j d| d| d dS )zvErase all messages from all known task queues.

    Warning:

        There's no undo operation for this command.
    queuez, WARNINGZred)Zfgz!:This will remove all tasks from z: z.
         There is no undo for this operation!

(to skip this prompt use the -f option)
Are you sure you want to delete all tasks?T)abortc                 S   s0   z| j |pdW S  | jk
r*   Y dS X d S )Nr   )Zdefault_channelZqueue_purgeZchannel_errors)connr    r   4/tmp/pip-unpacked-wheel-kcem4wq5/celery/bin/purge.py_purge8   s    zpurge.<locals>._purgec                 3   s   | ]} |V  qd S )Nr   ).0r   r   r   r   r   	<genexpr>?   s     zpurge.<locals>.<genexpr>messagezPurged  z from z known task .zNo messages purged from N)objappsetZamqpqueueskeyslenr   Z	pluralizejoinsortedclickZconfirmstyleZconnection_for_writesumZecho)ctxforcer   Zexclude_queueskwargsr   namesZqnumZqueues_headlineZqueue_namesmessagesZmessages_headliner   r   r   purge   s&    $
"(r(   )__doc__r    Zcelery.bin.baser   r   r   r   Zcelery.utilsr   commandoptionZpass_contextr(   r   r   r   r   <module>   s>    