
    >iM!                     n   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 G d d      Z d Z! G d de	jD                        Z# G d de	jH                        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	jX                        Z- e(       Z. e)       Z/ e*       Z0 e+       Z1 e-       Z2 e'       Z3y# e$ r
 d ZdZdZY w xY w)&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      k/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/celery/bin/base.pyr   r      s        c                   r    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y)
CLIContextzContext Object for the CLI.c                 T    |xs
 t               | _        || _        || _        || _        y)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                 *    | j                  ddd      S )NOKgreenTfgboldstyler   s    r   r"   zCLIContext.OK+   s    zz$7z66r   c                 *    | j                  ddd      S )NERRORredTr$   r'   r)   s    r   r+   zCLIContext.ERROR/   s    zz'e$z77r   Nc                 J    | j                   r|S t        j                  |fi |S N)r   clickr(   r   messager   s      r   r(   zCLIContext.style3   s"    ==N;;w1&11r   c                     | j                   rd|d<   t        j                  |fi | y t        j                  |fi | y NFcolorr   r/   echosechor0   s      r   r7   zCLIContext.secho9   s4    ==#F7OJJw)&)KK*6*r   c                     | j                   rd|d<   t        j                  |fi | y t        j                  |fi | y r3   )r   r/   r6   r0   s      r   r6   zCLIContext.echo@   s4    ==#F7OJJw)&)JJw)&)r   c                     d|d<   | j                   rd|d<   t        j                  |fi | y t        j                  |fi | y )NTerrFr4   r5   r0   s      r   errorzCLIContext.errorG   s=    u==#F7OJJw)&)KK*6*r   c                    t        |t              r| j                  | j                  |      fS t        |t              r`d|v sd|v r| j                  |      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77D,,Q///aqyGqL0033JJqD;}}!!UI6Awwz!a77A:ww
""r   c                 >     |sydj                   fd|D              S )Nz	- empty -
c              3   N   K   | ]  }j                  d d       d|   yw)*white)r%    Nr'   ).0itemr   s     r   	<genexpr>z)CLIContext.pretty_list.<locals>.<genexpr>a   s/      
8<tzz#'z*+1TF3
s   "%)joinr   rK   s   ` r   rC   zCLIContext.pretty_list^   s'    yy 
@A
 
 	
r   c                     	 | j                   t        j                  | j                  |d         d   d      fS # t        $ r Y nw xY w| j
                  t        j                  | 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{    	GGKKAdG 4Q 7;= = 		

DKK'
3A6:< 	<s   69 	AAc                     |dk(  r| j                   ry | j                    xr | j                  |dd       dxs d}| j                  | d|        |r|r| j                  |       y y y )Nz<-rQ   Tr$   rR    )r   r(   r6   )r   	directiontitlebody	show_bodydirstrs         r   say_chatzCLIContext.say_chatn   so    ZZVtzz)dz'S&TTU$V\Z\		VHAeW%&IIIdO 4r   )Fr.   )r\   F)__name__
__module____qualname____doc__r    r   r"   r+   r(   r7   r6   r;   rL   rC   rE   rb   r   r   r   r   r   !   sZ    % 7 7 8 82+*+#
<r   r   c                 &      fd}t        |       S )z6Extract preload options and return a wrapped callable.c                    | j                   j                  }|j                  j                  dg       D cg c]  }|j                   }}|r+|D ci c]  }|||   
 }}t        j                  ||        | g|i |S c c}w c c}w )Npreload)senderr   options)objr   user_optionsgetnamer
   send)	ctxr   r   r   opreload_optionspreload_optionrm   fs	           r   callerz&handle_preload_options.<locals>.callery   s    ggkk+.+;+;+?+?	2+NOa166OO '6" ~ 66L 
 !%%QCN&t&v&& Ps   BB	r   )ru   rv   s   ` r   handle_preload_optionsrw   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                 ~    | j                   r|j                  | j                      | _        t        |   |g|i |S r.   )default_value_from_contextrl   defaultsuperget_default)r   rq   r   r   	__class__s       r   r~   zCeleryOption.get_default   s<    **774#B#BCDLw"38888r   c                     |j                  dd      | _        |j                  dd      | _        t        |   |i | y)zInitialize a Celery option.
help_groupNr{   )popr   r{   r}   r    r   r   r   r   s      r   r    zCeleryOption.__init__   s<     **\48*0**5QSW*X'$)&)r   )rc   rd   re   rf   r~   r    __classcell__r   s   @r   ry   ry      s    '9
* *r   ry   c                       e Zd ZdZd Zy)CeleryCommandzCustomized command for Celery.c                    t               }| j                  |      D ]  }|j                  |      }|t        |d      rA|j                  r5|j                  t        |j                        g       j                  |       d|j                  dg       j                  |        |j                         D ]0  \  }}|j                  |      5  |j                  |       ddd       2 y# 1 sw Y   =xY w)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   rq   	formatteroptsparamrvro   
opts_groups           r   format_optionszCeleryCommand.format_options   s    }__S) 	>E&&s+B~5,/E4D4DOOC(8(8$92>EEbIOOIr299"=	> !%

 	/D*""4( /"":./ /	// /s   
C''C0	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        |   |i | | j                  j                  t	        ddd             | j                  j                  t	        dd             | j                  j                  t	        dd             | j                  j                  t	        dd             | j                  j                  t	        d	d             | j                  j                  t	        d
d             y)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   ry   r   s      r   r    zCeleryDaemonCommand.__init__   s    $)&)<(;H_ EG 	H<CZ[\<
?VWX<
?VWX<AXYZ<(9F]^_r   )rc   rd   re   rf   r    r   r   s   @r   r   r      s    	` 	`r   r   c                       e Zd ZdZdZd Zy)CommaSeparatedListzComma separated list argument.zcomma separated listc                 ,    t        j                  |      S r.   )r   str_to_list)r   valuer   rq   s       r   convertzCommaSeparatedList.convert   s    &&r   Nrc   rd   re   rf   ro   r   r   r   r   r   r      s    (!D'r   r   c                       e Zd ZdZdZd Zy)	JsonArrayzJSON formatted array argument.z
json arrayc                     t        |t              r|S 	 t        j                  |      }t        t              s| j                  | d       |S # t        $ r$}| j                  t        |             Y d }~Nd }~ww xY w)Nz was not an array)rA   rB   rF   loads
ValueErrorfailrJ   r   r   r   rq   ves         r   r   zJsonArray.convert   sn    eT"L	

5!A !T"II012  	IIc!f	   A 	A<A77A<Nr   r   r   r   r   r      s    (Dr   r   c                       e Zd ZdZdZd Zy)
JsonObjectzJSON formatted object argument.zjson objectc                     t        |t              r|S 	 t        j                  |      }t        t              s| j                  | d       |S # t        $ r$}| j                  t        |             Y d }~Nd }~ww xY w)Nz was not an object)rA   rD   rF   r   r   r   rJ   r   s         r   r   zJsonObject.convert   sn    eT"L	

5!A !T"II123  	IIc!f	r   Nr   r   r   r   r   r      s    )Dr   r   c                       e Zd ZdZdZd Zy)ISO8601DateTimezISO 8601 Date Time argument.z	iso-86091c                 t    	 t        |      S # t        t        f$ r}| j                  |       Y d }~y d }~ww xY wr.   )r   	TypeErrorr   r   r   r   r   rq   r   s        r   r   zISO8601DateTime.convert   s4    	 '':& 	IIaLL	s   
 727Nr   r   r   r   r   r      s    &Dr   r   c                       e Zd ZdZdZd Zy)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}| j	                  |       Y d }~y d }~ww xY wr.   )floatr   r   r   r   r   s        r   r   zISO8601DateTimeOrFloat.convert   sZ    	<:& 			 '':& 	IIaLL	s    
 
. 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                 $    t         |   d       y)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Tr   c                     t        |t        j                        r|S |j                         }t        |   |||      }t        |      S r.   )rA   numbersIntegralupperr}   r   r   )r   r   r   rq   r   s       r   r   zLogLevel.convert  s?    eW--.Luc2e}r   )rc   rd   re   rf   r    r   r   r   s   @r   r   r   
  s    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   rw   Optionry   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+ ME$&IS Sl%(*5<< */EMM /&`- `' '	 ( (	i 	Y "u||   [
l

)+ J	)+ S   EIs   D% %D43D4