
    `f                        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dS )zOBuilt-in Tasks.

The built-in tasks are always available in all app instances.
    )connect_on_app_finalize)
get_logger c                 N                           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                                          d S N)backendcleanupapps   E/var/www/html/env/lib/python3.11/site-packages/celery/app/builtins.pybackend_cleanupz1add_backend_cleanup_task.<locals>.backend_cleanup   s        task)r   r   s   ` r   add_backend_cleanup_taskr      sC     	XX+EXFF    GF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                 D    |                     d          }|||         n|S )Nindex)get)selfargskwargsr   s       r   
accumulatez'add_accumulate_task.<locals>.accumulate   s&    

7###/tE{{T9r   r   )r   r   s     r   add_accumulate_taskr       s<     	XX41%eXLL: : ML: r   c           	           ddl m ddlm ddlmm}                      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         } |          } ||fd|D                       }
|
j        r|
j        n|
j        }	 |
                                }|s|                     ||          n*# t          $ r}|                     |||          d }~ww xY w |          }	              5   |j        j        d          }d d d            n# 1 swxY w Y   	 |	                    |           d S # t          $ rO}t                              d||           j                            | d|          	           Y d }~d S d }~ww xY w# t          $ r}	 t          |
                                          }d
|j         d|}n# t"          $ r t%          |          }Y nw xY wt                              d||           j                            | |                     Y d }~d S d }~ww xY w)Nc                 *    g | ]} |           S r   r   ).0rr   r&   s     r   
<listcomp>z?add_unlock_chord_task.<locals>.unlock_chord.<locals>.<listcomp><   s*    ;;;qqc***;;;r   r   )	countdownr'   )excr0   r'   T)timeout	propagatezChord %r raised: %rzCallback error: )r1   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   depsjr7   r1   retculpritreasonr$   r%   r   r#   s           `        r   unlock_chordz+add_unlock_chord_task.<locals>.unlock_chord/   s    /H #?8S11{;;;;;F;;;
 
 

 !% 9HDty	NJJLLE  Njj8jMMMN  	 	 	**8    	 #?8555	""$$  aH>"                s#####     !6#FFF22"
#=c#=#=>> 3           	M 	M 	M#t7799::BwzBB3BB  # # #c#2HcBBBK..xF9K9KLLLLLLLLL	Ms   	A7 7
BBB/
E 9CE C!!E $C!%E )D   
E
AEE
H '.FG;F2/G;1F22AG;;H )celery.canvasr#   celery.exceptionsr$   celery.resultr%   r&   r   r:   result_chord_retry_intervalAsyncResultrJ   )r   r&   rP   r$   r%   r#   s   `  @@@r   add_unlock_chord_taskrV   $   s     .-----,,,,,,BBBBBBBBXX(d5"%("FVZafmq  s s8<!%dO'81 1 1 1 1 1 1 1s s1d r   c                 ^     ddl m                      ddd           fd            }|S )Nr   	signaturez
celery.mapFr   c                 F                 j           fd|D             S )Nr   c                 &    g | ]} |          S r   r   r-   itemr   s     r   r/   z.add_map_task.<locals>.xmap.<locals>.<listcomp>m   s!    ***tT

***r   typer   itr   rY   s   ` r   xmapzadd_map_task.<locals>.xmapj   s5    y3''',****r****r   rQ   rY   r   )r   rb   rY   s   ` @r   add_map_taskrd   f   sX    ''''''XX<EX::+ + + + + ;:+ Kr   c                 ^     ddl m                      ddd           fd            }|S )Nr   rX   zcelery.starmapFr   c                 F                 j           fd|D             S )Nr   c                     g | ]} | S r   r   r\   s     r   r/   z6add_starmap_task.<locals>.xstarmap.<locals>.<listcomp>x   s    +++d+++r   r^   r`   s   ` r   xstarmapz"add_starmap_task.<locals>.xstarmapu   s5    y3''',++++++++r   rc   )r   rh   rY   s   ` @r   add_starmap_taskri   q   sY    ''''''XX#EX>>, , , , , ?>, Or   c                 Z    ddl m |                     ddd          fd            }|S )Nr   )chunkszcelery.chunksFr   c                 2                         | ||          S r   )apply_chunks)r   ra   n_chunkss      r   rk   zadd_chunk_task.<locals>.chunks   s    ##D"a000r   )rQ   rk   r   )r   rk   ro   s     @r   add_chunk_taskrp   |   sP    //////XX?5uX==1 1 1 1 >=1Mr   c                 n    ddl m ddlm |                     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             }                                5 		fd|D              d d d            n# 1 swxY w Y   j        }|r|r|                    |           |S )Nc              3   ^   K   | ]'\  }} |                                          V  (dS )r   N)clone)r-   ir   r   r#   partial_argss      r   	<genexpr>z0add_group_task.<locals>.group.<locals>.<genexpr>   sX       3 3a "/$C00066|DD 3 3 3 3 3 3r   c                 @    g | ]}|                     d           S )F)rE   produceradd_to_parent)apply_async)r-   staskrE   rz   s     r   r/   z1add_group_task.<locals>.group.<locals>.<listcomp>   sK     I I I8= 8-2  4 4 I I Ir   )r   	enumerateproducer_or_acquirecurrent_worker_task	add_trail)r   tasksrH   rE   rw   r{   taskitparentr   rz   r#   r&   s      ``   @@r   groupzadd_group_task.<locals>.group   s9   h""63//3 3 3 3 3 3!*5!1!13 3 3$$&& 	I(I I I I IAGI I I I	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I ( 	%V 	%V$$$s   
A&&A*-A*)T)rQ   r#   rS   r&   r   )r   r   r#   r&   s     @@r   add_group_taskr      st     .-----//////XX>UXGG      HG Lr   c                 H    |                      ddd          d             }|S )rr   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      s5     	XX>%eX<<> > =<>Lr   c                     ddl m ddl m ddlm |                     ddddd          	 	 dfd	            }|S )rr   r   )chord)r   r"   zcelery.chordTF)r   r   r)   r	   r
   r   N   c           	          | j         t          |          r|j        n|}	 fd|	D             | j                   } |          } ||          }
 |
j        ||||||fi |S )Nc                 *    g | ]} |           S r,   r   )r-   sr   r#   s     r   r/   z1add_chord_task.<locals>.chord.<locals>.<listcomp>   s5     
 
 
,-OOA3'''
 
 
r   r   )r   
isinstancer   run)r   headerbodyrw   rG   r0   r'   eagerr   r   chr   _chordr   r#   s              @r   r   zadd_chord_task.<locals>.chord   s     h *65 9 9Ev 
 
 
 
 
16
 
 
x   t---VFD!!rvfdL#x8 8068 8 	8r   )r   Nr   NF)celeryr   r   rQ   r#   r   )r   r   r   r   r#   s     @@@r   add_chord_taskr      s     '&&&&&------XX>E  ( (<@388 8 8 8 8 8 8( (8 Lr   N)__doc__celery._stater   celery.utils.logr   __all____name__r=   r   r    rV   rd   ri   rp   r   r   r   r   r   r   <module>r      sP    2 1 1 1 1 1 ' ' ' ' ' '
	H		 
 
 
    > > >B            ,        r   