
    `fM!                        d Z ddl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 	 ddlmZ ddlmZ ddlmZ  e            Z e            Zn# e$ r
 d ZdZdZY nw xY w G d d          Z d Z! G d de	j"                  Z# G d de	j$                  Z% G d de%          Z& G d de
          Z' G d de
          Z( G d de
          Z) G d  d!e
          Z* G d" d#e
          Z+ G d$ d%e	j,                  Z- e(            Z. e)            Z/ e*            Z0 e+            Z1 e-            Z2 e'            Z3d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                     | S )z2Place holder function in case pygments is missing. )sargskwargss      A/var/www/html/env/lib/python3.11/site-packages/celery/bin/base.pyr   r      s        c                       e Zd ZdZddZed             Zed             ZddZddZ	dd	Z
dd
Zd Zd Zd ZddZdS )
CLIContextzContext Object for the CLI.Fc                 Z    |pt                      | _        || _        || _        || _        dS )zInitialize the CLI context.N)r	   appno_colorquietworkdir)selfr   r   r   r   s        r   __init__zCLIContext.__init__$   s-    +/++ 
r   c                 2    |                      ddd          S )NOKgreenTfgboldstyler   s    r   r"   zCLIContext.OK+   s    zz$7z666r   c                 2    |                      ddd          S )NERRORredTr$   r'   r)   s    r   r+   zCLIContext.ERROR/   s    zz'e$z777r   Nc                 8    | j         r|S t          j        |fi |S N)r   clickr(   r   messager   s      r   r(   zCLIContext.style3   s)    = 	2N;w11&111r   c                 j    | j         rd|d<   t          j        |fi | d S t          j        |fi | d S NFcolorr   r/   echosechor0   s      r   r7   zCLIContext.secho9   sQ    = 	+#F7OJw))&)))))K**6*****r   c                 j    | j         rd|d<   t          j        |fi | d S t          j        |fi | d S r3   )r   r/   r6   r0   s      r   r6   zCLIContext.echo@   sQ    = 	*#F7OJw))&)))))Jw))&)))))r   c                 t    d|d<   | j         rd|d<   t          j        |fi | d S t          j        |fi | d S )NTerrFr4   r5   r0   s      r   errorzCLIContext.errorG   sZ    u= 	+#F7OJw))&)))))K**6*****r   c                    t          |t                    r| j        |                     |          fS t          |t                    r_d|v sd|v r|                     |          S t          j        |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   s      r   prettyzCLIContext.prettyO   s    a 	07D,,Q////a 	"qyyGqLL00333JqD;;;} 7!!UI66Awz!a 	7A:w

""r   c                 N     |sdS d                      fd|D                       S )Nz	- empty -
c              3   P   K   | ] }                     d d           d| V  !dS )*white)r%    Nr'   ).0itemr   s     r   	<genexpr>z)CLIContext.pretty_list.<locals>.<genexpr>a   sR       
 
8<tzz#'z**33T33
 
 
 
 
 
r   )joinr   rK   s   ` r   rC   zCLIContext.pretty_list^   sL     	;yy 
 
 
 
@A
 
 
 
 
 	
r   c                    	 | j         t          j        |                     |d                   d         d          fS # t          $ r Y nw xY w| j        t          j        |                     |d                   d         d          fS )Nr=      r>   r;   )r"   r   r@   rL   KeyErrorr+   rW   s     r   rE   zCLIContext.pretty_dict_ok_errore   s    	GKAdG 4 4Q 7;;= = 	 	 	D	
DKK'
33A6::< 	<s   := 
A
	A
 c                     |dk    r	| j         rd S | j          r|                     |dd           dpd}|                     | d|            |r|r|                     |           d S d S d S )Nz<-rQ   Tr$   rR   r[   )r   r(   r6   )r   	directiontitlebody	show_bodydirstrs         r   say_chatzCLIContext.say_chatn   s    FZVtzz)dz'S'S$V$V$V\Z\		V%%e%%&&& 	I 	IIdOOOOO	 	 	 	r   )Fr.   )r[   F)__name__
__module____qualname____doc__r    r   r"   r+   r(   r7   r6   r;   rL   rC   rE   rb   r   r   r   r   r   !   s        %%    7 7 _7 8 8 _82 2 2 2+ + + +* * * *+ + + +# # #
 
 
< < <     r   r   c                 .      fd}t          |           S )z6Extract preload options and return a wrapped callable.c                     | j         j        }d |j                            dg           D             }|r%fd|D             }t	          j        ||            | g|R i S )Nc                     g | ]	}|j         
S r   )name)rS   os     r   
<listcomp>z:handle_preload_options.<locals>.caller.<locals>.<listcomp>|   s    OOOa16OOOr   preloadc                 "    i | ]}||         S r   r   )rS   preload_optionr   s     r   
<dictcomp>z:handle_preload_options.<locals>.caller.<locals>.<dictcomp>   s0       " ~ 6  r   )senderr   options)objr   user_optionsgetr
   send)ctxr   r   r   preload_optionsrt   fs     `   r   callerz&handle_preload_options.<locals>.callery   s    gkOO3+;+?+?	2+N+NOOO 	O   &5  L
 !%QCNNNNq&t&&&v&&&r   r   )ry   rz   s   ` r   handle_preload_optionsr{   w   s.    ' ' ' ' ' &!$$$r   c                   ,     e Zd ZdZ fdZ fdZ xZS )CeleryOptionzCustomized option for Celery.c                 z    | j         r|j        | j                  | _         t                      j        |g|R i |S r.   )default_value_from_contextrs   defaultsuperget_default)r   rw   r   r   	__class__s       r   r   zCeleryOption.get_default   sG    * 	D74#BCDL"uww"38888888r   c                     |                     dd          | _        |                     dd          | _         t                      j        |i | dS )zInitialize a Celery option.
help_groupNr   )popr   r   r   r    r   r   r   r   s      r   r    zCeleryOption.__init__   sR     **\488*0**5QSW*X*X'$)&)))))r   )rc   rd   re   rf   r   r    __classcell__r   s   @r   r}   r}      sW        ''9 9 9 9 9
* * * * * * * * *r   r}   c                       e Zd ZdZd ZdS )CeleryCommandzCustomized command for Celery.c                 0   t                      }|                     |          D ]}|                    |          }||t          |d          rC|j        r<|                    t          |j                  g                               |           l|                    dg                               |           |                                D ]G\  }}|	                    |          5  |
                    |           ddd           n# 1 swxY w Y   HdS )z7Write all the options into the formatter if they exist.Nr   Options)r   
get_paramsget_help_recordhasattrr   
setdefaultrJ   appenditemssectionwrite_dl)r   rw   	formatteroptsparamrvrj   
opts_groups           r   format_optionszCeleryCommand.format_options   sQ   }}__S)) 	> 	>E&&s++B~5,// >E4D >OOC(8$9$92>>EEbIIIIOOIr2299"=== $

 	/ 	/D*""4(( / /"":.../ / / / / / / / / / / / / / /	/ 	/s   (D

D	D	N)rc   rd   re   rf   r   r   r   r   r   r      s)        ((/ / / / /r   r   c                   "     e Zd ZdZ fdZ xZS )CeleryDaemonCommandzDaemon commands.c                 (    t                      j        |i | | j                            t	          ddd                     | j                            t	          dd                     | j                            t	          dd                     | j                            t	          dd                     | j                            t	          d	d                     | j                            t	          d
d                     dS )z7Initialize a Celery command with common daemon options.)z-fz	--logfilezDaemonization Optionsz#Log destination; defaults to stderr)r   help)z	--pidfile)r   )z--uid)z--gid)z--umask)z--executableN)r   r    paramsr   r}   r   s      r   r    zCeleryDaemonCommand.__init__   s   $)&)))<(;H_ EG G G 	H 	H 	H<CZ[[[\\\<
?VWWWXXX<
?VWWWXXX<AXYYYZZZ<(9F]^^^_____r   )rc   rd   re   rf   r    r   r   s   @r   r   r      sG        	` 	` 	` 	` 	` 	` 	` 	` 	`r   r   c                       e Zd ZdZdZd ZdS )CommaSeparatedListzComma separated list argument.zcomma separated listc                 *    t          j        |          S r.   )r   str_to_list)r   valuer   rw   s       r   convertzCommaSeparatedList.convert   s    &&&r   Nrc   rd   re   rf   rj   r   r   r   r   r   r      s.        ((!D' ' ' ' 'r   r   c                       e Zd ZdZdZd ZdS )	JsonArrayzJSON formatted array argument.z
json arrayc                 ,   t          |t                    r|S 	 t          j        |          }n9# t          $ r,}|                     t          |                     Y d }~nd }~ww xY wt          |t                    s|                     | d           |S )Nz was not an array)rA   rB   rF   loads
ValueErrorfailrJ   r   r   r   rw   ves         r   r   zJsonArray.convert   s    eT"" 	L	
5!!AA 	 	 	IIc!ff	 !T"" 	3II111222   . 
A$"AA$Nr   r   r   r   r   r      s.        ((D    r   r   c                       e Zd ZdZdZd ZdS )
JsonObjectzJSON formatted object argument.zjson objectc                 ,   t          |t                    r|S 	 t          j        |          }n9# t          $ r,}|                     t          |                     Y d }~nd }~ww xY wt          |t                    s|                     | d           |S )Nz was not an object)rA   rD   rF   r   r   r   rJ   r   s         r   r   zJsonObject.convert   s    eT"" 	L	
5!!AA 	 	 	IIc!ff	 !T"" 	4II222333r   Nr   r   r   r   r   r      s.        ))D    r   r   c                       e Zd ZdZdZd ZdS )ISO8601DateTimezISO 8601 Date Time argument.z	iso-86091c                     	 t          |          S # t          t          f$ r }|                     |           Y d }~d S d }~ww xY wr.   )r   	TypeErrorr   r   r   r   r   rw   r   s        r   r   zISO8601DateTime.convert   sT    	 ''':& 	 	 	IIaLLLLLLLLL	s    A=ANr   r   r   r   r   r      s.        &&D    r   r   c                       e Zd ZdZdZd ZdS )ISO8601DateTimeOrFloatz%ISO 8601 Date Time or float argument.ziso-86091 or floatc                     	 t          |          S # t          t          f$ r Y nw xY w	 t          |          S # t          t          f$ r }|                     |           Y d }~d S d }~ww xY wr.   )floatr   r   r   r   r   s        r   r   zISO8601DateTimeOrFloat.convert   s    	<<:& 	 	 	D		 ''':& 	 	 	IIaLLLLLLLLL	s!    %%8 A)	A$$A)Nr   r   r   r   r   r      s.        //D	 	 	 	 	r   r   c                   ,     e Zd ZdZ fdZ fdZ xZS )LogLevelzLog level option.c                 J    t                                          d           dS )z:Initialize the log level option with the relevant choices.)DEBUGINFOWARNINGr+   CRITICALFATALN)r   r    )r   r   s    r   r    zLogLevel.__init__  s"    STTTTTr   c                     t          |t          j                  r|S |                                }t	                                          |||          }t          |          S r.   )rA   numbersIntegralupperr   r   r   )r   r   r   rw   r   s       r   r   zLogLevel.convert  sO    eW-.. 	Luc22e}}r   )rc   rd   re   rf   r    r   r   r   s   @r   r   r   
  s\        U U U U U        r   r   )4rf   rF   r   collectionsr   	functoolsr   pprintr   r/   r   kombu.utils.objectsr   celery._stater	   celery.signalsr
   celery.utilsr   celery.utils.logr   celery.utils.timer   pygmentsr   pygments.formattersr   pygments.lexersr   rH   rI   ImportErrorr   r{   Optionr}   Commandr   r   r   r   r   r   r   Choicer   
JSON_ARRAYJSON_OBJECTISO8601ISO8601_OR_FLOAT	LOG_LEVELCOMMA_SEPARATED_LISTr   r   r   <module>r      s   & &   # # # # # # $ $ $ $ $ $              / / / / / / ) ) ) ) ) ) / / / / / /       # # # # # # + + + + + +'""""""888888++++++ KMME$$&&II       EIIIS S S S S S S Sl% % %(* * * * *5< * * */ / / / /EM / / /&` ` ` ` `- ` ` `' ' ' ' ' ' ' '    	   (       (	 	 	 	 	i 	 	 	    Y   "    u|     Y[[
jll
/

))++ HJJ	))++   s   A3 3BB