
    h                         d Z ddlmZ ddlmZ dZ ee      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y)zOBuilt-in Tasks.

The built-in tasks are always available in all app instances.
    )connect_on_app_finalize)
get_logger c                 @      j                  ddd       fd       }|S )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                  :     j                   j                          y N)backendcleanupapps   O/var/www/Befach/backend/env/lib/python3.12/site-packages/celery/app/builtins.pybackend_cleanupz1add_backend_cleanup_task.<locals>.backend_cleanup   s        task)r   r   s   ` r   add_backend_cleanup_taskr      s.     	XX+EXF Gr   c                 <    | j                  dddd      d        }|S )z9Task used by Task.replace when replacing task with group.Tzcelery.accumulateF)bindr   r	   r
   c                 6    |j                  d      }|||   S |S )Nindex)get)selfargskwargsr   s       r   
accumulatez'add_accumulate_task.<locals>.accumulate   s$    

7##/tE{9T9r   r   )r   r   s     r   add_accumulate_taskr       s1     	XX41%eXL: M: r   c           	           ddl m ddlm ddlmm}  j                  ddd j                  j                  ddd	      ddd j                   j                  |f fd
	       }|S )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	           
         || j                   } |      } |||D 
cg c]  }
 ||
       c}
      }|j                  r|j                  n|j                  }	 |j	                         }|s| j                  ||       |      }	         5   |j                  j                  d      }d d d        	 |j                         y c c}
w # t        $ r}| j                  |||      d }~ww xY w# 1 sw Y   FxY w# t        $ rG}t        j                  d||       j                  j                  | d|             Y d }~y d }~ww xY w# t        $ r}	 t        |j                               }d	|j                    d
|}n# t"        $ r t%        |      }Y nw xY wt        j                  d||       j                  j                  | |             Y d }~y d }~ww xY w)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jr2   r,   retculpritreasonr$   r%   r   r#   s                     r   unlock_chordz+add_unlock_chord_task.<locals>.unlock_chord/   s    //H #8S14:;qqc*;

 !% 9 9Dtyy	NJJLE jj8jMM"85	"$ HH>>"s#A <  	**8   	      !6#F22"%5cW#=> 3    	M#t779:&wzzl(3'B  #c#2HcBKK..xF9KLL	Ms   C
C E C:5E >D 	C7C22C7:D?E 	E=EE	G,#+FG'F&#G'%F&&<G''G,)celery.canvasr#   celery.exceptionsr$   celery.resultr%   r&   r   r5   result_chord_retry_intervalAsyncResultrE   )r   r&   rL   r$   r%   r#   s   `  @@@r   add_unlock_chord_taskrR   $   sn     .,BXX(d5"%(("F"FVZafmq  s8<!%dOO'81s1d r   c                 P     ddl m  j                  ddd       fd       }|S )Nr   	signaturez
celery.mapFr   c                 b     |       j                   } |D cg c]
  } | |       c}S c c}w Nr   typer   ititemr   rU   s      r   xmapzadd_map_task.<locals>.xmapj   s-    3',,')*tT
***s   ,rM   rU   r   )r   r]   rU   s   ` @r   add_map_taskr_   f   s.    'XX<EX:+ ;+ Kr   c                 P     ddl m  j                  ddd       fd       }|S )Nr   rT   zcelery.starmapFr   c                 \     |       j                   } |D cg c]  } | | 	 c}S c c}w rW   rX   rZ   s      r   xstarmapz"add_starmap_task.<locals>.xstarmapu   s-    3',,(*+d+++s   )r^   )r   rb   rU   s   ` @r   add_starmap_taskrc   q   s/    'XX#EX>, ?, Or   c                 L    ddl m | j                  ddd      fd       }|S )Nr   )chunkszcelery.chunksFr   c                 *    j                  | ||      S r   )apply_chunks)r   r[   n_chunkss      r   re   zadd_chunk_task.<locals>.chunks   s    ##D"a00r   )rM   re   r   )r   re   ri   s     @r   add_chunk_taskrj   |   s,    /XX?5uX=1 >1Mr   c                 `    ddl m ddlm | j	                  dddd      d	fd	       }|S )
5No longer used, but here for backwards compatibility.r   r"   )r&   zcelery.groupTF)r   r   r	   r
   c           	      <  
 | j                   
 |
      }
fdt        |      D        }
j                         5 }|D cg c]  }|j                  ||d       c} d d d        
j                  }	|r|	r|	j                  |       |S c c}w # 1 sw Y   1xY w)Nc              3   V   K   | ]   \  }} |       j                         " yw)r   N)clone).0ir   r   r#   partial_argss      r   	<genexpr>z0add_group_task.<locals>.group.<locals>.<genexpr>   s/      3a "$C066|D 3s   &)F)r@   produceradd_to_parent)r   	enumerateproducer_or_acquireapply_asynccurrent_worker_task	add_trail)r   tasksrC   r@   rr   ru   taskitrt   staskparentr   r#   r&   s       `     @r   groupzadd_group_task.<locals>.group   s    hh"63/3!*5!13$$& 	I(AGI8= 8-2  4 I	I ((VV$I	I 	Is   BBBBB)T)rM   r#   rO   r&   r   )r   r   r#   r&   s     @@r   add_group_taskr      s6     ./XX>UXG H Lr   c                 :    | j                  ddd      d        }|S )rl   zcelery.chainFr   c                      t        d      )Nzchain is not a real task)NotImplementedError)r   r   s     r   chainzadd_chain_task.<locals>.chain   s    !"<==r   r   )r   r   s     r   add_chain_taskr      s*     	XX>%eX<> =>Lr   c                 v    ddl m ddl m ddlm | j                  ddddd      	 	 d
fd		       }|S )rl   r   )chord)r   r"   zcelery.chordTF)r   r   r)   r	   r
   c           	         | j                   }	t        |      r|j                  n|}
 |
D cg c]  } ||	       c}| j                         } ||	      } ||      } |j                  ||||	|||fi |S c c}w rW   )r   
isinstancer{   run)r   headerbodyrr   rB   r+   r'   eagerr   r   r{   sch_chordr   r#   s                r   r   zadd_chord_task.<locals>.chord   s     hh *65 9v16
,-OA3'
xx t-FD!rvvfdL#x8068 	8
s   A>)r   N   NF)celeryr   r   rM   r#   r   )r   r   r   r   r#   s     @@@r   add_chord_taskr      sF     '-XX>E  (<@388(8 Lr   N)__doc__celery._stater   celery.utils.logr   __all____name__r8   r   r    rR   r_   rc   rj   r   r   r   r   r   r   <module>r      s    2 '
	H	 
 
   > >B        ,    r   