Ë
    ˜V.j(  ã            	       óÞ   — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 dddhd	d
ddddœZ G d„ d«      Z G d„ d ee	j                  «      «      Zddddeddfd„Zed„ «       Zedd„«       Zy)z-Create Celery app instances used for testing.é    N)Úcontextmanager)Údeepcopy)Úsymbol_by_name)ÚCeleryÚ_stateFÚjsonTÚUTCz	memory://zcache+memory://)Úworker_hijack_root_loggerÚworker_log_colorÚaccept_contentÚ
enable_utcÚtimezoneÚ
broker_urlÚresult_backendÚbroker_heartbeatc                   ó   — e Zd ZdZd„ Zy)ÚTrapz·Trap that pretends to be an app but raises an exception instead.

    This to protect from code that does not properly pass app instances,
    then falls back to the current_app.
    c                 óD   — |dk(  s|dk(  ry t        |«       t        d«      ‚)NÚ_is_coroutineÚ__func__zTest depends on current_app)ÚprintÚRuntimeError)ÚselfÚnames     ú\C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/contrib/testing/app.pyÚ__getattr__zTrap.__getattr__   s)   € ð �?Ò" d¨jÒ&8ØÜˆdŒÜÐ8Ó9Ð9ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   © r   r   r   r      s   „ ñó:r   r   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚUnitLoggingz)Sets up logging for the test application.c                 ó2   •— t        ‰| �  |i |¤Ž d| _        y )NT)ÚsuperÚ__init__Úalready_setup)r   ÚargsÚkwargsÚ	__class__s      €r   r'   zUnitLogging.__init__*   s   ø€ Ü‰Ñ˜$Ð) &Ò)Ø!ˆÕr   )r   r   r    r!   r'   Ú__classcell__)r+   s   @r   r$   r$   '   s   ø„ Ù3÷"ð "r   r$   c                 óô   — ddl m} t        t        t        «      fi |xs i ¤Ž}|�|j                  dd«       |�|j                  dd«       |rdn|}t        | xs df||||dœ|¤Ž}	|	j                  |«       |	S )zApp used for testing.é   )ÚtasksNr   r   zcelery.tests)Úset_as_currentÚlogÚbrokerÚbackend)Ú r/   Údictr   ÚDEFAULT_TEST_CONFIGÚpopr   Úadd_defaults)
r   ÚconfigÚenable_loggingr0   r1   r3   r2   r*   r/   Útest_apps
             r   ÚTestAppr<   /   s”   € õ Ü”(Ô.Ó/Ñ@°6²<¸RÑ@€FØÐØ�
‰
�< Ô&ØÐØ�
‰
Ð# TÔ*Ù ‰$ c€CÜØÒ�ðà%ØØØñð ñ€Hð ×Ñ˜&Ô!Ø€Or   c              #   óä   ‡K  — t        «       Št        j                  }t        j                  ‰«        G ˆfd„d«      } |«       t        _        	 d–— |t        _        y# |t        _        w xY w­w)z—Contextmanager that installs the trap app.

    The trap means that anything trying to use the current or default app
    will raise an exception.
    c                   ó   •— e Zd ZW ° Zy)úset_trap.<locals>.NonTLSN)r   r   r    Úcurrent_app)Útraps   €r   ÚNonTLSr?   O   s   ø„ Ù‰r   rB   N)r   r   Ú_tlsÚset_default_app)ÚappÚprev_tlsrB   rA   s      @r   Úset_traprG   D   sP   øè ø€ ô ‹6€DÜ�{‰{€HÜ
×Ñ˜4Ô ÷ó á“(„F„KðÛàŒ�ø�hŒ�üs   ƒAA0ÁA  ÁA0Á A-Á-A0c              #   ó~  K  — t        j                  «       }t         j                  }t        t         j                  «      }t        j                  t         j                  «      }	 |rt        | «      5  d–— ddd«       nd–— t        j                  |«       |t         j                  _        | |ur| j                  «        |t         _        |t         _        y# 1 sw Y   Œ^xY w# t        j                  |«       |t         j                  _        | |ur| j                  «        |t         _        |t         _        w xY w­w)zWSetup default app for testing.

    Ensures state is clean after the test returns.
    N)r   Úget_current_appÚdefault_appÚsetÚ_on_app_finalizersÚweakrefÚWeakSetÚ_appsrG   rD   rC   r@   Úclose)rE   Úuse_trapÚprev_current_appÚprev_default_appÚprev_finalizersÚ	prev_appss         r   Úsetup_default_apprV   Y   så   è ø€ ô ×-Ñ-Ó/ÐÜ×)Ñ)ÐÜœ&×3Ñ3Ó4€OÜ—‘¤§¡Ó-€Ið!ÙÜ˜#•Û÷ �ó ä×ÑÐ/Ô0Ø"2Œ�‰ÔØÐ&Ñ&Ø�I‰IŒKØ$3ŒÔ!Ø Œ�÷ �ûô
 	×ÑÐ/Ô0Ø"2Œ�‰ÔØÐ&Ñ&Ø�I‰IŒKØ$3ŒÔ!Ø Œ�üs8   ‚A!D=Á$C$ Á1CÁ6C$ ÂAD=ÃC!ÃC$ Ã$AD:Ä:D=)F)r!   rM   Ú
contextlibr   Úcopyr   Úkombu.utils.importsr   Úceleryr   r   r6   r   Úlog_clsr$   r<   rG   rV   r"   r   r   Ú<module>r\      s™   ðÙ 3Û Ý %Ý å .ç !ð "'ØØ�hØØØØ'Øñ	Ð ÷:ñ :ô "‘. §¡Ó0ô "ð ˜d°5ÈØ T°$óð* ñó ðð( ò!ó ñ!r   