
    {kf#                        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	m
Z
 ddlZddl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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          Z/ G d' d(ej0                  Z1 e,            Z2 e-            Z3 e.            Z4 e/            Z5 e1            Z6 e+            Z7dS ))z Click customizations for Celery.    N)OrderedDictupdate_wrapper)pformat)Any)Context	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      O/var/www/html/nettyfy-visnx/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.ERROR0   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.style4   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   r1   echosechor2   s      r   r9   zCLIContext.secho:   sQ    = 	+#F7OJw))&)))))K**6*****r   c                 j    | j         rd|d<   t          j        |fi | d S t          j        |fi | d S r5   )r   r1   r8   r2   s      r   r8   zCLIContext.echoA   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errFr6   r7   r2   s      r   errorzCLIContext.errorH   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.prettyP   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>b   sR       
 
8<tzz#'z**33T33
 
 
 
 
 
r   )joinr!   rM   s   ` r   rE   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   rB   rN   KeyErrorr-   rY   s     r   rG   zCLIContext.pretty_dict_ok_errorf   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<-rS   Tr&   rT   r]   )r   r*   r8   )r!   	directiontitlebody	show_bodydirstrs         r   say_chatzCLIContext.say_chato   s    FZVtzz)dz'S'S$V$V$V\Z\		V%%e%%&&& 	I 	IIdOOOOO	 	 	 	r   )Fr0   )r]   F)__name__
__module____qualname____doc__r"   r
   r$   r-   r*   r9   r8   r=   rN   rE   rG   rd   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)rU   os     r   
<listcomp>z:handle_preload_options.<locals>.caller.<locals>.<listcomp>}   s    OOOa16OOOr   preloadc                 "    i | ]}||         S r   r   )rU   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_optionsrv   fs     `   r   callerz&handle_preload_options.<locals>.callerz   s    gkOO3+;+?+?	2+N+NOOO 	O   &5  L
 !%QCNNNNq&t&&&v&&&r   r   )r{   r|   s   ` r   handle_preload_optionsr}   x   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 r0   )default_value_from_contextru   defaultsuperget_default)r!   ry   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   )re   rf   rg   rh   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   
setdefaultrL   appenditemssectionwrite_dl)r!   ry   	formatteroptsparamrvrl   
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)re   rf   rg   rh   r   r   r   r   r   r      s)        ((/ / / / /r   r   c                   :     e Zd ZdZ fdZdedededefdZ xZ	S )DaemonOptionzCommon daemonization optionc                      t                      j        |f|                    dd          |                    d| j                  d| d S )Nr   zDaemonization Optionscallback)r   r   )r   r"   r   daemon_settingr   s      r   r"   zDaemonOption.__init__   sd     	#$*JJ|=T$U$U"(**Z9L"M"M	# 	# "	# 	# 	# 	# 	#r   ry   optvaluereturnc                 n    |p3t          |j        j        j        |j        j         d| j         d          S )z
        Try to fetch deamonization option from applications settings.
        Use the daemon command name as prefix (eg. `worker` -> `worker_pidfile`)
        _N)getattrru   r   confcommandrl   )r!   ry   r   r   s       r   r   zDaemonOption.daemon_setting   s8    
 Z 0S[5E2S2S	2S2SUYZZZr   )
re   rf   rg   rh   r"   r   r   r   r   r   r   s   @r   r   r      sz        %%# # # # #[' [ [S [S [ [ [ [ [ [ [ [r   r   c                   "     e Zd ZdZ fdZ xZS )CeleryDaemonCommandzDaemon commands.c                 0    t                      j        |i | | j                            t	          ddd          t	          dd          t	          dd          t	          d	d
          t	          dd          t	          dd          f           dS )z7Initialize a Celery command with common daemon options.z	--logfilez-fz#Log destination; defaults to stderr)helpz	--pidfilez&PID file path; defaults to no PID filez--uidz Drops privileges to this user IDz--gidz!Drops privileges to this group IDz--umaskz,Create files and directories with this umaskz--executablez&Override path to the Python executableN)r   r"   paramsextendr   r   s      r   r"   zCeleryDaemonCommand.__init__   s    $)&)))d1VWWW+STTT'IJJJ'JKKK)WXXX.VWWW
 	 	 	 	 	r   )re   rf   rg   rh   r"   r   r   s   @r   r   r      s>        
 
 
 
 
 
 
 
 
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 r0   )r   str_to_list)r!   r   r   ry   s       r   convertzCommaSeparatedList.convert   s    &&&r   Nre   rf   rg   rh   rl   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)rC   rD   rH   loads
ValueErrorfailrL   r!   r   r   ry   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)rC   rF   rH   r   r   r   rL   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r0   )r   	TypeErrorr   r   r!   r   r   ry   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r0   )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 r0   )rC   numbersIntegralupperr   r   r   )r!   r   r   ry   r   s       r   r   zLogLevel.convert#  sO    eW-.. 	Luc22e}}r   )re   rf   rg   rh   r"   r   r   r   s   @r   r   r     s\        U U U U U        r   r   )8rh   rH   r   collectionsr   	functoolsr   pprintr   typingr   r1   r   r	   kombu.utils.objectsr
   celery._stater   celery.signalsr   celery.utilsr   celery.utils.logr   celery.utils.timer   pygmentsr   pygments.formattersr   pygments.lexersr   rJ   rK   ImportErrorr   r}   Optionr   Commandr   r   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   A; ;B
	B
