a
    xdd                     @   s  d Z ddlZddlmZ ddlmZ ddlmZ ddl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 ddlmZ ddlmZ z(ddlmZ ddlmZ ddlmZ W n" ey   dd ZdZdZY n0 e Ze ZG dd dZdd Z G dd dej!Z"G dd dej#Z$G dd de$Z%G dd de	Z&G dd de	Z'G d d! d!e	Z(G d"d# d#e	Z)G d$d% d%ej*Z+e' Z,e( Z-e) Z.e+ Z/e& Z0dS )&z Click customizations for Celery.    N)OrderedDictupdate_wrapper)pformat)	ParamType)cached_property)get_current_app)user_preload_options)text)mlevel)maybe_iso8601)	highlight)Terminal256Formatter)PythonLexerc                 O   s   | S )z2Place holder function in case pygments is missing. )sargskwargsr   r   G/var/www/html/Ranjet/env/lib/python3.9/site-packages/celery/bin/base.pyr      s    r   c                   @   s|   e Zd ZdZdddZedd Zedd Zdd
dZdddZ	dddZ
dddZdd Zdd Zdd Zd ddZd	S )!
CLIContextzContext Object for the CLI.Fc                 C   s"   |pt  | _|| _|| _|| _dS )zInitialize the CLI context.N)r   appno_colorquietworkdir)selfr   r   r   r   r   r   r   __init__#   s    zCLIContext.__init__c                 C   s   | j ddddS )NOKZgreenTfgZboldstyler   r   r   r   r   *   s    zCLIContext.OKc                 C   s   | j ddddS )NERRORZredTr   r   r!   r   r   r   r"   .   s    zCLIContext.ERRORNc                 K   s    | j r
|S tj|fi |S d S N)r   clickr    r   messager   r   r   r   r    2   s    zCLIContext.stylec                 K   s8   | j r"d|d< tj|fi | ntj|fi | d S NFcolorr   r$   echosechor%   r   r   r   r+   8   s    zCLIContext.sechoc                 K   s8   | j r"d|d< tj|fi | ntj|fi | d S r'   )r   r$   r*   r%   r   r   r   r*   ?   s    zCLIContext.echoc                 K   s@   d|d< | j r*d|d< tj|fi | ntj|fi | d S )NTerrFr(   r)   r%   r   r   r   errorF   s
    zCLIContext.errorc                 C   s   t |tr| j| |fS t |trjd|v s4d|v r>| |S tj|ddd}| js`t	|t
t}| j|fS t |tr~| j|fS | jt|fS )Nokr-   T   )	sort_keysindent)
isinstancelistr   pretty_listdictpretty_dict_ok_errorjsondumpsr   r   LEXER	FORMATTERstrr   )r   nr   r   r   r   prettyN   s    





zCLIContext.prettyc                    s    |sdS d  fdd|D S )Nz	- empty -
c                 3   s&   | ]} j d dd d| V  qdS )*white)r    Nr   ).0itemr!   r   r   	<genexpr>`   s   z)CLIContext.pretty_list.<locals>.<genexpr>)joinr   r<   r   r!   r   r4   ]   s
    zCLIContext.pretty_listc                 C   sV   z"| j t| |d d dfW S  ty4   Y n0 | jt| |d d dfS )Nr.      r/   r-   )r   r
   r1   r=   KeyErrorr"   rF   r   r   r   r6   d   s    zCLIContext.pretty_dict_ok_error c                 C   s^   |dkr| j rd S | j  r0| j|ddd dp2d}| | d|  |rZ|rZ| | d S )Nz<-r@   Tr   rA   rI   )r   r    r*   )r   	directiontitlebodyZ	show_bodyZdirstrr   r   r   say_chatm   s    "zCLIContext.say_chat)F)N)N)N)N)rI   F)__name__
__module____qualname____doc__r   r   r   r"   r    r+   r*   r-   r=   r4   r6   rM   r   r   r   r   r       s   






	r   c                    s    fdd}t | S )z6Extract preload options and return a wrapped callable.c                    s\   | j j}dd |jdg D }|rF fdd|D }tj||d | g|R i  S )Nc                 S   s   g | ]
}|j qS r   )name)rB   or   r   r   
<listcomp>{       z:handle_preload_options.<locals>.caller.<locals>.<listcomp>Zpreloadc                    s   i | ]}| | qS r   r   )rB   Zpreload_optionr   r   r   
<dictcomp>~   s   z:handle_preload_options.<locals>.caller.<locals>.<dictcomp>)Zsenderr   options)objr   user_optionsgetr	   send)ctxr   r   r   Zpreload_optionsrZ   frV   r   callerx   s    
z&handle_preload_options.<locals>.callerr   )r_   r`   r   r^   r   handle_preload_optionsv   s    ra   c                       s,   e Zd ZdZ fddZ fddZ  ZS )CeleryOptionzCustomized option for Celery.c                    s    | j r|j| j  | _t |S r#   )default_value_from_contextrY   defaultsuperget_default)r   r]   	__class__r   r   rf      s    zCeleryOption.get_defaultc                    s2   | dd| _| dd| _t j|i | dS )zInitialize a Celery option.
help_groupNrc   )popri   rc   re   r   r   r   r   rg   r   r   r      s    zCeleryOption.__init__)rN   rO   rP   rQ   rf   r   __classcell__r   r   rg   r   rb      s   rb   c                   @   s   e Zd ZdZdd ZdS )CeleryCommandzCustomized command for Celery.c              	   C   s   t  }| |D ]R}||}|durt|drP|jrP|t|jg | q|dg | q| D ]<\}}|	| |
| W d   ql1 s0    Y  qldS )z7Write all the options into the formatter if they exist.Nri   Options)r   
get_paramsZget_help_recordhasattrri   
setdefaultr;   appenditemssectionZwrite_dl)r   r]   	formatteroptsparamrvrR   Z
opts_groupr   r   r   format_options   s    
zCeleryCommand.format_optionsN)rN   rO   rP   rQ   ry   r   r   r   r   rm      s   rm   c                       s    e Zd ZdZ fddZ  ZS )CeleryDaemonCommandzDaemon commands.c                    s   t  j|i | | jtddd | jtddd | jtddd | jtddd | jtddd | jtddd | jtddd d	S )
z7Initialize a Celery command with common daemon options.)z-fz	--logfilezDaemonization Options)ri   )z	--pidfile)z--uid)z--gid)z--umask)z--executableN)re   r   paramsrr   rb   rk   rg   r   r   r      s    zCeleryDaemonCommand.__init__)rN   rO   rP   rQ   r   rl   r   r   rg   r   rz      s   rz   c                   @   s   e Zd ZdZdZdd ZdS )CommaSeparatedListzComma separated list argument.zcomma separated listc                 C   s
   t |S r#   )r
   Zstr_to_listr   valuerw   r]   r   r   r   convert   s    zCommaSeparatedList.convertNrN   rO   rP   rQ   rR   r   r   r   r   r   r|      s   r|   c                   @   s   e Zd ZdZdZdd ZdS )JsonzJSON formatted argument.r7   c              
   C   sD   zt |W S  ty> } z| t| W Y d }~n
d }~0 0 d S r#   )r7   loads
ValueErrorfailr;   r   r~   rw   r]   er   r   r   r      s    zJson.convertNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdZdd ZdS )ISO8601DateTimezISO 8601 Date Time argument.z	iso-86091c              
   C   sB   z
t |W S  ttfy< } z| | W Y d }~n
d }~0 0 d S r#   )r   	TypeErrorr   r   r   r   r   r   r      s    
zISO8601DateTime.convertNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdZdd ZdS )ISO8601DateTimeOrFloatz%ISO 8601 Date Time or float argument.ziso-86091 or floatc              
   C   sd   z
t |W S  ttfy    Y n0 z
t|W S  ttfy^ } z| | W Y d }~n
d }~0 0 d S r#   )floatr   r   r   r   r   r   r   r   r      s    

zISO8601DateTimeOrFloat.convertNr   r   r   r   r   r      s   r   c                       s,   e Zd ZdZ fddZ fddZ  ZS )LogLevelzLog level option.c                    s   t  d dS )z:Initialize the log level option with the relevant choices.)DEBUGINFOWARNINGr"   CRITICALFATALN)re   r   r!   rg   r   r   r      s    zLogLevel.__init__c                    s    |  }t |||}t|S r#   )upperre   r   r   r}   rg   r   r   r      s    zLogLevel.convert)rN   rO   rP   rQ   r   r   rl   r   r   rg   r   r      s   r   )1rQ   r7   collectionsr   	functoolsr   pprintr   r$   r   Zkombu.utils.objectsr   Zcelery._stater   Zcelery.signalsr	   Zcelery.utilsr
   Zcelery.utils.logr   Zcelery.utils.timer   Zpygmentsr   Zpygments.formattersr   Zpygments.lexersr   ImportErrorr9   r:   r   ra   Optionrb   Commandrm   rz   r|   r   r   r   ZChoicer   ZJSONZISO8601ZISO8601_OR_FLOATZ	LOG_LEVELZCOMMA_SEPARATED_LISTr   r   r   r   <module>   sJ   
V	