Ë
    –V.j¥  ã                   óN  — d Z ddlZddlZddlZddlZddlmZ ddlmZ dZ	da
da ej                  «       Z e«       Zdad„ Zd„ Zd	„ Zd
„ Z G d„ dej*                  «      Z e«       Z e«       Zej2                  Zej6                  Zd„ Zd„ Zd„ Zej@                  jC                  d«      rd„ Z"n!ej@                  jC                  d«      rd„ Z"neZ"d„ Z#d„ Z$ ee"«      Z% ee#«      Z&d„ Z'd„ Z(d„ Z)dd„Z*dd„Z+d„ Z,d„ Z-ej@                  jC                  d«      r e,«        y e-«        y)z�Internal state.

This is an internal module containing thread state
like the ``current_app``, and ``current_task``.

This module shouldn't be used directly.
é    N)ÚProxy)Ú
LocalStack)Úset_default_appÚget_current_appÚget_current_taskÚget_current_worker_taskÚcurrent_appÚcurrent_taskÚconnect_on_app_finalizeFc                 ó0   — t         j                  | «       | S )z8Connect callback to be called when any app is finalized.)Ú_on_app_finalizersÚadd)Úcallbacks    úOC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/_state.pyr   r   +   s   € ä×Ñ˜8Ô$Ø€Oó    c                 ó@   — t        t        «      }|D ]
  } || «       Œ y ©N)Úsetr   )ÚappÚ	callbacksr   s      r   Ú_announce_app_finalizedr   1   s   € ÜÔ&Ó'€IÛˆÙ��ñ r   c                 ó   — | a y r   ©Ú_task_join_will_block)Úblockss    r   Ú_set_task_join_will_blockr   7   s   € à"Ñr   c                  ó   — t         S r   r   © r   r   Útask_join_will_blockr   <   s   € Ü Ð r   c                   ó   — e Zd ZdZy)Ú_TLSN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r!   r!   @   s	   „ ð �Kr   r!   c                 ó   — | a y)zSet default app.N)Údefault_app©r   s    r   r   r   V   s	   € ð �Kr   c            
      ó¶   — t         €<ddlm}  t         | dg dt        j
                  j                  d«      xs d¬«      «       t        j                  xs t         S )Nr   ©ÚCeleryÚdefaultFÚCELERY_LOADER)ÚfixupsÚset_as_currentÚloader)	r&   Úcelery.app.baser*   r   ÚosÚenvironÚgetÚ_tlsr	   r)   s    r   Ú_get_current_appr5   \   sI   € ÜÐå*Ü™Ø˜b°Ü—:‘:—>‘> /Ó2Ò?°iô
ô 	ô ×ÑÒ*œ{Ð*r   c                 ó   — | t         _        y r   )r4   r	   r'   s    r   Ú_set_current_appr7   g   s
   € Ø„DÕr   ÚC_STRICT_APPc                  ó   — t        d«      ‚)zReturn the current app.zUSES CURRENT APP)ÚRuntimeErrorr   r   r   r   r   l   s   € äÐ-Ó.Ð.r   Ú
C_WARN_APPc                  ó”   — dd l } t        dt        j                  ¬«       | j	                  t        j                  ¬«       t        «       S )Nr   z-- USES CURRENT_APP)Úfile)Ú	tracebackÚprintÚsysÚstderrÚprint_stackr5   )r>   s    r   r   r   p   s2   € ÛÜÐ#¬#¯*©*Õ5Ø×Ñ¤3§:¡:ÐÔ.ÜÓ!Ð!r   c                  ó"   — t         j                  S )zCurrently executing task.)Ú_task_stackÚtopr   r   r   r   r   y   s   € ä�?‰?Ðr   c                  ót   — t        t        j                  «      D ]  } | j                  j                  rŒ| c S  y)zïCurrently executing task, that was applied by the worker.

    This is used to differentiate between the actual task
    executed by the worker and any task that was called within
    a task (using ``task.__call__`` or ``task.apply``)
    N)ÚreversedrD   ÚstackÚrequestÚcalled_directly)Útasks    r   r   r   ~   s+   € ô œ×*Ñ*Ö+ˆØ�|‰|×+Ó+ØŠKñ ,r   c                 ó.   — t         j                  | «       y r   )Ú_appsr   r'   s    r   Ú_register_apprN   ‘   s   € Ü	‡I�Iˆc…Nr   c                 ó.   — t         j                  | «       y r   )rM   Údiscardr'   s    r   Ú_deregister_apprQ   •   s   € Ü	‡M�M�#Õr   c                  ó   — t         S r   )rM   r   r   r   Ú_get_active_appsrS   ™   s   € Ü€Lr   c                 ó   — | €
t        «       S | S r   )r   r'   s    r   Ú_app_or_defaultrU   �   s   € Ø
€{ÜÓ Ð Ø€Jr   c                 ó  — ddl m} 	 ddlm} | €lt        t        dd «      r"t        d«        |«        t        j                  S |r |«       j                  dk(  rt        d«      ‚t        d«        |«        t        S | S # t        $ r d }Y Œ}w xY w)	Nr   )rB   )Úcurrent_processr	   z-- RETURNING TO CURRENT APP --ÚMainProcesszDEFAULT APPz-- RETURNING TO DEFAULT APP --)r>   rB   Úbilliard.processrW   ÚImportErrorÚgetattrr4   r?   r	   Ú_nameÚ	Exceptionr&   )r   rB   rW   s      r   Ú_app_or_default_tracer^   £   s‡   € Ý%ðÝ4ð €{Ü”4˜¨Ô-ÜÐ2Ô3ÙŒMÜ×#Ñ#Ð#Ù¡/Ó"3×"9Ñ"9¸]Ò"JÜ˜MÓ*Ð*ÜÐ.Ô/ÙŒÜÐØ€Jøô ò ØŠðús   ˆA> Á>BÂBc                  ó   — t         ay)z Enable tracing of app instances.N)r^   Úapp_or_defaultr   r   r   Úenable_tracera   ¶   s	   € ô +�Nr   c                  ó   — t         ay)z!Disable tracing of app instances.N)rU   r`   r   r   r   Údisable_tracerc   ¼   s	   € ô %�Nr   ÚCELERY_TRACE_APPr   ).Ú__doc__r1   r@   Ú	threadingÚweakrefÚcelery.localr   Úcelery.utils.threadsr   Ú__all__r&   r`   ÚWeakSetrM   r   r   r   r   r   r   r   Úlocalr!   r4   rD   ÚpushÚpush_current_taskÚpopÚpop_current_taskr   r5   r7   r2   r3   r   r   r   r	   r
   rN   rQ   rS   rU   r^   ra   rc   r   r   r   Ú<module>rq      sH  ðñó 
Û 
Û Û å Ý +ð€ð €ð €ð 	ˆ�‰Ó€ñ “UÐ àÐ òòò#ò
!ôˆ9�?‰?ô ñ ƒv€á‹l€ð  ×$Ñ$Ð ð —?‘?Ð òò+òð ‡:�:‡>�>�.Ô!ó/ð ‡Z�Z‡^�^�LÔ!ó"ð '€Oòò
	ñ �OÓ$€ñ Ð%Ó&€òòòóóò&+ò%ð ‡:�:‡>�>Ð$Ô%Ù…Ná…Or   