§
    dŠtji!  ã                   ó†  — 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 )é    Né   )ÚTestCase)ÚPY312ÚOPTz-DNDEBUGÚgettotalrefcountz1Broken on assertion-enabled builds of Python 3.12c                   ó   — e Zd ZdS )Ú	SomeErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úY/var/www/html/CA-Chatbot/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>.dummy4   s   € ØˆDr   c                  ó   — t          ¦   «         ‚r   )r	   r   r   r   Údummyexcz=TestGreenletTracing.test_a_greenlet_tracing.<locals>.dummyexc6   s   € Ý‘+”+Ðr   ÚswitchÚthrow)r   Ú
getcurrentr   r-   ÚassertRaisesr	   ÚassertEqual)r   Úmainr*   r,   r   Úg1Úg2s          r   Útest_a_greenlet_tracingz+TestGreenletTracing.test_a_greenlet_tracing2   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-   )r2   s   €r   r*   zDTestGreenletTracing.test_b_exception_disables_tracing.<locals>.dummyH   s   ø€ Ø�KŠK‰MŒMˆMˆMˆMr   T)r   r-   )r   r/   r-   r   r0   r	   r1   Úgettrace)r   r*   Úgr   r2   s       @r   Ú!test_b_exception_disables_tracingz5TestGreenletTracing.test_b_exception_disables_tracingF   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_twiceT   sŠ   € õ
  Ñ!Ô!ˆØð 	&ð 	&ÝÔ˜fÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ‘3³7º7N)r
   r   r   Ú__doc__r5   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__a   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__d   s(   € àŒ×Ò˜U E¤LÔ$8Ð9Ñ:Ô:Ð:Ð:Ð:r   c                 óB   — t          j        | ¦  «        | _        | j        S r   )ÚsysÚ
setprofiler    r   r!   s    r   r"   zPythonTracer.__enter__h   s   € Ýœ tÑ,Ô,ˆŒØŒ|Ðr   c                 ó8   — t          j        | j        ¦  «         d S r   )rJ   rK   r    r   s     r   r$   zPythonTracer.__exit__l   s   € ÝŒ�t”}Ñ%Ô%Ð%Ð%Ð%r   r%   r   r   r   rA   rA   ^   sU   € € € € € Ø€Hðð ð ð;ð ;ð ;ðð ð ð&ð &ð &ð &ð &r   rA   c                  ó   — dS ©Né*   r   r   r   r   Útpt_callbackrP   o   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"   ©ÚcallrP   ©rU   rP   ©rW   r$   ©Úc_callr$   )rA   rP   r1   )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   )rA   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)	rT   )r[   r`   )rW   ÚrunrV   rX   ©rU   rb   )Úc_returnr`   rY   rZ   )r`   r1   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   ©rP   r   r   r   rb   zOTestPythonTracing.test_trace_events_into_greenlet_func_already_set.<locals>.run£   s   € Ý‘>”>Ð!r   )re   r   )r   rb   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   rh   r!   s    r   rb   zUTestPythonTracing.test_trace_events_into_greenlet_subclass_already_set.<locals>.X.runª   s   € Ý#‘~”~Ð%r   N©r
   r   r   rb   r   r   r   ÚXrl   ©   s#   € € € € € ð&ð &ð &ð &ð &r   ro   )r   re   )r   ro   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)rT   rV   rX   rc   rV   rX   rY   rZ   )r-   rP   r$   r1   r   )r   r9   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"   rP   ©r=   s   €r   rb   zQTestPythonTracing.test_trace_events_from_greenlet_func_sets_profiler.<locals>.runÀ   s   ø€ Ø×ÒÑÔÐÝ‘>”>Ð!r   )rA   rr   r   )r   rb   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   ru   r<   s    €r   rb   zWTestPythonTracing.test_trace_events_from_greenlet_subclass_sets_profiler.<locals>.X.runÊ   s   ø€ Ø× Ò Ñ"Ô"Ð"Ý#‘~”~Ð%r   Nrn   rv   s   €r   ro   rz   É   s.   ø€ € € € € ð&ð &ð &ð &ð &ð &ð &r   ro   )rA   r   rr   )r   ro   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 rN   )r"   rP   r-   ©r4   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   )rP   r$   r-   ©r3   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   rO   )	rT   rV   rX   ©r[   r€   )rW   rƒ   rV   rX   rY   rZ   ©rA   r   r-   r1   rP   r   ©r   r€   rƒ   Úxr3   r4   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 rN   )r   r/   Úparentr-   r"   rP   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   r/   r‹   r-   rP   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   rO   )rT   rV   rX   r„   rV   rX   rY   rZ   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\   r`   re   ri   rp   rr   rw   r|   ÚunittestÚskipIfÚASSERTION_BUILD_PY312rˆ   r�   r   r   r   rR   rR   r   só   € € € € € ðð ð €Gðð ð ð&ð ð ð
ð ð ðJð Jð Jð7ð 7ð 7ðð ð ð Eð Eð EðJð Jð Jð €X„_Ð+Ð,ð#ð #ñ -Ô,ð#ðJ €X„_Ð+Ð,ð/ð /ñ -Ô,ð/ð /ð /r   rR   Ú__main__)rJ   Ú	sysconfigr   r�   Ú r   r   Úget_config_varÚsplitÚhasattrr‘   Ú	Exceptionr	   Úobjectr   r'   rA   rP   rR   r
   r2   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   