
    h                         S r SSKJr  SSKJr  Sr\" \5      r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       rg)zOBuilt-in Tasks.

The built-in tasks are always available in all app instances.
    )connect_on_app_finalize)
get_logger c                 <   ^  T R                  SSSS9U 4S j5       nU$ )zTask used to clean up expired results.

If the configured backend requires periodic cleanup this task is also
automatically configured to run every day at 4am (requires
:program:`celery beat` to be running).
zcelery.backend_cleanupFnamesharedlazyc                  :   > T R                   R                  5         g N)backendcleanupapps   ;D:\TimeStamps\venv\Lib\site-packages\celery/app/builtins.pybackend_cleanup1add_backend_cleanup_task.<locals>.backend_cleanup   s        task)r   r   s   ` r   add_backend_cleanup_taskr      s.     	XX+EXF Gr   c                 6    U R                  SSSSS9S 5       nU$ )z9Task used by Task.replace when replacing task with group.Tzcelery.accumulateF)bindr   r	   r
   c                 6    UR                  S5      nUb  X   $ U$ )Nindex)get)selfargskwargsr   s       r   
accumulate'add_accumulate_task.<locals>.accumulate   s"    

7##/t{9T9r   r   )r   r    s     r   add_accumulate_taskr"      s1     	XX41%eXL: M: r   c           
         ^ ^^^ SSK Jm  SSKJm  SSKJmJn  T R                  SSST R                  R                  SSSS	9SSST R                  T R                  U4UUU U4S
 jj5       nU$ )zTask used by result backends without native chord support.

Will joins chord by creating a task chain polling the header
for completion.
r   maybe_signature)
ChordError)allow_join_resultresult_from_tuplezcelery.chord_unlockNFT)r   max_retriesr	   default_retry_delayignore_resultr
   r   c	                   > Uc  U R                   nT" UT5      nU" UU V
s/ s H	  o" U
TS9PM     sn
TS9nUR                  (       a  UR                  OUR                  n UR	                  5       nU(       d  U R                  X4S9e T" UTS9n T" 5          U" TR                  R                  SS9nS S S 5         UR                  W5        g s  sn
f ! [         a  nU R                  XUS9eS nAff = f! , (       d  f       NH= f! [         aD  n[        R                  SX5        TR                  R                  UT" SU< 35      S9   S nAg S nAff = f! [         a  n [        UR                  5       5      nS	UR                    S
U< 3nO! ["         a    [%        U5      n Of = f[        R                  SX5        TR                  R                  UT" U5      5         S nAg S nAff = f)Nr   )	countdownr)   )excr-   r)   T)timeout	propagatezChord %r raised: %rzCallback error: )r.   zDependency z raised )r*   supports_native_joinjoin_nativejoinreadyretry	Exceptionconfresult_chord_join_timeoutdelaylogger	exceptionr   chord_error_from_stacknext_failed_join_reportidStopIterationrepr)r   group_idcallbackintervalr)   resultResultGroupResultr(   r   rdepsjr4   r.   retculpritreasonr&   r'   r   r%   s                     r   unlock_chord+add_unlock_chord_task.<locals>.unlock_chord/   s    //H #8S14:;Fqqc*F;

 !% 9 9Dtyy	NJJLE jj8jMM  #85	"$HH>>" %s#A <  	**   	 %$     !6F22"%5cW#=> 3   	M#t779:&wzzl(3'B  #c#2HBKK..xF9KLL	Ms   C
!C E C53E <D 
C2C--C25
D?E 
E:EE
G,",FG'F'$G'&F'';G''G,)celery.canvasr%   celery.exceptionsr&   celery.resultr'   r(   r   r7   result_chord_retry_intervalAsyncResultrG   )r   r(   rN   r&   r'   r%   s   `  @@@r   add_unlock_chord_taskrU   $   ss     .,BXX(d5"%(("F"FVZafmq  s8<!%dOO'81 1s1d r   c                 L   ^ ^ SSK Jm  T R                  SSSS9U U4S j5       nU$ )Nr   	signaturez
celery.mapFr   c                 `   > T" U TS9R                   n U Vs/ s H
  o " U5      PM     sn$ s  snf Nr   typer   ititemr   rX   s      r   xmapadd_map_task.<locals>.xmapj   s1    3',,')*rtT
r***s   +rP   rX   r   )r   r`   rX   s   ` @r   add_map_taskrc   f   s.    'XX<EX:+ ;+ Kr   c                 L   ^ ^ SSK Jm  T R                  SSSS9U U4S j5       nU$ )Nr   rW   zcelery.starmapFr   c                 Z   > T" U TS9R                   n U Vs/ s H  o " U6 PM	     sn$ s  snf rZ   r[   r]   s      r   xstarmap"add_starmap_task.<locals>.xstarmapu   s1    3',,(*+d+++s   (rb   )r   rf   rX   s   ` @r   add_starmap_taskrh   q   s/    'XX#EX>, ?, Or   c                 H   ^ SSK Jm  U R                  SSSS9U4S j5       nU$ )Nr   )chunkszcelery.chunksFr   c                 (   > TR                  XU5      $ r   )apply_chunks)r   r^   n_chunkss      r   rj   add_chunk_task.<locals>.chunks   s    ##Da00r   )rP   rj   r   )r   rj   rn   s     @r   add_chunk_taskrp   |   s,    /XX?5uX=1 >1Mr   c                 ^   ^^ SSK Jm  SSKJm  U R	                  SSSSS9S	UU4S jj5       nU$ )
5No longer used, but here for backwards compatibility.r   r$   )r(   zcelery.groupTF)r   r   r	   r
   c           
      X  >^^
 U R                   m
T" UT
5      nU
UU4S j[        U5       5       nT
R                  5        nU Vs/ s H  nUR                  X7SS9PM       nS S S 5        T
R                  n	U(       a  U	(       a  U	R                  U5        U$ s  snf ! , (       d  f       N@= f)Nc              3   T   >#    U  H  u  pT" UTS 9R                  T5      v   M     g7f)r   N)clone).0ir   r   r%   partial_argss      r   	<genexpr>0add_group_task.<locals>.group.<locals>.<genexpr>   s/      3!1ga "$C066|DD!1s   %(F)rB   produceradd_to_parent)r   	enumerateproducer_or_acquireapply_asynccurrent_worker_task	add_trail)r   tasksrE   rB   rx   r|   taskitr{   staskparentr   r%   r(   s       `     @r   groupadd_group_task.<locals>.group   s    hh"63/3!*5!13$$&(AGIAG -2  4AGI ' ((VV$I '&s    BBBB
B))T)rP   r%   rR   r(   r   )r   r   r%   r(   s     @@r   add_group_taskr      s6     ./XX>UXG H Lr   c                 4    U R                  SSSS9S 5       nU$ )rr   zcelery.chainFr   c                      [        S5      e)Nzchain is not a real task)NotImplementedError)r   r   s     r   chainadd_chain_task.<locals>.chain   s    !"<==r   r   )r   r   s     r   add_chain_taskr      s*     	XX>%eX<> =>Lr   c                 t   ^^^ SSK Jm  SSK Jm  SSKJm  U R                  SSSSSS9  S
UUU4S	 jj5       nU$ )rr   r   )chord)r   r$   zcelery.chordTF)r   r   r+   r	   r
   c           
         > U R                   n	[        UT5      (       a  UR                  OUn
T" U
 Vs/ s H	  nT" XS9PM     snU R                   S9nT" X)S9nT" X5      nUR                  " XX9UXV40 UD6$ s  snf rZ   )r   
isinstancer   run)r   headerbodyrx   rD   r-   r)   eagerr   r   r   sch_chordr   r%   s                r   r   add_chord_task.<locals>.chord   s     hh *65 9 9v16
16AOA'
xx t-F!vvfLx8068 	8
s   A7)r   N   NF)celeryr   r   rP   r%   r   )r   r   r   r   r%   s     @@@r   add_chord_taskr      sK     '-XX>E  (<@388 8(8 Lr   N)__doc__celery._stater   celery.utils.logr   __all____name__r:   r   r"   rU   rc   rh   rp   r   r   r   r   r   r   <module>r      s    2 '
	H	 
 
   > >B        ,    r   