§
    VøÁi�!  ã                   ó’  — d dl m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 eo? ej	        d¦  «        �$d ej	        d¦  «         
                    ¦   «         vn eed¦  «        d	fZ G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zd„ Z G d„ de¦  «        Zedk    r ej        ¦   «          dS dS )é    )Úprint_functionNé   )ÚTestCase)ÚPY312ÚOPTz-DNDEBUGÚgettotalrefcountz1Broken on assertion-enabled builds of Python 3.12c                   ó   — e Zd ZdS )Ú	SomeErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úe/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/greenlet/tests/test_tracing.pyr
   r
      s   € € € € € Ø€Dr   r
   c                   ó,   — e Zd ZdZdd„Zd„ Zd„ Zd„ ZdS )ÚGreenletTracerNFc                 ó"   — g | _         || _        d S ©N)ÚactionsÚerror_on_trace)Úselfr   s     r   Ú__init__zGreenletTracer.__init__   s   € ØˆŒØ,ˆÔÐÐr   c                 óV   — | j                              |¦  «         | j        rt          ‚d S r   )r   Úappendr   r
   ©r   Úargss     r   Ú__call__zGreenletTracer.__call__!   s2   € ØŒ×Ò˜DÑ!Ô!Ð!ØÔð 	ÝˆOð	ð 	r   c                 óB   — t          j        | ¦  «        | _        | j        S r   )ÚgreenletÚsettraceÚoldtracer   ©r   s    r   Ú	__enter__zGreenletTracer.__enter__&   s   € Ý Ô)¨$Ñ/Ô/ˆŒØŒ|Ðr   c                 ó8   — t          j        | j        ¦  «         d S r   )r   r    r!   r   s     r   Ú__exit__zGreenletTracer.__exit__*   s   € ÝÔ˜$œ-Ñ(Ô(Ð(Ð(Ð(r   )F©r   r   r   r!   r   r   r#   r%   r   r   r   r   r      sZ   € € € € € Ø€Hð-ð -ð -ð -ðð ð ð
ð ð ð)ð )ð )ð )ð )r   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTestGreenletTracingz*
    Tests of ``greenlet.settrace()``
    c           	      ó�  — t          j        ¦   «         }d„ }d„ }t          ¦   «         5 }t          j         |¦  «        }|                     ¦   «          t          j         |¦  «        }|                      t
          |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |d||ffd||ffd||ffd||ffg¦  «         d S )Nc                  ó   — d S r   r   r   r   r   Údummyz:TestGreenletTracing.test_a_greenlet_tracing.<locals>.dummy5   s   € ØˆDr   c                  ó   — t          ¦   «         ‚r   )r
   r   r   r   Údummyexcz=TestGreenletTracing.test_a_greenlet_tracing.<locals>.dummyexc7   s   € Ý‘+”+Ðr   ÚswitchÚthrow)r   Ú
getcurrentr   r.   ÚassertRaisesr
   ÚassertEqual)r   Úmainr+   r-   r   Úg1Úg2s          r   Útest_a_greenlet_tracingz+TestGreenletTracing.test_a_greenlet_tracing3   s.  € ÝÔ"Ñ$Ô$ˆð	ð 	ð 	ð	ð 	ð 	õ ÑÔð 	4 ÝÔ" 5Ñ)Ô)ˆBØ�IŠI‰KŒKˆKÝÔ" 8Ñ,Ô,ˆBØ×Ò�i¨¬Ñ3Ô3Ð3ð		4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	×Ò˜Ø˜˜b�zÐ"Ø˜˜D�zÐ"Ø˜˜b�zÐ"Ø�r˜4�jÐ!ð	#
ñ 	ô 	ð 	ð 	ð 	s   ¨ABÂBÂBc                 óœ  ‡— t          j        ¦   «         Šˆfd„}t          j         |¦  «        }|                     ¦   «          t          d¬¦  «        5 }|                      t
          |j        ¦  «         |                      t          j        ¦   «         d ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |d‰|ffg¦  «         d S )Nc                  ó0   •— ‰                       ¦   «          d S r   )r.   )r3   s   €r   r+   zDTestGreenletTracing.test_b_exception_disables_tracing.<locals>.dummyI   s   ø€ Ø�KŠK‰MŒMˆMˆMˆMr   T)r   r.   )r   r0   r.   r   r1   r
   r2   Úgettrace)r   r+   Úgr   r3   s       @r   Ú!test_b_exception_disables_tracingz5TestGreenletTracing.test_b_exception_disables_tracingG   s  ø€ ÝÔ"Ñ$Ô$ˆð	ð 	ð 	ð 	ð 	åÔ˜eÑ$Ô$ˆØ	�Š‰
Œ
ˆ
Ý¨4Ð0Ñ0Ô0ð 	8°GØ×Ò�i¨¬Ñ2Ô2Ð2Ø×Ò�XÔ.Ñ0Ô0°$Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	×Ò˜Ø˜˜a�yÐ!ð#
ñ 	ô 	ð 	ð 	ð 	s   ÁAB&Â&B*Â-B*c                 ó€   — t          ¦   «         }|5  t          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   r    ©r   Útracers     r   Útest_set_same_tracer_twicez.TestGreenletTracing.test_set_same_tracer_twiceU   sŠ   € õ
  Ñ!Ô!ˆØð 	&ð 	&ÝÔ˜fÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ‘3³7º7N)r   r   r   Ú__doc__r6   r;   r?   r   r   r   r(   r(   .   sK   € € € € € ðð ðð ð ð(ð ð ð&ð &ð &ð &ð &r   r(   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚPythonTracerNc                 ó   — g | _         d S r   )r   r"   s    r   r   zPythonTracer.__init__b   s   € ØˆŒˆˆr   c                 óR   — | j                              ||j        j        f¦  «         d S r   )r   r   Úf_codeÚco_name)r   ÚframeÚeventÚargs       r   r   zPythonTracer.__call__e   s(   € àŒ×Ò˜U E¤LÔ$8Ð9Ñ:Ô:Ð:Ð:Ð:r   c                 óB   — t          j        | ¦  «        | _        | j        S r   )ÚsysÚ
setprofiler!   r   r"   s    r   r#   zPythonTracer.__enter__i   s   € Ýœ tÑ,Ô,ˆŒØŒ|Ðr   c                 ó8   — t          j        | j        ¦  «         d S r   )rK   rL   r!   r   s     r   r%   zPythonTracer.__exit__m   s   € ÝŒ�t”}Ñ%Ô%Ð%Ð%Ð%r   r&   r   r   r   rB   rB   _   sU   € € € € € Ø€Hðð ð ð;ð ;ð ;ðð ð ð&ð &ð &ð &ð &r   rB   c                  ó   — dS ©Né*   r   r   r   r   Útpt_callbackrQ   p   s   € Øˆ2r   c                   ó’   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Z ej        eŽ d„ ¦   «         Z ej        eŽ d„ ¦   «         ZdS )ÚTestPythonTracingzŒ
    Tests of the interaction of ``sys.settrace()``
    with greenlet facilities.

    NOTE: Most of this is probably CPython specific.
    Nc                 óž   — t          ¦   «         5 }t          ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |g d¢¦  «         d S )N)©Úreturnr#   ©ÚcallrQ   ©rV   rQ   ©rX   r%   ©Úc_callr%   )rB   rQ   r2   )r   r   s     r   Útest_trace_events_trivialz+TestPythonTracing.test_trace_events_trivial}   sœ   € Ý‰^Œ^ð 	˜wÝ‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜ð #
ð #
ð #
ñ 	ô 	ð 	ð 	ð 	s   �*ª.±.c                 óz   — t          ¦   «         5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |S r   )rB   r.   ©r   Úgletr   s      r   Ú_trace_switchzTestPythonTracing._trace_switch�   sp   € Ý‰^Œ^ð 	˜wØ�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	àˆs   �0°4·4c                 ó`   — |                       |¦  «        }|                      |g d¢¦  «         d S )N)	rU   )r\   ra   )rX   ÚrunrW   rY   ©rV   rc   )Úc_returnra   rZ   r[   )ra   r2   r_   s      r   Ú$_check_trace_events_func_already_setz6TestPythonTracing._check_trace_events_func_already_set•   sH   € Ø×$Ò$ TÑ*Ô*ˆØ×Ò˜ð 
#
ð 
#
ð 
#
ñ 
	ô 
	ð 
	ð 
	ð 
	r   c                 óZ   — d„ }|                       t          j        |¦  «        ¦  «         d S )Nc                  ó   — t          ¦   «         S r   ©rQ   r   r   r   rc   zOTestPythonTracing.test_trace_events_into_greenlet_func_already_set.<locals>.run¤   s   € Ý‘>”>Ð!r   )rf   r   )r   rc   s     r   Ú0test_trace_events_into_greenlet_func_already_setzBTestPythonTracing.test_trace_events_into_greenlet_func_already_set£   s8   € ð	"ð 	"ð 	"ð 	×1Ò1µ(Ô2CÀCÑ2HÔ2HÑIÔIÐIÐIÐIr   c                 óp   —  G d„ dt           j         ¦  «        }|                       |¦   «         ¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )úQTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set.<locals>.Xc                 ó   — t          ¦   «         S r   ri   r"   s    r   rc   zUTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set.<locals>.X.run«   s   € Ý#‘~”~Ð%r   N©r   r   r   rc   r   r   r   ÚXrm   ª   s#   € € € € € ð&ð &ð &ð &ð &r   rp   )r   rf   )r   rp   s     r   Ú4test_trace_events_into_greenlet_subclass_already_setzFTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set©   sQ   € ð	&ð 	&ð 	&ð 	&ð 	&•Ô!ñ 	&ô 	&ð 	&ð 	×1Ò1°!°!±#´#Ñ6Ô6Ð6Ð6Ð6r   c                 ó¬   — |                      ¦   «          t          ¦   «          |                     ¦   «          |                      |j        g d¢¦  «         d S )N)rU   rW   rY   rd   rW   rY   rZ   r[   )r.   rQ   r%   r2   r   )r   r:   r>   s      r   Ú/_check_trace_events_from_greenlet_sets_profilerzATestPythonTracing._check_trace_events_from_greenlet_sets_profiler¯   s]   € Ø	�Š‰
Œ
ˆ
Ý‰ŒˆØ�ŠÑÔÐØ×Ò˜œð 	*
ð 	*
ð 	*
ñ 		ô 		ð 		ð 		ð 		r   c                 ó~   ‡— t          ¦   «         Šˆfd„}|                      t          j        |¦  «        ‰¦  «         d S )Nc                  óH   •— ‰                       ¦   «          t          ¦   «         S r   ©r#   rQ   ©r>   s   €r   rc   zQTestPythonTracing.test_trace_events_from_greenlet_func_sets_profiler.<locals>.runÁ   s   ø€ Ø×ÒÑÔÐÝ‘>”>Ð!r   )rB   rs   r   )r   rc   r>   s     @r   Ú2test_trace_events_from_greenlet_func_sets_profilerzDTestPythonTracing.test_trace_events_from_greenlet_func_sets_profiler¿   s^   ø€ Ý‘”ˆð	"ð 	"ð 	"ð 	"ð 	"ð 	×<Ò<½XÔ=NÈsÑ=SÔ=SØ=Cñ	Eô 	Eð 	Eð 	Eð 	Er   c                 ó”   ‡— t          ¦   «         Š G ˆfd„dt          j        ¦  «        }|                       |¦   «         ‰¦  «         d S )Nc                   ó   •— e Zd Zˆ fd„ZdS )úSTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler.<locals>.Xc                 óH   •— ‰                      ¦   «          t          ¦   «         S r   rv   r=   s    €r   rc   zWTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler.<locals>.X.runË   s   ø€ Ø× Ò Ñ"Ô"Ð"Ý#‘~”~Ð%r   Nro   rw   s   €r   rp   r{   Ê   s.   ø€ € € € € ð&ð &ð &ð &ð &ð &ð &r   rp   )rB   r   rs   )r   rp   r>   s     @r   Ú6test_trace_events_from_greenlet_subclass_sets_profilerzHTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profilerÈ   sg   ø€ Ý‘”ˆð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&•Ô!ñ 	&ô 	&ð 	&ð
 	×<Ò<¸Q¸Q¹S¼SÀ&ÑIÔIÐIÐIÐIr   c                 óB  ‡‡‡— t          ¦   «         Šd Šd Šˆˆfd„}ˆˆfd„}t          j        |¦  «        Št          j        |¦  «        Š‰                     ¦   «         }|                      |d¦  «         t	          ¦   «          |                      ‰j        g d¢¦  «         d S )Nc                  ó�   •— ‰                      ¦   «          t          ¦   «          ‰                      ¦   «          t          ¦   «          dS rO   )r#   rQ   r.   ©r5   r>   s   €€r   Úg1_runzPTestPythonTracing.test_trace_events_multiple_greenlets_switching.<locals>.g1_runØ   s9   ø€ Ø×ÒÑÔÐÝ‰NŒNˆNØ�IŠI‰KŒKˆKÝ‰NŒNˆNØ�2r   c                  ó�   •— t          ¦   «          ‰                     ¦   «          t          ¦   «          ‰                      ¦   «          d S r   )rQ   r%   r.   ©r4   r>   s   €€r   Úg2_runzPTestPythonTracing.test_trace_events_multiple_greenlets_switching.<locals>.g2_runß   s6   ø€ Ý‰NŒNˆNØ�OŠOÑÔÐÝ‰NŒNˆNØ�IŠI‰KŒKˆKˆKˆKr   rP   )	rU   rW   rY   ©r\   r�   )rX   r„   rW   rY   rZ   r[   ©rB   r   r.   r2   rQ   r   ©r   r�   r„   Úxr4   r5   r>   s       @@@r   Ú.test_trace_events_multiple_greenlets_switchingz@TestPythonTracing.test_trace_events_multiple_greenlets_switchingÑ   s×   øøø€ å‘”ˆàˆØˆð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ Ô˜vÑ&Ô&ˆÝÔ˜vÑ&Ô&ˆà�IŠI‰KŒKˆØ×Ò˜˜BÑÔÐÝ‰ŒˆØ×Ò˜œð 
*
ð 
*
ð 
*
ñ 
	ô 
	ð 
	ð 
	ð 
	r   c                 ó’  ‡‡‡— t          ¦   «         Šd Šd Šˆˆfd„}ˆˆfd„}t          j        |¦  «        Št          j        |¦  «        Š‰                     ¦   «          ‰                     ¦   «          ‰                     ¦   «         }|                      |d¦  «         t	          ¦   «          |                      ‰j        g d¢¦  «         d S )Nc                  óä   •— t          j        ¦   «         j                             ¦   «          ‰                     ¦   «          t          ¦   «          ‰                      ¦   «          t          ¦   «          dS rO   )r   r0   Úparentr.   r#   rQ   r€   s   €€r   r�   zYTestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings.<locals>.g1_run   sW   ø€ ÝÔÑ!Ô!Ô(×/Ò/Ñ1Ô1Ð1Ø×ÒÑÔÐÝ‰NŒNˆNØ�IŠI‰KŒKˆKÝ‰NŒNˆNØ�2r   c                  óä   •— t          j        ¦   «         j                             ¦   «          t	          ¦   «          ‰                     ¦   «          t	          ¦   «          ‰                      ¦   «          d S r   )r   r0   rŒ   r.   rQ   r%   rƒ   s   €€r   r„   zYTestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings.<locals>.g2_run  sT   ø€ ÝÔÑ!Ô!Ô(×/Ò/Ñ1Ô1Ð1å‰NŒNˆNØ�OŠOÑÔÐÝ‰NŒNˆNØ�IŠI‰KŒKˆKˆKˆKr   rP   )rU   rW   rY   r…   rW   rY   rZ   r[   r†   r‡   s       @@@r   Ú7test_trace_events_multiple_greenlets_switching_siblingszITestPythonTracing.test_trace_events_multiple_greenlets_switching_siblings÷   sù   øøø€ õ ‘”ˆàˆØˆð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ Ô˜vÑ&Ô&ˆÝÔ˜vÑ&Ô&ˆð 	�	Š	‰Œˆð 	�	Š	‰Œˆð �IŠI‰KŒKˆØ×Ò˜˜BÑÔÐå‰ŒˆØ×Ò˜œð 	*
ð 	*
ð 	*
ñ 		ô 		ð 		ð 		ð 		r   )r   r   r   r@   ÚmaxDiffr]   ra   rf   rj   rq   rs   rx   r}   ÚunittestÚskipIfÚASSERTION_BUILD_PY312r‰   rŽ   r   r   r   rS   rS   s   só   € € € € € ðð ð €Gðð ð ð&ð ð ð
ð ð ðJð Jð Jð7ð 7ð 7ðð ð ð Eð Eð EðJð Jð Jð €X„_Ð+Ð,ð#ð #ñ -Ô,ð#ðJ €X„_Ð+Ð,ð/ð /ñ -Ô,ð/ð /ð /r   rS   Ú__main__)Ú
__future__r   rK   Ú	sysconfigr   r�   Ú r   r   Úget_config_varÚsplitÚhasattrr’   Ú	Exceptionr
   Úobjectr   r(   rB   rQ   rS   r   r3   r   r   r   ú<module>rœ      sÒ  ðØ %Ð %Ð %Ð %Ð %Ð %Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð 
ð à#ˆ9Ô# EÑ*Ô*Ð6ð 	Ð2˜)Ô2°5Ñ9Ô9×?Ò?ÑAÔAÐAÐAàˆW�SÐ,Ñ-Ô-à7ðÐ ð	ð 	ð 	ð 	ð 	�	ñ 	ô 	ð 	ð)ð )ð )ð )ð )�Vñ )ô )ð )ð(.&ð .&ð .&ð .&ð .&˜(ñ .&ô .&ð .&ðb&ð &ð &ð &ð &�6ñ &ô &ð &ð"ð ð ðtð tð tð tð t˜ñ tô tð tðn ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   