
    hj                        d Z ddlZddlZddlm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mZ dd	lmZ dd
lmZmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%mZ& ddl'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6 dZ7 e8ed      Z9 e,e:      Z;e;jx                  e;jz                  e;j|                  e;j~                  f\  Z<Z=Z@Z?daAdaBd ZC eC        e4j                  ZDej                  j                  ZGej                  j                  ZIe6j                  ZJe6j                  ZKe6j                  ZMe6j                  ZN G d d      ZOeeMeKdefdZPy)zfTask request.

This module defines the :class:`Request` class, that specifies
how tasks are executed.
    N)datetime)	monotonictime)ref)TERM_SIGNAME)ExceptionWithTraceback)	safe_reprsafe_str)cached_property)current_appsignals)Context)fast_trace_task
trace_tasktrace_task_ret)BasePool)IgnoreInvalidTaskErrorRejectRetryTaskRevokedError
TerminatedTimeLimitExceededWorkerLostError)r   )maybe
maybe_listnoop)
get_logger)gethostname)get_pickled_exception)maybe_iso8601maybe_make_awaretimezone   )state)Requestpypy_version_infoFc                      t         j                  t        j                        at         j                  t        j
                        ay N)loggerisEnabledForloggingDEBUG_does_debugINFO
_does_info     Q/var/www/Befach/backend/env/lib/python3.12/site-packages/celery/worker/request.py__optimize__r4   .   s,     %%gmm4K$$W\\2Jr2   c                   *   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZesdZeddddddeddddeefdZed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Z ed        Z!ed        Z"ed        Z#ed        Z$e$jJ                  d        Z$ed        Z&ed        Z'ed        Z(e(jJ                  d        Z(ed        Z)ed        Z*ed         Z+ed!        Z,e,jJ                  d"        Z,ed#        Z-ed$        Z.ed%        Z/e/jJ                  d&        Z/ed'        Z0e0jJ                  d(        Z0ed)        Z1ed*        Z2ed+        Z3ed,e4fd-       Z5ed,e6fd.       Z7ed/        Z8d0e9fd1Z:dd2Z;d3 Z<dKd4Z=dKd5Z>d6 Z?d7 Z@d8 ZAd9 ZBd: ZCd; ZDd< ZEd= ZFdLd>ZGd? ZHdMd@ZIdMdAZJdB ZKdC ZLdD ZMeNdE        ZOeNdF        ZPeNdG        ZQeNdH        ZReNdI        ZSeNdJ        ZTy)Nr&   zA request for task execution.FN)NN)_app_typenameid_root_id
_parent_id_on_ack_body	_hostname_eventer_connection_errors_task_eta_expires_request_dict
_on_reject_utc_content_type_content_encoding	_argsrepr_kwargsrepr_args_kwargs_decoded	__payload__weakref____dict__Tc                 v   || _         ||j                  j                         n|j                         | _        |
|j                  n|
| _        || _        || _        || _        |rd x| _	        | _
        n#|j                  |j                  c| _	        | _
        | j                  r| j
                  n|j                  | _        | j                  d   | _        | j                  d   x| _        | _        d| j                  v r"| j                  d   xs | j"                  | _        | j                  j%                  d      | _        | j                  j%                  d      | _        | j                  j%                  dd       }|r|| _        | j                  j%                  dd      | _        | j                  j%                  d	d      | _        || _        |	| _        |xs
 t5               | _        || _        |xs d
| _        |xs# | j                  j<                  | j                      | _        | j                  j%                  dd      | _         | j                  j%                  d      }|"	  ||      } ||| jJ                        | _&        nd | _&        | j                  j%                  d      }|"	  ||      } ||| jJ                        | _'        nd | _'        |jP                  xs i }|jR                  xs i }|j%                  d      |j%                  d      |j%                  d      |j%                  dd      d| _*        | j                  jW                  ||j%                  d      |j%                  d      | j6                  | jT                  d       | j                  \  | j                  d<   | j                  d<   }| j                  d   | _,        | j                  d   | _-        y # tB        tD        tF        f$ r}tI        d|d|       d }~ww xY w# tB        tD        tF        f$ r}tI        d|d|       d }~ww xY w)Nr9   taskshadowroot_id	parent_id	timelimitargsrepr 
kwargsreprr1   ignore_resultFetazinvalid ETA value z: expireszinvalid expires value exchangerouting_keypriorityredelivered)r]   r^   r_   r`   reply_tocorrelation_id)
propertiesra   rb   hostnamedelivery_infoargskwargs)._messageheaderscopyrD   bodyr=   r6   rF   rM   rG   rH   content_typecontent_encodingpayload_Request__payloadr9   r7   r8   getr:   r;   time_limitsrI   rJ   r<   rE   r   r>   r?   r@   tasksrA   _ignore_resultAttributeError
ValueError	TypeErrorr   tzlocalrB   rC   re   rc   _delivery_infoupdaterK   rL   )selfmessageon_ackrd   eventerappconnection_errorsrequest_dictrR   	on_rejectrk   ri   decodedutcr"   r!   optsrV   r[   excr\   re   rc   _s                           r3   __init__zRequest.__init__Z   s     8?goo224#*<<> 	%)\W\\t
		:>>D!7 $$g&>&> 7D 6 (,}}'//$$T*!%!3!3F!;;
TYt)))**84A		DI**..y9,,00=&&**;=	(D++//
B?--11,C#!2[]"3"9r8TYY__TZZ8
"0044_eL   $$U+?9#C( )dll;DIDI$$((3A'0 -WdllCDM DM--3''-2
%))*5(,,];"z2(,,]EB	
 	!!$"z2(nn-=>!00#
 	 GKnnC6"D$6$6x$@!''/
))(3I #J	: 9&(r#79 99 #J	: A&,WKr#?A AAs0   $O! *P !P5PPP8"P33P8c                     | j                   S r)   )rx   rz   s    r3   re   zRequest.delivery_info       """r2   c                     | j                   S r)   )rh   r   s    r3   r{   zRequest.message       }}r2   c                     | j                   S r)   rD   r   s    r3   r   zRequest.request_dict       !!!r2   c                     | j                   S r)   )r=   r   s    r3   rk   zRequest.body       zzr2   c                     | j                   S r)   )r6   r   s    r3   r~   zRequest.app       yyr2   c                     | j                   S r)   )rF   r   s    r3   r   zRequest.utc   r   r2   c                     | j                   S r)   )rG   r   s    r3   rl   zRequest.content_type   r   r2   c                     | j                   S r)   )rH   r   s    r3   rm   zRequest.content_encoding   s    %%%r2   c                     | j                   S r)   )r7   r   s    r3   typezRequest.type   r   r2   c                     | j                   S r)   )r:   r   s    r3   rT   zRequest.root_id   r   r2   c                     | j                   S r)   )r;   r   s    r3   rU   zRequest.parent_id       r2   c                     | j                   S r)   )rI   r   s    r3   rW   zRequest.argsrepr       ~~r2   c                     | j                   S r)   )rK   r   s    r3   rf   zRequest.args   r   r2   c                     | j                   S r)   )rL   r   s    r3   rg   zRequest.kwargs       ||r2   c                     | j                   S r)   )rJ   r   s    r3   rY   zRequest.kwargsrepr   s    r2   c                     | j                   S r)   )r<   r   s    r3   r|   zRequest.on_ack   r   r2   c                     | j                   S r)   rE   r   s    r3   r   zRequest.on_reject   r   r2   c                     || _         y r)   r   rz   values     r3   r   zRequest.on_reject   s	    r2   c                     | j                   S r)   )r>   r   s    r3   rd   zRequest.hostname   r   r2   c                     | j                   S r)   )rs   r   s    r3   rZ   zRequest.ignore_result   r   r2   c                     | j                   S r)   r?   r   s    r3   r}   zRequest.eventer   r   r2   c                     || _         y r)   r   )rz   r}   s     r3   r}   zRequest.eventer  s	    r2   c                     | j                   S r)   )r@   r   s    r3   r   zRequest.connection_errors  s    &&&r2   c                     | j                   S r)   )rA   r   s    r3   rR   zRequest.task
  r   r2   c                     | j                   S r)   )rB   r   s    r3   r[   zRequest.eta  r   r2   c                     | j                   S r)   rC   r   s    r3   r\   zRequest.expires  r   r2   c                     || _         y r)   r   r   s     r3   r\   zRequest.expires  s	    r2   c                 |    | j                   %| j                  j                  j                  | _         | j                   S r)   )_tzlocalr6   confr#   r   s    r3   rw   zRequest.tzlocal  s+    ==  IINN33DM}}r2   c                 `    | j                   j                   xs | j                   j                  S r)   )rR   rZ   store_errors_even_if_ignoredr   s    r3   store_errorszRequest.store_errors   s)    II+++ 7		66	8r2   c                     | j                   S r)   r9   r   s    r3   task_idzRequest.task_id%  s     wwr2   c                     || _         y r)   r   r   s     r3   r   zRequest.task_id*  s	    r2   c                     | j                   S r)   r8   r   s    r3   	task_namezRequest.task_name.  s     yyr2   c                     || _         y r)   r   r   s     r3   r   zRequest.task_name3  s	    	r2   c                      | j                   d   S )Nra   r   r   s    r3   ra   zRequest.reply_to7  s     !!*--r2   c                 :    | j                   j                  dd      S )Nreplaced_task_nestingr   rD   rp   r   s    r3   r   zRequest.replaced_task_nesting<  s    !!%%&=qAAr2   c                 :    | j                   j                  dg       S )Ngroupsr   r   s    r3   r   zRequest.groups@  s    !!%%h33r2   returnc                 @    | j                   j                  d      xs g S )Nstamped_headersr   r   s    r3   r   zRequest.stamped_headersD  s    !!%%&78>B>r2   c                     | j                   j                  d      xs i }| j                  D ci c]  }||j                  |       c}S c c}w )Nstamps)rD   rp   r   )rz   r   headers      r3   r   zRequest.stampsH  sE    ##''17R9=9M9MNv

6**NNNs   A
c                      | j                   d   S )Nrb   r   r   s    r3   rb   zRequest.correlation_idM  s     !!"233r2   poolc                 $   | j                   }| j                  }| j                         rt        |      | j                  \  }}| j
                  j                  rt        nt        }|j                  || j                  || j                  | j                  | j                  | j                  f| j                  | j                   | j"                  | j$                  |xs |j&                  |xs |j(                  |	      }t+        t,        |      | _        |S )a  Used by the worker to send this task to the pool.

        Arguments:
            pool (~celery.concurrency.base.TaskPool): The execution pool
                used to execute this request.

        Raises:
            celery.exceptions.TaskRevokedError: if the task was revoked.
        rf   accept_callbacktimeout_callbackcallbackerror_callbacksoft_timeouttimeoutrb   )r9   rA   revokedr   rq   r6   use_fast_trace_taskr   r   apply_asyncr7   rD   r=   rG   rH   on_accepted
on_timeout
on_success
on_failuresoft_time_limit
time_limitr   r   _apply_result)	rz   r   rg   r   rR   r   r   traceresults	            r3   execute_using_poolzRequest.execute_using_poolR  s     ''zz<<>"7++&*&6&6#
O#'99#@#@n!!**gt'9'94::$$d&<&<> ,,!____??(@D,@,@1$//" " 
 #3/r2   c           
         | j                         ry| j                  j                  s| j                          | j                  \  }}}| j
                  } |j                  ||ddfi |xs i  t        | j                  | j                  | j                  | j                  || j                  | j                  j                  | j                        \  }}}}|r| j                  d       |S | j                          |S )zExecute the task in a :func:`~celery.app.trace.trace_task`.

        Arguments:
            loglevel (int): The loglevel used by the task.
            logfile (str): The logfile used by the task.
        NF)loglevellogfileis_eager)rd   loaderr~   requeue)r   rR   	acks_lateacknowledge_payloadrD   ry   r   r9   rK   rL   r>   r6   r   reject)rz   r   r   r   embedrequestretvalIs           r3   executezRequest.executes  s     <<> yy""mm1e$$ 	 
 	 [b		 %TYYT\\SZ.2nnTYYEUEU)-41a KKK&  r2   c                     | j                   rYt        j                  | j                   j                        }|| j                   kD  r t        j                  | j                         yyy)z%If expired, mark the task as revoked.TN)r\   r   nowtzinforevoked_tasksaddr9   )rz   r   s     r3   maybe_expirezRequest.maybe_expire  sL    <<,,t||223CT\\!!!$''* " r2   c                 ,   t        j                  |xs t              }| j                  r1|j	                  | j
                  |       | j                  dd|d       n	||f| _        | j                  %| j                         }||j                  |       y y y )N
terminatedTF)
_signalssignumr   
time_startterminate_job
worker_pid_announce_revoked_terminate_on_ackr   	terminaterz   r   signalobjs       r3   r  zRequest.terminate  s    !7<8??t7""<vuE%)6\D")$$&Cf%  *r2   c                    t        j                  |xs t              }| j                  r,|j	                  | j
                  |       | j                          | j                  %| j                         }||j                  |       y y y r)   )	r   r   r   r   r   r   _announce_cancelledr   r  r  s       r3   cancelzRequest.cancel  sq    !7<8??t7$$&)$$&Cf%  *r2   c                    t        |        | j                  d       d}t        |      }| j                  j                  j                  | j                  || j                         | j                  j                  || j                  | j                  | j                  d        d| _        t        | j                  | j                  d        y )Nztask-cancelledzcancelled by Celery)r{   )r   T)r   einfo)
task_ready
send_eventr   rR   backendmark_as_retryr9   _contexton_retryrf   rg   _already_cancelled
send_retry)rz   reasonr   s      r3   r  zRequest._announce_cancelled  s    4()&F#		''(+04 	( 	? 			3DKKF"&499dmm4@r2   c                 H   t        |        | j                  d|||       | j                  j                  j	                  | j
                  || j                  | j                         | j                          d| _	        t        | j                  | j                  |||       y )Nztask-revoked)r   r   expiredr   store_resultT)r   r   r   r  )r  r  rR   r  mark_as_revokedr9   r  r   r   _already_revokedsend_revoked)rz   r  r   r   r  s        r3   r  zRequest._announce_revoked  s    4#-fg 	 	O		))GGVT]]** 	* 	
 	 $TYY *67	Lr2   c                 p   d}| j                   ry| j                  r| j                         }| j                  t        v }d\  }}|s| j
                  r| j
                  D ]  }|t        v st        |   }| j                  j                  d   |   }t        |t        t        f      r|D ]  }|t        |      v sd}||i} n! nt        |t        |      v ||k(  g      }||i} n t        |||f      rFd}	|r|	d|z  z  }	t        |	| j                  | j                         | j!                  |rdnddd	|       yy)
z%If revoked, skip task and mark state.FT)FNr   zDiscarding revoked task: %s[%s]z (revoked by header: %s)r  r   N)r  r\   r   r9   r   r   revoked_stampsrh   ri   
isinstancelisttupler   anyinfor8   r  )
rz   r  revoked_by_idrevoked_by_headerrevoking_headerstamprevoked_headerstamped_headerstamped_valuelog_msgs
             r3   r   zRequest.revoked  sV     <<'')G=0-8*?!5!5--N*%3E%:N%)]]%:%:8%DU%KN!.4-@-;M,
>0JJ48 138-2H %	 .< -0*j.HH*n<1 -) ,1.*A# .& (9:;7G 5GG$))TWW-""$	)UD' r2   c                     | j                   rX| j                   j                  rA| j                  j                  r* | j                   j                  |fd| j
                  i| y y y y )Nuuid)r?   enabledrR   send_eventssendr9   )rz   r   fieldss      r3   r  zRequest.send_event  sN    ==T]]22tyy7L7LDMMt<$''<V< 8M2=r2   c                 l   || _         t               t               |z
  z
  | _        t	        |        | j
                  j                  s| j                          | j                  d       t        r"t        d| j                  | j                  |       | j                   | j                  | j                    yy)z4Handler called when task is accepted by worker pool.ztask-startedzTask accepted: %s[%s] pid:%rN)r   r   r   r   task_acceptedrR   r   r   r  r.   debugr8   r9   r  r  )rz   pidtime_accepteds      r3   r   zRequest.on_accepted  s    &IK-$?@dyy""'0$))TWWcJ!!-DNND223 .r2   c                    |r#t        d|| j                  | j                         yt        |        t	        d|| j                  | j                         t        |      }| j                  j                  j                  | j                  || j                  | j                         | j                  j                  r(| j                  j                  r| j                          yyy)z%Handler called if the task times out.z)Soft time limit (%ss) exceeded for %s[%s]z)Hard time limit (%ss) exceeded for %s[%s]r  N)warnr8   r9   r  errorr   rR   r  mark_as_failurer  r   r   acks_on_failure_or_timeoutr   )rz   softr   r   s       r3   r   zRequest.on_timeout	  s    <$))TWW. t=499dgg/#G,CII--dmm!.. . 
 yy""tyy'K'K  " (L"r2   c                 H   |\  }}}|rS|j                   }t        |t              r|j                  }t        |t        t
        f      r|| j                  |d      S t        | d       | j                  j                  r| j                          | j                  d||       y)z6Handler called if the task was successfully processed.T	return_ok
successfultask-succeededr   runtimeN)	exceptionr  r   r   
SystemExitKeyboardInterruptr   r  rR   r   r   r  )rz   failed__retval__runtimerg   failedr   rC  r   s          r3   r   zRequest.on_success  s    "9""C#56gg#
,=>?	??6T?::4D)99(Ir2   c                     | j                   j                  r| j                          | j                  dt	        |j
                  j                        t        |j                               y)z-Handler called if the task should be retried.ztask-retriedrD  	tracebackN)	rR   r   r   r  r	   rD  r   r
   rK  )rz   exc_infos     r3   r  zRequest.on_retry-  sQ    99"+H,>,>,B,B"C"*8+=+="> 	 	@r2   c           	         t        |        |j                  }t        |t              r|j                  }t        |t
              }|r6| j                  s)| j                  s| j                  ddt        |      d       yt        |t              rt        d|       t        |t              r| j                  |j                        S t        |t              r| j                         S t        |t               r| j#                  |      S d}t        |t$              }| j&                  j(                  r| j&                  j*                  xr |xs) t        |t,              xr | j&                  j.                   }| j&                  j.                  }	|rd}| j                  |       d}n%|	r| j                          n| j                  d       |s|s|s| j&                  j0                  j3                  | j4                  || j6                  | j8                         t:        j<                  j?                  | j&                  | j4                  || j@                  | jB                  |jD                  |       |r:| jG                  d	tI        tK        |j                              |jD                  
       |stM        d||jN                         yy)z/Handler called if the task raised an exception.r   TFNzProcess got: r   r  )senderr   rD  rf   rg   rK  r  ztask-failedrJ  zTask handler raised error: %r)rL  )(r  rD  r  r   r   r   r  r  r  strMemoryErrorr   r   r   r   r   r   r  r   rR   r   reject_on_worker_lostr   r:  r  r9  r9   r  r   r   task_failurer/  rf   rg   rK  r  r	   r    r8  rL  )
rz   rL  send_failed_eventr>  r   is_terminatedr   is_worker_lostr   acks
             r3   r   zRequest.on_failure6  sU   4  c12''C"3
3 **43H3H && $C%9[)cU344V$;;s{{;33V$##%%U#==** #C99900C^ es$56ctyy?c?c;c  ))66CG,$)!  " E* N)II--dmm!.. . 
   %%TYY03$))-1[[080B0B,4	 & 6 OO#$9(:L:L$MN",,   13#,,. r2   c                 l    | j                   s(| j                  t        | j                         d| _         yy)zAcknowledge task.TN)acknowledgedr<   r*   r@   r   s    r3   r   zRequest.acknowledge  s,      LL!8!89 $D !r2   c                     | j                   s<| j                  t        | j                  |       d| _         | j	                  d|       y y )NTztask-rejectedr   )rX  rE   r*   r@   r  )rz   r   s     r3   r   zRequest.reject  s>      OOFD$;$;WE $DOOOWO= !r2   c                    | j                   | j                  |s| j                  n| j                  |s| j                  n| j
                  | j                  | j                  | j                  | j                  | j                  | j                  d
S )N)
r9   r8   rf   rg   r   rd   r   rX  re   r   )r9   r8   rK   rI   rL   rJ   r7   r>   r   rX  re   r   )rz   safes     r3   r"  zRequest.info  sh    ''II&*DJJ*.dllD4D4DJJ// --!////
 	
r2   c                 $    dj                  |       S )Nz{0.name}[{0.id}])formatr   s    r3   	humaninfozRequest.humaninfo  s    !((..r2   c                     dj                  | j                         | j                  rd| j                   dnd| j                  rd| j                   dndg      j	                         S )z``str(self)``. z ETA:[]rX   z
 expires:[)joinr^  rB   rC   stripr   s    r3   __str__zRequest.__str__  s[    xxNN%)YYfTYYKq!B-1]]jq)
  57		r2   c                     dj                  t        |       j                  | j                         | j                  | j
                        S )z``repr(self)``.z<{}: {} {} {}>)r]  r   __name__r^  rI   rJ   r   s    r3   __repr__zRequest.__repr__  s:    &&J!1NND,,
 	
r2   c                     | j                   S r)   )ro   r   s    r3   r   zRequest._payload  r   r2   c                 D    | j                   \  }}}|j                  d      S )Nchordr   rp   rz   r   r   s      r3   rj  zRequest.chord  s"     mm1eyy!!r2   c                 D    | j                   \  }}}|j                  d      S )Nerrbacksrk  rl  s      r3   rn  zRequest.errbacks  s"     mm1eyy$$r2   c                 8    | j                   j                  d      S )Ngroupr   r   s    r3   rp  zRequest.group  s     !!%%g..r2   c                 |    | j                   }| j                  \  }}} |j                  di |xs i  t        |      S )z9Context (:class:`~celery.app.task.Context`) of this task.r1   )rD   r   ry   r   )rz   r   r   r   s       r3   r  zRequest._context  s@     $$ mm1e%"%wr2   c                 8    | j                   j                  d      S )Ngroup_indexr   r   s    r3   rs  zRequest.group_index  s     !!%%m44r2   r)   )TF)F)Urf  
__module____qualname____doc__rX  r   r   rq   r  r  r  r   r   IS_PYPY	__slots__r   r"   r!   r   propertyre   r{   r   rk   r~   r   rl   rm   r   rT   rU   rW   rf   rg   rY   r|   r   setterrd   rZ   r}   r   rR   r[   r\   rw   r   r   r   ra   r   r   r  r   dictr   rb   r   r   r   r   r  r	  r  r  r   r  r   r   r   r  r   r   r   r"  r^  rd  rg  r   r   rj  rn  rp  r  rs  r1   r2   r3   r&   r&   C   s   'LJJKMH
	 (,$#'ddu$"2,R4h # #   " "       " " & &                           # #   ^^    ' '       ^^   
 8 8   ^^      . . B B 4 4 ? ? ? O O O 4 4x B D
&	&AL'R=4#&J"@N.`%>
/
   " " % % / /
     5 5r2   r&   c
           
          |j                   |j                  |j                  |j                  |xr |j                  |	j
                  rt        nt         G fdd|       }
|
S )Nc                   .    e Zd ZfdZ fdZy)#create_request_cls.<locals>.Requestc                    | j                   }| j                         rt        |      | j                  \  }} | j                  || j
                  | j                  | j                  | j                  f| j                  | j                  | j                  | j                  |xs |xs 	|	      }t        
|      | _        |S )Nr   )r   r   r   rq   r   r   rk   rl   rm   r   r   r   r   r   r   )rz   r   rg   r   r   r   r   r   default_soft_time_limitdefault_time_limitr   r   s          r3   r   z6create_request_cls.<locals>.Request.execute_using_pool  s    llG||~&w//*.*:*:'J ii$*;*;TYY'')>)>@ $ 0 0!%#,G0G"8&8&F "'sF!3DMr2   c                 "   |\  }}}|rS|j                   }t        |t              r|j                  }t        |t        t
        f      r|| j                  |d      S  	| d       r| j                          r| j                  d||       y y )NTr=  r?  rA  rB  )	rD  r  r   r   rE  rF  r   r   r  )
rz   rG  rg   rH  r   rC  r   r   eventsr  s
          r3   r   z.create_request_cls.<locals>.Request.on_success  s    &=#FFG&&c#9:''CcJ0A#BCIv>>t-  "$VW    r2   N)rf  rt  ru  r   r   )r   r   r  r  r  r   r  r   s   r3   r&   r~    s    	 	.	r2   r&   )r   r   r   r   r-  r   r   r   )baserR   r   rd   r}   r   r   r  r   r~   r&   r   r   r  r  r  s        ` ``  @@@@@r3   create_request_clsr    sj     "22""KI(F}#&#:#:* *$ *X Nr2   )Qrv  r,   sysr   r   r   weakrefr   billiard.commonr   billiard.einfor   kombu.utils.encodingr	   r
   kombu.utils.objectsr   celeryr   r   celery.app.taskr   celery.app.tracer   r   r   celery.concurrency.baser   celery.exceptionsr   r   r   r   r   r   r   r   celery.platformsr   celery.utils.functionalr   r   r   celery.utils.logr   celery.utils.nodenamesr   celery.utils.serializationr    celery.utils.timer!   r"   r#   rX   r%   __all__hasattrrw  rf  r*   r3  r"  warningr8  r7  r0   r.   r4   tz_or_localtask_revokedr/  r  
task_retryr  r2  r  r   r   r  r&   r  r1   r2   r3   <module>r     s:  
  
     ( 1 4 / ' # H H ,C C C 0 ; ; ' . < G G 

 #*
+	H	"LL&++"NNFLL: tT5
3  ""##(($$
##
%%X
5 X
5x m",Dk8r2   