Ë
    –V.j  ã                   óÄ   — 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 )zàTask 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   €úUC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\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.   ø€ ð 	‡X�XÐ+°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Ó#ˆØ#Ð/ˆt�E‰{Ð9°TÐ9r   r   )r   r   s     r   Úadd_accumulate_taskr       s1   € ð 	‡X�X�4Ð1¸%Àe€XÓ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 )z•Task 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ñ # 8¨SÓ1ˆÙØÙ4:Ó;±F¨qÑ˜q cÖ*°FÑ;Øô
ˆð
 !%× 9Ò 9ˆD×Ò¸t¿y¹yˆð	NØ—J‘J“LˆEñ Ø—j‘j¨8À�jÓMÐMá" 8°Ô5ˆð	Ù"Õ$ÙØŸH™H×>Ñ>Ø"ô�÷ %ðØ—‘˜sÕ#ùòA <øô ò 	Ø—*‘*Ø 8¸ð ó ð ûð	ú÷ %Ð$ûô  ò Ü× Ñ Ð!6¸À#ÔFØ—‘×2Ñ2ØÙ"Ð%5°c°WÐ#=Ó>ð 3÷ ñ ûðûô ò 	Mð#Ü˜t×7Ñ7Ó9Ó:�Ø& w§z¡z l°(¸3¸'ÐB‘øÜ ò #Ü˜c›’ð#úä×ÑÐ2°H¸cÔBØ�K‰K×.Ñ.¨x¹ÀFÓ9K×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à‡X�XÐ(°dÀ5Ø"%§(¡(×"FÑ"FÐVZÐafÐmqð ó sà8<Ø!%¨dØŸO™O¸¿¹Ø'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   s1   ø€ á˜ 3Ô'×,Ñ,ˆÙ')Ó*¡r˜t‘�T•
 rÑ*Ð*ùÒ*s   š,©rM   rU   r   )r   r]   rU   s   ` @r   Úadd_map_taskr_   f   s.   ù€ å'à‡X�X�<¨°E€XÓ:ô+ó ;ð+ð €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   s1   ø€ á˜ 3Ô'×,Ñ,ˆÙ(*Ó+© ‘�d’¨Ñ+Ð+ùÒ+s   š)r^   )r   rb   rU   s   ` @r   Úadd_starmap_taskrc   q   s/   ù€ å'à‡X�XÐ#¨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,   ø€ å/à‡X�X�?¨5°u€XÓ=ó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Ù!1‘g�a˜ñ " $¨CÔ0×6Ñ6°|×DÙ!1ùs   ƒ&)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§   ú€ à�h‰hˆÙ" 6¨3Ó/ˆõ3Ü!*¨5Ô!1ó3ˆà×$Ñ$Ô&¨(áAGóIÙAG¸ð ×Ñ¨¸8Ø-2ð õ 4ØAGòI÷ 'ð ×(Ñ(ˆÙ™VØ×Ñ˜VÔ$ØˆùòI÷ 'Ð&ús   ¿BÁBÁBÂBÂB)T)rM   r#   rO   r&   r   )r   r   r#   r&   s     @@r   Úadd_group_taskr€   †   s6   ù€ õ .Ý/à‡X�X�>¨°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*   € ð 	‡X�X�>¨%°e€XÓ<ñ>ó =ð>à€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š   ø€ ð �h‰hˆä *¨6°5Ô 9�—’¸vˆÙÙ16ó
Ù16¨A‰O˜A 3Ö'°ñ
à�x‰xôˆñ ˜t¨Ô-ˆÙ�F˜DÓ!ˆØˆr�v‰v�f˜d L°#°xØ ñ8Ø06ñ8ð 	8ùò
s   ®A>)r   Né   NF)Úceleryr‡   r   rM   r#   r   )r   r‡   r�   r   r#   s     @@@r   Úadd_chord_taskr“   ¦   sF   ú€ õ 'ÝÝ-à‡X�X�>¨¸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   