o
    Df0
                     @   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)textallow_extra_argsT)clscontext_settingsz-fz--forcezPurging OptionszDon't prompt for verification.)r   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|}|rt|d}|sCd	t
|}	tj| j jddd d| d|	 dd	d
 dd  | t fdd|D }
W d   n1 sbw   Y  |
rt|
d}| j d|
 d| d| d| d	 dS | j d| d| d dS dS )zvErase all messages from all known task queues.

    Warning:

        There's no undo operation for this command.
    queuez, WARNINGred)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   s*   z	| j |pdW S  | jy   Y dS w )Nr   )default_channelqueue_purgechannel_errors)connr    r   I/home/ubuntu/webapp/venv/lib/python3.10/site-packages/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>NmessagezPurged  z from z known task .zNo messages purged from )objappsetamqpqueueskeyslenr   	pluralizejoinsortedclickconfirmstyleconnection_for_writesumecho)ctxforcer$   exclude_queueskwargsr!   namesqnumqueues_headlinequeue_namesmessagesmessages_headliner   r   r   purge   s:   
r:   )__doc__r*   celery.bin.baser   r   r   r   celery.utilsr   commandoptionpass_contextr:   r   r   r   r   <module>   s>    